Oracle Database(2)--Managing the Redo Log

1.Creating Redo Log Groups and Members

       a) Creating Redo Log Groups:

Alter Database Add Logfile ('D:\oracle\product\10.2.0\oradata\orcl\loga1.rdo','D:\oracle\product\10.2.0\oradata\orcl\loga2.rdo') SIZE 10M;

Or

Alter Database Add Logfile Group 10 ('D:\oracle\product\10.2.0\oradata\orcl\loga1.rdo','D:\oracle\product\10.2.0\oradata\orcl\loga2.rdo') SIZE 10M;
select * from v$log;

       b) Creating Redo Log Members:

Alter Database Add Logfile Member 'D:\oracle\product\10.2.0\oradata\orcl\loga3.rdo' To Group 10;
select * from v$logfile Where GROUP#=10;

Or

Alter Database Add Logfile Member 'D:\oracle\product\10.2.0\oradata\orcl\loga4.rdo' To (
'D:\oracle\product\10.2.0\oradata\orcl\loga1.rdo',
'D:\oracle\product\10.2.0\oradata\orcl\loga2.rdo',
'D:\oracle\product\10.2.0\oradata\orcl\loga3.rdo');

注意:
  a):若对应目录下已存成员的文件名称,则创建成员失败
  b):To(成员目录组)从句中的成员必须是相同重做日志组所有的日志文件,缺少一个Members或有不同Redo Log Group的Member,该语句执行都会失败。
  c):每个数据库至少要二个日志组,每个日志组至少要一个成员

2.Relocating and Renaming Redo Log Members 

    Steps for Renaming Redo Log Members
    a):Shut down the database

SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。

    b):Copy the redo log files to the new location

 

    c):Startup the database ,mount ,but do not open it

SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  603979776 bytes
Fixed Size                  1250380 bytes
Variable Size             293604276 bytes
Database Buffers          301989888 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。

    d):Rename the redo log members

e.g LOGA1.RDO --> LOGA01.RDO; LOGA2.RDO --> LOGA02.RDO

Alter Database Rename file 
'D:\oracle\product\10.2.0\oradata\orcl\loga1.rdo',
'D:\oracle\product\10.2.0\oradata\orcl\loga2.rdo'
To 
'D:\oracle\product\10.2.0\oradata\orcl\loga01.rdo',
'D:\oracle\product\10.2.0\oradata\orcl\loga02.rdo';

    e): Open the database for normal operation.

SQL> alter database open;

数据库已更改。

3.Clearing a Redo Log File

before:

Alter Database Clear Logfile Group 3;

After:

注意:CURRENTACTIVE状态不能执行清除日志数据。只有在INACTIVE状态才能执清除日志数据。
当数据库未启用归档模式时,可以执行如下:

Alter Database Clear Unarchived Logfile Group 3;

4.Droping Redo Log Groups And Members
  a):Droping Redo Log Members;

Alter Database Drop Logfile Member 
 'D:\oracle\product\10.2.0\oradata\orcl\loga3.rdo',
 'D:\oracle\product\10.2.0\oradata\orcl\loga4.rdo';

注意:成员的状态必须为INVALID才能删除,执行以上SQL语句以后,还要手工在对应目录下删除文件。
  b):Droping Redo Log Groups;

Alter Database Drop Logfile Group 10;
注意:CURRENTACTIVE状态不能执行删除日志组。只有在INACTIVEUNUSED状态才能执删除日志组。
5.Foring Log Switches 
Alter System Switch Logfile;

6.Viewing Redo Log Information(V$Table)
   a):V$LOG;

UNUSED: 从未对该联机日志写入任何内容,一般为新增加联机日志文件或清除日志文件或是使用resetlog后的状态
CURRENT:状态为LGWR进程正把redo log buffer的日志写进日志组中
                        当前重做日志文件,表示该重做日志文件为活动状态,能够被打开和关闭
ACTIVE:为刚刚完成日志切换后的状态,此时该日志组中提交的事务引起的数据改变还没有完全从DB buffer cache写入到数据文件中,因此该日志组还不能被覆盖,并且待完全写入后变为inactive状态。如果数据库为归档模式,那么是在该状态下完成归档的。
                  处于活动状态,不属于当前日志,崩溃恢复需要该状态,可用于块恢复,可能归档,也可能未归档
CLEARING:表示在执行alter database clear logfile命令后正将该日志重建为一个空日志,重建后状态变为unused
CLEARING_CURRENT:当前日志处于关闭线程的清除状态。如日志某些故障或写入新日志标头时发生I/O错误
INACTIVE:状态的日志可以被覆盖,可以允许写入日志。如果是在归档模式下,那么此阶段证明归档已经完成。

   b):V$LOGFILE;
INVALID :表明该文件不可访问
STALE :表明文件内容不完全
DELETED : 表明该文件不再使用
NULL :表明文件正在使用

你可能感兴趣的:(Oracle Database(2)--Managing the Redo Log)