增大oracle重做日志的大小

网友投稿 347 2022-11-05


增大oracle重做日志的大小

重做日志(redo log)是由LGWR来进行控制的。Oracle对于DML操作数据的时候,并不会马上去修改数据块,而是产出redo记录,并记录到联机的redo log里,当redo Log用满,或者启动全局checkpoint,也或者alter system switch logfile; 这时都会切换redo log group,(如果redo log状态为current,是当前redo log,如果是inactive就是已经有DBWN写入数据块,Inactive还没有写入)redo log进行切换时,有一定的消耗,或者有时由于redo log过小而造成一定的错误,这时,我们都需要将redo log调整变大。

我们可以采取以下步骤来达到目的

1. 检查logfile组状态SQL> select a.status, b.member, a.THREAD#, a.GROUP# from v$log a, v$logfile b where a.GROUP#=b.GROUP#;

STATUS MEMBER THREAD# GROUP#—————- ————————————————————- ———- ———-CURRENT /opt/oracle/oradata/ocrl/redo01.log 1 1INACTIVE /opt/oracle/oradata/ocrl/redo02.log 1 2INACTIVE /opt/oracle/oradata/ocrl/redo03.log 1 3

2. 将inactive的redo.log删除,inactive的redo.log已经写入数据块。SQL> alter database drop logfile ‘/opt/oracle/oradata/ocrl/redo03.log’; 或者直接用SQL> alter database drop logfile group 3;

3. 添加上面被drop掉的redo log groupSQL> alter database add logfile group 3 (’/opt/oracle/oradata/ocrl/redo03.log’) size 120M reuse;

4. 循环2,3把所有的inactive的redo log文件都resize掉

5. 对于current和active的redo log文件,需要先把redo log做到inactive状态,在前言部分就已经提到了,current表示是当前正在记录的redo log文件,对待这样的我们需要SQL>alter system switch logfile; 切换日志文件,不过由于redo log的重做日志不会马上触发DBWR写数据库,所以这个redo log的状态由current变成active状态,我们看查看SQL> select a.status, a.THREAD#, a.GROUP# from v$log a;

STATUS THREAD# GROUP#—————- ———- ———-CURRENT 1 1INACTIVE 1 2UNUSED 1 3

SQL>alter system switch logfile;SQL> select a.status, a.THREAD#, a.GROUP# from v$log a;

STATUS THREAD# GROUP#—————- ———- ———-ACTIVE 1 1CURRENT 1 2UNUSED 1 3(注意 group 3是我新加入的redo log group,还没有被使用,状态是UNUSED)

5. 对于active状态的,表示这里的脏数据还没有写入写入数据库,手工加个全局检查点,督促CKPT马上唤醒DBWR写入脏数据SQL>alter system checkpoint;查看v$logSTATUS THREAD# GROUP#—————- ———- ———-INACTIVE 1 1CURRENT 1 2UNUSED 1 3

在使用2,3步把group 1也重建。

6. 依照4,5把所有active的redo log做掉

到此,所有的redo log都已经全面改变大小,任务完成。

这里要注意两点1. 单纯加redo log group单个文件的大小没有作用,同一个group里,文件大小都是一致的。

2. 如果是归档模式的话,确保已经自动归档,如果手动归档的话,需要在alter system switch logfile锁死的时候,用alter system log current 来手动归档。或者通过alter system archive log start打开自动归档。否则的话,当redo log group切换完整个groups的时候,会一直等待状态(******).

===============================================================

Inthirties关注Oracle数据库 维护,优化,安全,备份,恢复,迁移,故障处理

QQ群:  85837884(注明:数据库)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Oracle提供了分区技术(汇总帖)
下一篇:地址查询API(地址查询某省某镇名字)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~