oracle 修改 redo log日志文件大小
一、创建4个新的日志组
1 | alter database add logfile group 4 ('/oradata/orcl/redo04.log') size 2048M; |
二、切换当前日志到新的日志组
1 | alter system switch logfile; |
三、删除旧的日志组
通过select * from v$log;
查看group 1/2/3 上的redo状态为inactive后,方可执行如下命令。
1 | alter database drop logfile group 1; |
- CURRENT指当前的日志文件,在进行实例恢复时是必须的;
- ACTIVE是指活动的非当前日志,在进行实例恢复时会被用到。Active状态意味着,Checkpoint尚未完成,因此该日志文件不能被覆盖。
- INACTIVE是非活动日志,在实例恢复时不再需要,但在介质恢复时可能需要。
- UNUSED表示该日志从未被写入,可能是刚添加的,或RESETLOGS后被重置。
四、操作系统下删除原日志组1、2、3中的文件
注意:每一步删除drop操作,都需手工删除操作系统中的实体文件。
1 | rm -rf /oradata/orcl/redo01.log |
五、重建日志组1、2、3
1 | ALTER DATABASE ADD LOGFILE GROUP 1 ('/oradata/orcl/redo01.log') SIZE 2G; |
六、切换日志组
多执行几次如下命令,同时通过select * from gv$log来观察4/5/6/7下的redo日志状态是不是为inactive;
查看日志组的状态看一下哪个是当前组,哪个是inactive状态的,删除掉inactive的那个组。如果状态为current和active 在删除的时候会报错。
1 | alter system switch logfile; |
七、删除中间过渡用的日志组4、5、6、7
1 | alter database drop logfile group 4; |
到操作系统下删除原日志组4、5、6、7中的文件
八、备份当前的最新的控制文件
因日志组发生变化,建议备份一次controlfile文件。
1 | SQL> alter database backup controlfile to trace resetlogs; |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Zachary's Blog!
评论









