Oracle 11G redo日志组大小调整及日志 频率检查

1.日志切换频率查询
SET LINE 150 PAGES 9999
COL "00" FOR A3
COL "01" FOR A3
COL "02" FOR A3
COL "03" FOR A3
COL "04" FOR A3
COL "05" FOR A3
COL "06" FOR A3
COL "07" FOR A3
COL "08" FOR A3
COL "09" FOR A3
COL "10" FOR A3
COL "11" FOR A3
COL "12" FOR A3
COL "13" FOR A3
COL "14" FOR A3
COL "15" FOR A3
COL "16" FOR A3
COL "17" FOR A3
COL "18" FOR A3
COL "19" FOR A3
COL "20" FOR A3
COL "21" FOR A3
COL "22" FOR A3
COL "23" FOR A3
COL DAY FOR A15
SELECT DAY,
     TO_CHAR(SUM(DECODE(H, '00', T, 0))) AS "00",
     TO_CHAR(SUM(DECODE(H, '01', T, 0))) AS "01",
     TO_CHAR(SUM(DECODE(H, '02', T, 0))) AS "02",
     TO_CHAR(SUM(DECODE(H, '03', T, 0))) AS "03",
     TO_CHAR(SUM(DECODE(H, '04', T, 0))) AS "04",
     TO_CHAR(SUM(DECODE(H, '05', T, 0))) AS "05"

Oracle RAC 环境中,调整 redo log 大小是一个需要谨慎执行的操作。由于每个实例都需要维护自己的 redo log ,并且这些日志文件存储在共享存储上(如 ASM),因此修改 redo log 大小的过程涉及多个步骤,需确保数据库的可用性和一致性。 ### 修改 redo log 大小的步骤 1. **查看当前 redo log 的配置信息** 可以通过以下 SQL 查询当前 redo log 的配置: ```sql SELECT GROUP#, THREAD#, SEQUENCE#, BYTES, MEMBERS, STATUS FROM v$log; ``` 该查询将列出所有 redo log 大小(`BYTES` 字段)、状态(`STATUS` 字段)以及对应的实例(`THREAD#` 字段)[^1]。 2. **添加新的大尺寸 redo log ** 为了确保数据库在修改 redo log 大小时保持稳定,通常建议先添加新的 redo log ,并将其大小设置为期望的值。例如,将每个 redo log 大小从 50MB 调整为 200MB,可以使用以下命令: ```sql ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 4 ('+DATA') SIZE 200M; ``` 其中 `THREAD 1` 表示对应实例的线程号,`GROUP 4` 是新增的 redo log 编号,`'+DATA'` 表示日志文件存储在 ASM 的 `DATA` 磁盘中,`SIZE 200M` 表示日志大小为 200MB。 3. **切换当前 redo log ** 添加新的 redo log 后,需要切换当前 redo log 以使用新的。可以通过以下命令进行切换: ```sql ALTER SYSTEM SWITCH LOGFILE; ``` 此操作会触发日志切换,使数据库切换到新的 redo log 。 4. **删除旧的 redo log ** 在确认新的 redo log 已经生效并且数据库运行正常后,可以删除旧的 redo log 。例如,删除编号为 `1` 的 redo log : ```sql ALTER DATABASE DROP LOGFILE GROUP 1; ``` 在删除旧的日志之前,必须确保该日志已经归档并且不再需要。 5. **重复操作以完成所有实例的调整** 如果 Oracle RAC 环境中有多个实例,则需要对每个实例重复上述步骤,确保每个实例的 redo log 大小调整为期望的值。 ### 注意事项 - **共享存储** 在 Oracle RAC 环境中,所有 redo log 文件必须存储在共享存储介质上(如 ASM),以便所有实例能够访问这些文件。 - **日志数量** 每个实例至少需要两个 redo log 。如果集群中有多个实例,则需要为每个实例分配足够的 redo log 。例如,一个三节点的集群,每个实例至少需要两个 redo log ,则整个集群至少需要 6 个 redo log 。 - **性能优化** 增加 redo log 大小可以减少日志切换的频率,从而提高数据库性能。然而,过大的 redo log 可能会增加数据库恢复的时间,因此需要根据实际需求进行权衡。 - **备份与恢复** 在修改 redo log 大小之前,建议进行数据库的完整备份,以防止意外情况导致数据丢失。 ### 示例:调整 redo log 大小的完整操作 以下是一个完整的操作示例,假设当前数据库的 redo log 大小为 50MB,需要调整为 200MB,并且集群中有两个实例: 1. **查看当前 redo log 的信息** ```sql SELECT GROUP#, THREAD#, SEQUENCE#, BYTES, MEMBERS, STATUS FROM v$log; ``` 2. **添加新的 redo log ** ```sql ALTER DATABASE ADD LOGFILE THREAD 1 GROUP 4 ('+DATA') SIZE 200M; ALTER DATABASE ADD LOGFILE THREAD 2 GROUP 5 ('+DATA') SIZE 200M; ``` 3. **切换 redo log ** ```sql ALTER SYSTEM SWITCH LOGFILE; ``` 4. **删除旧的 redo log ** ```sql ALTER DATABASE DROP LOGFILE GROUP 1; ALTER DATABASE DROP LOGFILE GROUP 2; ``` ### 总结 调整 Oracle RAC 环境中 redo log 大小是一个涉及多个步骤的操作,需要确保每个实例都有足够的 redo log ,并且日志文件存储在共享存储上。通过添加新的 redo log 、切换日志以及删除旧的日志,可以安全地完成 redo log 大小调整。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值