归档日志的三个路径
之前配置 RAC 开启归档模式时没有指定归档目录,默认放在闪回区,造成超过闪回区大小,临时将闪回区大小 db_recovery_file_dest_size
设置为 50G,随着数据量增大,并不能解决根本问题。
所以设置 LOG_ARCHIVE_DEST_n
的位置:
1 | alter system set log_archive_dest_1='location=+ARCHIVE_LOG' scope=spfile sid='*'; |
重启数据库报错:
ORA-16019: cannot use db_recovery_file_dest with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST
由于修改进 spfile,导致无法启动,此时参照第二部分 pfile 与 spfile 互转恢复。
原因是 DB_RECOVERY_FILE_DEST
LOG_ARCHIVE_DEST
LOG_ARCHIVE_DEST_n
会存在冲突。
查看当前的闪回区配置:
1 | show parameter DB_RECOVERY_FILE_DEST |
路径存在,大小为 50G。
查看 LOG_ARCHIVE_DEST
,可以看到此参数设置了路径。
不难看出,因而造成了配置 LOG_ARCHIVE_DEST_1
时出现冲突。
归档日志的路径设置顺序为:
当 DB_RECOVERY_FILE_DEST
和 LOG_ARCHIVE_DEST_n
不存在的时候,会读取 LOG_ARCHIVE_DEST
的路径,当 DB_RECOVERY_FILE_DEST
存在时,会被 DB_RECOVERY_FILE_DEST
覆盖,此时要指定独立归档日志路径,需要设置 LOG_ARCHIVE_DEST_n
参数来优先覆盖。
若要配置 LOG_ARCHIVE_DEST
,则需要清空 DB_RECOVERY_FILE_DEST
LOG_ARCHIVE_DEST_n
:
1 | alter system set db_recovery_file_dest='' |
若要配置 LOG_ARCHIVE_DEST_N
,则需要清空 LOG_ARCHIVE_DEST
和 DB_RECOVERY_FILE_DEST
:
1 | alter system set db_recovery_file_dest='' |
这样就会解决冲突。
pfile 与 spfile 的互转
涉及 spfile 的更改,可能导致下次重启数据库报错。
RAC 环境下,修改遭遇:
1 | ORA-16019: cannot use LOG_ARCHIVE_DEST_1 with LOG_ARCHIVE_DEST or LOG_ARCHIVE_DUPLEX_DEST |
出现此问题的原因是 log_archive_dest_n
,db_recovery_file_dest
和 log_archive_dest_1
不能同时设置。存在冲突。
这是就需要根据 spfile 重建 pfile,删除错误配置项,用 pfile 启动后再根据 pfile 重新创建 spfile。
根据 spfile 创建 pfile:
1 | create pfile='init.ora' from spfile |
一般位于 $ORACLE_HOME/dbs
下,也可以指定路径来生成。
随后利用该 pfile 启动:
1 | startup pfile='<pfile path>' |
然后生成 spfile:
1 | create spfile='<spfile path>' form pfile='<pfile path>'; |
如果默认是以 spfile 启动,此时就可以成功启动 spfile。
redo 日志重建
早上发现某测试库实例挂掉,查看 alert 日志:
查看 redo 文件位置:
1 | select * from v$logfile; |
查看当前 redo 日志状态:
1 | select group#,members,bytes/1024/1024,status from v$log; |
删除状态为 INACTIVE 的日志组:
1 | alter database drop logfile group 1; |
若状态不为 INACTIVE,则执行:
1 | alter system switch logfile; |
此时可以在文件系统中删除物理路径下的物理日志文件。
删掉后进行重建:
1 | alter database add logfile group 1 ('/u01/app/oracle/oradata/orcl/group1redo1.log', '/u01/app/oracle/oradata/orcl/group1redo2.log') size 300M; |
参考
- http://www.orasos.com/tag/ora-00340
- http://czmmiao.iteye.com/blog/2277675
- http://blog.itpub.net/29618264/viewspace-2125274/
- http://blog.itpub.net/77550/viewspace-850380/
-EOF-