|
6. Log File Management 6.1 Due to the expected high volume of transactions. the database should have the following configuration: 6.1.1 A minimum of 5 redo log groups. 6.1.2 Each redo log group should not be a single point of failure. 6.1.3 File size of 100MB 6.1.4 Specify the location such that it minimizes contention and reduces the risk of a single point of failure in case of disk driver failure 6.2 Triplex the controlfile to minimize recovery in case of disk drive failure.
6. Log File Management
- 6.1 Due to the expected high volume of transactions. the database should have the following configuration:
- 6.1.1 A minimum of 5 redo log groups. 5个组
- 6.1.2 Each redo log group should not be a single point of failure.每个组至少2个成员,最好分别在两个盘上,不会出现单点故障
- 6.1.3 File size of 100MB 文件大小100M
- 6.1.4 Specify the location such that it minimizes contention and reduces the risk of a single point of failure in case of disk driver failure
每个组有两个成员,两个成员在两个磁盘,最小化争用,最小风险。
参考联机文档:Administrator's Guide ==> 6 Managing the Redo Log==>Creating Redo Log Members,Creating Redo LogGroupshttp://docs.oracle.com/cd/B19306_01/server.102/b14231/onlineredo.htm#i1007497
ALTER DATABASE ADD LOGFILE MEMBER '/oracle/dbs/log2b.rdo' TO GROUP 2;
ALTER DATABASE ADD LOGFILE GROUP 4 ('/oracle/dbs/log1c.rdo', '/oracle/dbs/log2c.rdo') SIZE 100m;
从题意可知,有5个日志组,每个日志组至少包含两个成员,每个成员都不在相同的磁盘里,文件大小为100M。
操作如下:
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_---------- ------- ------- -------------------------------------------------- --- 1 STALE ONLINE /u01/app/oracle/oradata/PROD/Disk1/redo01.log NO 2 STALE ONLINE /u01/app/oracle/oradata/PROD/Disk1/redo02.log NO 3 ONLINE /u01/app/oracle/oradata/PROD/Disk1/redo03.log NO
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- 1 1 4 104857600 1 NO INACTIVE 117224 18-MAR-14 2 1 5 104857600 1 NO INACTIVE 168127 18-MAR-14 3 1 6 104857600 1 NO CURRENT 199956 19-MAR-14
目前已经有3个组,每个组里有一个成员,故现在向每个组分别增加一个成员,另外再增加两个组4和5,组里有2个成员。
SQL> alter database add logfile member '/u01/app/oracle/oradata/PROD/Disk2/redo01_1.log' to group 1;
Database altered.
SQL> alter database add logfile member '/u01/app/oracle/oradata/PROD/Disk2/redo02_1.log' to group 2;
Database altered.
SQL> alter database add logfile member '/u01/app/oracle/oradata/PROD/Disk2/redo03_1.log' to group 3;
Database altered.
SQL> alter database add logfile group 4 ('/u01/app/oracle/oradata/PROD/Disk1/redo04.log','/u01/app/oracle/oradata/PROD/Disk2/redo04_1.log') size 100m;
Database altered.
SQL> alter database add logfile group 5 ('/u01/app/oracle/oradata/PROD/Disk1/redo05.log','/u01/app/oracle/oradata/PROD/Disk2/redo05_1.log') size 100m;
Database altered.
SQL> select * from v$log;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIM---------- ---------- ---------- ---------- ---------- --- ---------------- ------------- --------- 1 1 4 104857600 2 NO INACTIVE 117224 18-MAR-14 2 1 5 104857600 2 NO INACTIVE 168127 18-MAR-14 3 1 6 104857600 2 NO CURRENT 199956 19-MAR-14 4 1 0 104857600 2 YES UNUSED 0 5 1 0 104857600 2 YES UNUSED 0
SQL> select * from v$logfile;
GROUP# STATUS TYPE MEMBER IS_---------- ------- ------- -------------------------------------------------- --- 1 STALE ONLINE /u01/app/oracle/oradata/PROD/Disk1/redo01.log NO 2 STALE ONLINE /u01/app/oracle/oradata/PROD/Disk1/redo02.log NO 3 ONLINE /u01/app/oracle/oradata/PROD/Disk1/redo03.log NO 1 INVALID ONLINE /u01/app/oracle/oradata/PROD/Disk2/redo01_1.log NO 2 INVALID ONLINE /u01/app/oracle/oradata/PROD/Disk2/redo02_1.log NO 3 INVALID ONLINE /u01/app/oracle/oradata/PROD/Disk2/redo03_1.log NO 4 ONLINE /u01/app/oracle/oradata/PROD/Disk1/redo04.log NO 4 ONLINE /u01/app/oracle/oradata/PROD/Disk2/redo04_1.log NO 5 ONLINE /u01/app/oracle/oradata/PROD/Disk1/redo05.log NO 5 ONLINE /u01/app/oracle/oradata/PROD/Disk2/redo05_1.log NO
10 rows selected.
或者使用一下查询:查询结果有10行,每个GROUP#有两行,BYTES是100M
SQL> select a.group#,member,bytes/1024/1024 from v$logfile a,v$log b where a.group#=b.group# order by a.group#;
GROUP# MEMBER BYTES/1024/1024---------- -------------------------------------------------- --------------- 1 /u01/app/oracle/oradata/PROD/Disk2/redo01_1.log 100 1 /u01/app/oracle/oradata/PROD/Disk1/redo01.log 100 2 /u01/app/oracle/oradata/PROD/Disk1/redo02.log 100 2 /u01/app/oracle/oradata/PROD/Disk2/redo02_1.log 100 3 /u01/app/oracle/oradata/PROD/Disk2/redo03_1.log 100 3 /u01/app/oracle/oradata/PROD/Disk1/redo03.log 100 4 /u01/app/oracle/oradata/PROD/Disk1/redo04.log 100 4 /u01/app/oracle/oradata/PROD/Disk2/redo04_1.log 100 5 /u01/app/oracle/oradata/PROD/Disk2/redo05_1.log 100 5 /u01/app/oracle/oradata/PROD/Disk1/redo05.log 100
10 rows selected.
SQL>
- 6.2 Triplex the controlfile to minimize recovery in case of disk drive failure.
三元化控制文件,即控制文件有三个。
SQL> show parameter control
NAME TYPE VALUE------------------------------------ ----------- ------------------------------control_file_record_keep_time integer 7control_files string /u01/app/oracle/oradata/PROD/D isk1/control01.ctl, /u01/app/o racle/oradata/PROD/Disk1/contr ol02.ctl, /u01/app/oracle/orad ata/PROD/Disk1/control03.ctlSQL> alter system set control_files='/u01/app/oracle/oradata/PROD/Disk1/control01.ctl','/u01/app/oracle/oradata/PROD/Disk2/control02.ctl','/u01/app/oracle/oradata/PROD/Disk3/control03.ctl' scope=spfile;
System altered.
SQL> shutdown immediateDatabase closed.Database dismounted.ORACLE instance shut down.
[oracle@ocm1 Disk2]$ cd /u01/app/oracle/oradata/PROD/Disk1/[oracle@ocm1 Disk1]$ lltotal 1878124-rw-r----- 1 oracle oinstall 6832128 Mar 19 13:22 control01.ctl-rw-r----- 1 oracle oinstall 6832128 Mar 19 13:22 control02.ctl-rw-r----- 1 oracle oinstall 6832128 Mar 19 13:22 control03.ctl-rw-r----- 1 oracle oinstall 419438592 Mar 19 13:22 example01.dbf-rw-r----- 1 oracle oinstall 41951232 Mar 19 13:22 indx01.dbf-rw-r----- 1 oracle oinstall 50339840 Mar 19 13:22 oltp01.dbf-rw-r----- 1 oracle oinstall 104858112 Mar 19 09:09 redo01.log-rw-r----- 1 oracle oinstall 104858112 Mar 19 09:09 redo02.log-rw-r----- 1 oracle oinstall 104858112 Mar 19 13:22 redo03.log-rw-r----- 1 oracle oinstall 104858112 Mar 19 13:11 redo04.log-rw-r----- 1 oracle oinstall 104858112 Mar 19 13:11 redo05.log-rw-r----- 1 oracle oinstall 340795392 Mar 19 13:22 sysaux01.dbf-rw-r----- 1 oracle oinstall 340795392 Mar 19 13:22 system01.dbf-rw-r----- 1 oracle oinstall 20979712 Mar 18 10:57 temp01.dbf-rw-r----- 1 oracle oinstall 20979712 Mar 19 09:21 temp11.dbf-rw-r----- 1 oracle oinstall 20979712 Mar 19 09:22 temp12.dbf-rw-r----- 1 oracle oinstall 10493952 Mar 19 13:22 tools01.dbf-rw-r----- 1 oracle oinstall 121643008 Mar 19 13:22 undotbs01.dbf-rw-r----- 1 oracle oinstall 50339840 Mar 19 13:22 users01.dbf[oracle@ocm1 Disk1]$ mv control02.ctl /u01/app/oracle/oradata/PROD/Disk2/control02.ctl[oracle@ocm1 Disk1]$ mv control03.ctl /u01/app/oracle/oradata/PROD/Disk3/control03.ctl
SQL> startupORACLE instance started.
Total System Global Area 524288000 bytesFixed Size 1220360 bytesVariable Size 159383800 bytesDatabase Buffers 360710144 bytesRedo Buffers 2973696 bytesDatabase mounted.Database opened.
查询结果有三行,分别在DISK1至DISK5的三个目录中,这里分别在1,2,3Disk中。SQL> select name from v$controlfile;
NAME------------------------------------------------------------/u01/app/oracle/oradata/PROD/Disk1/control01.ctl/u01/app/oracle/oradata/PROD/Disk2/control02.ctl/u01/app/oracle/oradata/PROD/Disk3/control03.ctl
版权声明:本文为博主原创文章,未经博主允许不得转载。 |
|