作者:雨竹清风
数据库管理员应该在每个重做日志组中保证至少两个,以防止重做日志的物理错误。
创建重做日志文件的命令为:alter database add logfile member ‘路径’ to group 组号;
示例如下:
SQL> desc v$logfile;
名称 是否为空? 类型
----------------------------------------- -------- ----------------------------
GROUP# NUMBER
STATUS VARCHAR2(7)
TYPE VARCHAR2(7)
MEMBER VARCHAR2(513)
IS_RECOVERY_DEST_FILE VARCHAR2(3)
SQL> col member for a50
SQL> select GROUP#, STATUS, TYPE, MEMBER from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- --------------------------------------------------
3 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
2 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
1 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
SQL> alter database add logfile member 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01b.LOG' to group 1;
数据库已更改。
添加后查询一下是否成功。
SQL> col member for a50
SQL> select GROUP#, STATUS, TYPE, MEMBER from v$logfile;
GROUP# STATUS TYPE MEMBER
---------- ------- ------- --------------------------------------------------
3 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO03.LOG
2 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO02.LOG
1 ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01.LOG
1 INVALID ONLINE D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01B.LOG
删除联机重做日志文件,用alter database drop logfile member '路径';命令。若要删除刚刚添加的重做日志文件要先切换状态。用命令:alter system switch logfile;因为刚刚添加的状态为INVALID。有时可能会多次切换。为此也可以先关闭数据库再重新打开,这样比较方便的删除。
示例如下:
SQL> alter system switch logfile;
系统已更改。
SQL> alter database drop logfile member 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\REDO01B.LOG';
数据库已更改。