oracle归档日志大小显示为0啥意思
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle归档日志大小显示为0啥意思相关的知识,希望对你有一定的参考价值。
参考技术A 存储损坏。oracle归档日志大小显示为0是因为存储损坏导致部分文件系统元文件没有更新。需要进行更新处理,重组存储信息,重新导出文件,并分析控制文件,找出这些0kb文件大小的文件号,扫描数据库碎片即可。修改默认归档日志
Oracle11g版本,ORACLE默认的日志归档路径为闪回恢复区($ORACLE_BASE/fast_recovery_area)。对于这个路径,Oracle有一个限制,就是默认只有4G的空间,而且不只是归档日志的默认路径,也是备份文件和闪回日志的默认地址,这样的话归档日志锁使用的空间就达不到4G,在没有设置好这个路径大小的情况下,很多系统都遇到过归档日志满而无法归档导致数据库夯住的问题。
1.查看归档日志路径
- SQL> archive log list
- Database log mode Archive Mode
- Automatic archival Enabled
- Archive destination USE_DB_RECOVERY_FILE_DEST
- Oldest online log sequence 4
- Next log sequence to archive 6
- Current log sequence 6
这里可以看到Archive destination的值为USE_DB_RECOVERY_FILE_DEST,可以理解为USE(使用)DB_RECOVERY_FILE_DEST这个路径
2.查看DB_RECOVERY_FILE_DEST路径
- SQL> show parameter db_recovery
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- db_recovery_file_dest string /u01/oracle/fast_recovery_area
- db_recovery_file_dest_size big integer 4G
由上可以很清楚的看到DB_RECOVERY_FILE_DEST路径参数的值默认为/u01/oracle/fast_recovery_area,并且Oracle设置的大小为4G。
默认情况下,归档日志会存放到闪回恢复区($ORACLE_BASE/fast_recovery_area)内,如果闪回恢复区已经使用到4G,归档日志就有可能无法继续归档,数据库夯住。
1)解决方法一
通常的解决方法是增大闪回恢复区,可以用以下SQL实现。
- --修改语句
- SQL> alter system set db_recovery_file_dest_size=10G;
- System altered.
- --再次查看
- SQL> show parameter db_recovery
- NAME TYPE VALUE
10. ------------------------------------ ----------- ------------------------------
11. db_recovery_file_dest string /u01/oracle/fast_recovery_area
12. db_recovery_file_dest_size big integer 10G
2)解决方法二
修改归档日志的路径,将归档日志放到其他不受限制的路径下来解决这个问题,可通过下面的SQL来修改归档日志的存放路径。
- --修改log_archive_dest_1值来重新制定路径
- SQL> alter system set log_archive_dest_1=‘location=/u01/oracle/archive‘;
- System altered.
这里特别要注意location参数,并且指定的目录要存在并且有Oracle的权限
重新启动数据库,查看归档路径是否修改成功
- --关闭
- SQL> shutdown immediate
- Database closed.
- Database dismounted.
- ORACLE instance shut down.
- SQL> startup
- ORACLE instance started.
- Total System Global Area 784998400 bytes
10. Fixed Size 2257352 bytes
11. Variable Size 478154296 bytes
12. Database Buffers 301989888 bytes
13. Redo Buffers 2596864 bytes
14. Database mounted.
- 15.
16. Database opened.
- 17.
18. --再次查看,修改成功
19. SQL> archive log list
20. Database log mode Archive Mode
21. Automatic archival Enabled
22. Archive destination /u01/oracle/archive
23. Oldest online log sequence 4
24. Next log sequence to archive 6
25. Current log sequence 6
可以通过切换日志,查看归档路径下是否有归档日志产生来验证归档路径设置是否正确,可以通过下面的命令切换日志
- SQL> alter system switch logfile;
- System altered.
- SQL> exit
- Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
- With the Partitioning, OLAP, Data Mining and Real Application Testing options
- [[email protected] oracle]$ ll /u01/oracle/archive/
10. total 36540
11. -rw-r----- 1 oracle oinstall 9608704 Oct 20 14:39 1_6_893515662.dbf
归档格式:
- SQL> show parameter log_archive_format
- NAME TYPE VALUE
- ------------------------------------ ----------- ------------------------------
- log_archive_format string %t_%s_%r.dbf
以上是关于oracle归档日志大小显示为0啥意思的主要内容,如果未能解决你的问题,请参考以下文章
红旗下的 ORACLE 数据库 归档日志 一分钟一次 一次45M 让人受不了了 怎么解决 ?目录为ARCH