Oracle
10g默认启用日志归档,db_recovery_file默认为2GB,不清理日志一般经过一段时间的使用闪回区便被占满,造成数据库无法归档,无法启动的错误。一般ORA-16038、ORA-19809、ORA-00312这三个错误会同时出现。
解决方法通常包括:
1. 提高参数db_recovery_file_dest_size
- 使用sqlplus /nolog登录,SQL> connect /as sysdba;
- SQL> startup mount;
- SQL> ALTER SYSTEM SET
DB_RECOVERY_FILE_DEST_SIZE=4G SCOPE=BOTH; - SQL> alter database open;
2. 关闭闪回功能(如果你确实不再需要该功能)
- 使用sqlplus /nolog登录,connect /as sysdba;
- SQL> alter system archive log
stop;
3. 删除无用的归档文件并更新rman记录
- 查看对应initxxx.ora,找不到的话可以在$ORACLE_HOME下搜索,找对应SID的即可
- 在initxxx.ora中找到# File
Configuration部分,可以看到db_recovery_file_dest=XXXXX,即为数据闪回区的日志文件记录位置。 - 进入闪回区目录,查看对应SID下的archivelog文件夹内内容,删除旧的日志归档文件
- 使用RMAN命令,RMAN> connect target /
- 使用命令RMAN> crosscheck archivelog
all,该操作将标明哪些归档文件已被删除 - 使用命令RMAN> delete expired archivelog
all,该命令将删除rman controlfile中相应的记录
0 评论:
发表评论