OCM_Session1_6_Log File Management

来源:互联网 发布:dreamweaver mac 编辑:程序博客网 时间:2024/05/14 19:06
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 Log Groups
http://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     7
control_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.ctl
SQL> 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 immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

[oracle@ocm1 Disk2]$ cd /u01/app/oracle/oradata/PROD/Disk1/
[oracle@ocm1 Disk1]$ ll
total 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> startup
ORACLE instance started.

Total System Global Area  524288000 bytes
Fixed Size                  1220360 bytes
Variable Size             159383800 bytes
Database Buffers          360710144 bytes
Redo Buffers                2973696 bytes
Database 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


0 0