更改ORACLE默认归档路径

今天群里面有人问,数据库的归档空间满了,但是将归档日志部分文件移走了,但是空间仍然未释放,该如何解决。

首先,在linux系统中,如何一个文件被进程所占用,这个时候即使将文件移走或删除,空间其实仍然是被占用的。遇到上述情况空间未释放可能有这方面的原因,将相关的程序杀掉即可,但是这可能会影响Oracle的运行。这时我们通过更改归档日志的路径大小来解决这种问题。

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)解决方法二(为什么没有直接修改db_recovery_file_dest????)

修改归档日志的路径,将归档日志放到其他不受限制的路径下来解决这个问题,可通过下面的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.

  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

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

  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. [oracle@cancer 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

删除归档日志文件的方法: http://www.blogjava.net/kuuyee/archive/2013/05/15/399287.html

惜分飞大大的博客:http://www.xifenfei.com/655.html

关闭闪回日志:http://uhesse.com/2010/06/25/turning-flashback-database-on-off-with-instance-in-status-open/

http://blog.csdn.net/panys/article/details/3838846

http://jingyan.baidu.com/article/425e69e6b142d1be15fc16dc.html

http://www.itpub.net/thread-784621-2-1.html

http://gundam.blog.51cto.com/1845787/1272843

http://junfengwang060905.blog.163.com/blog/static/94223330201111524912142/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值