共计 1730 个字符,预计需要花费 5 分钟才能阅读完成。
丸趣 TV 小编给大家分享一下 Oracle 如何在线调整 redo 日志组数及组成员,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
一、调整 redo 日志组大小
操作原因:
redo 日志一般设置让日志转换时间为 10-20 分钟, 转换太频繁会影响性能。通常情况下每小时不要超过 6 次! 如果 AWR(Automated Workload Repository 自动负载信息库)report 中 log file switch (checkpoint incomplete) 比较大, 说明 redo log 之间的切换过于频繁。可以通过增加 redo log size 来降低切换的频率。但如果 redo log size 过大, 可能带来数据库恢复时丢失数据的风险。所以要折中选择 redo log size, 默认是 50M。
Oracle 没有提供直接修改配置文件大小的途径, 但可以采取新增日志组来代替旧有日志组的方式。
例子: 现在有三个日志成员, 大小为 50M, 欲更改为 100M。
1. 查看当前日志组成员
SQL select member from v$logfile;
2. 查看当前日志组状态
SQL select group#,members,bytes/1024/1024,status from v$log;
3. 增加日志组
SQL alter database add logfile group 4 (/u01/oracle/oradata/orcl/redo04.log) size 100M;
SQL alter database add logfile group 5 (/u01/oracle/oradata/orcl/redo05.log) size 100M;
SQL alter database add logfile group 6 (/u01/oracle/oradata/orcl/redo06.log) size 100M;
4. 切换到新增的日志组上
SQL alter system switch logfile;
(可多次执行, 直到 CURRENT 指向新建的日志组)
5. 查看当前日志组状态
SQL select group#,members,bytes/1024/1024,status from v$log;
各种状态含义:
a.CURRENT 指当前的日志文件, 在进行实例恢复时是必须的;
b.ACTIVE 是指活动的非当前日志, 在进行实例恢复时会被用到。Active 状态意味着,Checkpoint 尚未完成, 因此该日志文件不能被覆盖。这时也不能 drop 掉, 应该执行 alter system checkpoint; – 强制执行检查点; 然后在操作。
c.INACTIVE 是非活动日志, 在实例恢复时不再需要, 但在介质恢复时可能需要。
d.UNUSED 表示该日志从未被写入, 可能是刚添加的, 或 RESETLOGS 后被重置。
6. 删除旧的日志组
SQL alter database drop logfile group 1;
SQL alter database drop logfile group 2;
SQL alter database drop logfile group 3;
7. 在操作系统下删除掉 redolog 日志文件
mv /u01/oracle/oradata/orcl/redo0[1-3] /tmp
或直接删除已经废弃的日志文件。
备注: 可以先新建日志组作为过渡日志组, 然后删除原有日志组并修改大小后进行重建。
二、向现有日志组新增成员
操作原因: 重做日志冗余, 提高数据可恢复性及完整性。
注意: 若在生产库中, 则将新创建的成员放到不同的磁盘上。所有日志成员大小要一致。
1. 向指定日志组新增组成员
SQL alter database add logfile member /u01/app/oracle/oradata/ORCL/onlinelog/redo04_b.log to group 4;
2. 查看当前日志组成员
SQL select member from v$logfile;
3. 查看当前日志组状态
SQL select group#,members,bytes/1024/1024,status from v$log;
看完了这篇文章,相信你对“Oracle 如何在线调整 redo 日志组数及组成员”有了一定的了解,如果想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!