重做日志管理

计算机操作的文件越大,系统的效率越低,因此,日志文件应该尽可能地小,但文件过小又会导致日志文件频繁切换,引发完全检查点,导致系统挂起

所谓的重做日志维护或修复,就是将有问题的重做日志组或日志成员删掉,之后再重建它们。可以操作重做日志组也可以操作成员,通常建议操作日志组。

添加日志组:
SQL> ALTER DATABASE ADD LOGFILE
('/u01/app/oracle/onlinelog/redo_01a.log', '/u02/app/oracle/onlinelog/redo_01b.log')
SIZE 100M;

删除日志组:
SQL> ALTER DATABASE DROP LOGFILE GROUP 4;

ASM 应用中为重做日志组添加新成员:
由于使用 ASM 自动管理文件,所以只需要指定 ASM 磁盘组,不需要指定文件路径和文件名,如果指定具体文件路径和文件名也是可以的
SQL> ALTER DATABASE ADD LOGFILE MEMBER '+ASM_RCY' REUSE TO GROUP 1;
如下图:


online redolog 文件状态:
空白:表示该文件正在使用
stale:表示该文件中的内容是不完全的
invalid:表示该文件不可以被访问
deleted:表示该文件已不再有用了

删除日志成员:
SQL> ALTER DTABASE DROP LOGFILE MEMBER '/u01/app/oracle/onlinelog/redo_01.log';
不能删除当前组的成员,如果要删除,应先使用 ALTER SYSTEM SWITCH LOGFILE 命令进行切换;
如果要删除刚刚加入的状态为 invalid 的成员,正常的操作方法可能需要发若干个 ALTER SYSTEM SWITCH LOGFILE  命令多次进行切换,要等很久,比较快捷的方法是:先关闭数据库,在开启数据库,这时候就可以顺利删除了。

每个日志组至少有一个成员才能正常工作

清除 online redo logfile
有时不能用删除重建的方式来维护日志组,如:数据库中只有两个日志组或崩溃的日志文件属于当前日志组。在这种情况下,如果数据库是开启的话,由于一个联机日志文件崩溃使得归档活动不能正常进行,最终导致数据库被挂起。
此时可以使用如下命令来重新初始化联机重做日志文件:
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 组号;
如果崩溃的日志文件已经不能归档(组内所有成员都坏了),可以在以上命令中使用 UNARCHIVED 关键词来清除已崩溃的重做日志文件,从而避免对它们进行归档,其命令格式如下:
SQL> ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 组号;
注:执行了以上命令中的任何一个,都将导致 Oracle 数据库以前的备份失效,所以接下来应该做一个全备份。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31560527/viewspace-2563979/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31560527/viewspace-2563979/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值