修改默认归档日志

Posted LWJ303

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了修改默认归档日志相关的知识,希望对你有一定的参考价值。

 



Oracle11g版本,ORACLE默认的日志归档路径为闪回恢复区($ORACLE_BASE/fast_recovery_area)。对于这个路径,Oracle有一个限制,就是默认只有4G的空间,而且不只是归档日志的默认路径,也是备份文件和闪回日志的默认地址,这样的话归档日志锁使用的空间就达不到4G,在没有设置好这个路径大小的情况下,很多系统都遇到过归档日志满而无法归档导致数据库夯住的问题。

1.查看归档日志路径

 

  1. SQL> archive log list  
  2. Database log mode              Archive Mode  
  3. Automatic archival             Enabled  
  4. Archive destination            USE_DB_RECOVERY_FILE_DEST  
  5. Oldest online log sequence     4  
  6. Next log sequence to archive   6  
  7. Current log sequence           6  

这里可以看到Archive destination的值为USE_DB_RECOVERY_FILE_DEST,可以理解为USE(使用)DB_RECOVERY_FILE_DEST这个路径

2.查看DB_RECOVERY_FILE_DEST路径

 

  1. SQL> show parameter db_recovery  
  2.   
  3. NAME                                 TYPE        VALUE  
  4. ------------------------------------ ----------- ------------------------------  
  5. db_recovery_file_dest                string      /u01/oracle/fast_recovery_area  
  6. 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实现。

  1. --修改语句  
  2. SQL> alter system set db_recovery_file_dest_size=10G;  
  3.   
  4. System altered.  
  5.   
  6. --再次查看  
  7. SQL> show parameter db_recovery  
  8.   
  9. 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来修改归档日志的存放路径。

 

  1. --修改log_archive_dest_1值来重新制定路径  
  2. SQL> alter system set log_archive_dest_1=‘location=/u01/oracle/archive‘;  
  3.   
  4. System altered.  

这里特别要注意location参数,并且指定的目录要存在并且有Oracle的权限
重新启动数据库,查看归档路径是否修改成功

 

  1. --关闭  
  2. SQL> shutdown immediate  
  3. Database closed.  
  4. Database dismounted.  
  5. ORACLE instance shut down.  
  6. SQL> startup  
  7. ORACLE instance started.  
  8.   
  9. 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.  

  1. 15.   

16. Database opened.  

  1. 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  

可以通过切换日志,查看归档路径下是否有归档日志产生来验证归档路径设置是否正确,可以通过下面的命令切换日志

 

  1. SQL> alter system switch logfile;  
  2.   
  3. System altered.  
  4.   
  5. SQL> exit  
  6. Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production  
  7. With the Partitioning, OLAP, Data Mining and Real Application Testing options  
  8.   
  9. [[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  

归档格式:

 

  1. SQL> show parameter log_archive_format  
  2.   
  3. NAME                                 TYPE        VALUE  
  4. ------------------------------------ ----------- ------------------------------  
  5. log_archive_format                   string      %t_%s_%r.dbf  

以上是关于修改默认归档日志的主要内容,如果未能解决你的问题,请参考以下文章

Oracle的日志文件存储在啥位置

linux oracle归档日志文件路径修改

如何在归档模式下,更改归档日志路径

oracle的归档日志如何分天存放

Oracle归档日志

如何查看归档日志路径