获取重做日志组状态
select group#,sequence#,bytes,members,status from v$log;
1 481 67108864 1 ACTIVE (活动,不是当前联机日志,恢复需要)
2 482 67108864 1 CURRENT (当前联机日志)
3 480 67108864 1 INACTIVE (例程恢复时不需要它)
获取重做日志文件
GROUP# STATUS TYPE MEMBER
--------------------------------------------------------------------------------
1 ONLINE /opt/oracle/db02/oradata/ORCL/redo01.log
2 ONLINE /opt/oracle/db03/oradata/ORCL/redo02.log
3 ONLINE /opt/oracle/db04/oradata/ORCL/redo03.log
3个重做日志组各包含一个文件,状态为空表示正在使用。
日志组切换
SQL> alter system switch logfile;
System altered.
SQL> select group#,sequence#,bytes,members,status from v$log;
1 481 67108864 1 ACTIVE
2 482 67108864 1 ACTIVE
3 483 67108864 1 CURRENT
参数log_checkpoint_interval(块数) 和 log_checkpoint_timeout(超时)checkpoint产生
添加重做日志组
SQL> alter database add logfile ('/opt/oracle/db02/oradata/ORCL/redo04.log','/opt/oracle/db02/oradata/ORCL/redo05') size 64M;
Database altered.
SQL> select group#,sequence#,bytes,members,status from v$log;
1 481 67108864 1 INACTIVE
2 482 67108864 1 ACTIVE
3 483 67108864 1 CURRENT
4 0 67108864 2 UNUSED (新增,未使用过)
SQL> select * from v$logfile;
1 ONLINE /opt/oracle/db02/oradata/ORCL/redo01.log
2 ONLINE /opt/oracle/db03/oradata/ORCL/redo02.log
3 ONLINE /opt/oracle/db04/oradata/ORCL/redo03.log
4 ONLINE /opt/oracle/db02/oradata/ORCL/redo04.log
4 ONLINE /opt/oracle/db02/oradata/ORCL/redo05
建组内成员
SQL> alter database add logfile member '/opt/oracle/db03/oradata/ORCL/redo06.log' to group 1,'/opt/oracle/db03/oradata/ORCL/redo07.log' to group 2;
Database altered.
SQL> select group#,sequence#,bytes,members,status from v$log;
1 481 67108864 2 INACTIVE
2 482 67108864 2 ACTIVE
3 483 67108864 1 CURRENT
4 0 67108864 2 UNUSED
SQL> select * from v$logfile;
1 ONLINE /opt/oracle/db02/oradata/ORCL/redo01.log
2 ONLINE /opt/oracle/db03/oradata/ORCL/redo02.log
3 ONLINE /opt/oracle/db04/oradata/ORCL/redo03.log
4 ONLINE /opt/oracle/db02/oradata/ORCL/redo04.log
4 ONLINE /opt/oracle/db02/oradata/ORCL/redo05
1 INVALID ONLINE /opt/oracle/db03/oradata/ORCL/redo06.log
2 INVALID ONLINE /opt/oracle/db03/oradata/ORCL/redo07.log
7 rows selected.
重命名重做日志文件
可以通过重命名联机重做日志文件来更改联机重做日志文件的位置 在重命名联机重做日志文件之前 请确保新的联机重做日志文件存在 Oracle 服务器仅更改控制文件内的指针并不从物理上重命名或创建任何操作系统文件
cp redo06.log /opt/oracle/db04/oradata/ORCL/
SQL> alter database rename file '/opt/oracle/db03/oradata/ORCL/redo06.log' to '/opt/oracle/db04/oradata/ORCL/redo06.log';
Database altered.
SQL> select * from v$logfile;
1 ONLINE /opt/oracle/db02/oradata/ORCL/redo01.log
2 ONLINE /opt/oracle/db03/oradata/ORCL/redo02.log
3 ONLINE /opt/oracle/db04/oradata/ORCL/redo03.log
4 ONLINE /opt/oracle/db02/oradata/ORCL/redo04.log
4 ONLINE /opt/oracle/db02/oradata/ORCL/redo05
1 INVALID ONLINE /opt/oracle/db04/oradata/ORCL/redo06.log
2 INVALID ONLINE /opt/oracle/db03/oradata/ORCL/redo07.log
丢弃日志组
alter database drop logfile group 4;
Database altered.
SQL> select group#,sequence#,bytes,members,status from v$log;
1 481 67108864 2 INACTIVE
2 482 67108864 2 ACTIVE
3 483 67108864 1 CURRENT
SQL> select * from v$logfile;
1 ONLINE /opt/oracle/db02/oradata/ORCL/redo01.log
2 ONLINE /opt/oracle/db03/oradata/ORCL/redo02.log
3 ONLINE /opt/oracle/db04/oradata/ORCL/redo03.log
1 INVALID ONLINE /opt/oracle/db04/oradata/ORCL/redo06.log
2 INVALID ONLINE /opt/oracle/db03/oradata/ORCL/redo07.log
丢弃日志组成员
SQL> alter database drop logfile member '/opt/oracle/db04/oradata/ORCL/redo06.log','/opt/oracle/db03/oradata/ORCL/redo07.log';
Database altered.
SQL> select * from v$logfile;
1 ONLINE /opt/oracle/db02/oradata/ORCL/redo01.log
2 ONLINE /opt/oracle/db03/oradata/ORCL/redo02.log
3 ONLINE /opt/oracle/db04/oradata/ORCL/redo03.log
限制
不能丢弃该成员
* 如果要丢弃的是组内的最后一个有效成员
* 如果该组是当前组 那么在能够丢弃该成员之前 您必须强制日志文件切换
* 如果数据库正运行在 ARCHIVELOG 模式下并且未将该成员所属日志文件组归档
那么您无法丢弃该成员
* 在丢弃联机重做日志成员时 并未删除操作系统文件

TAG:
评分(