[Archive]更改ORACLE默认归档路径
2015-10-20 14:42
441 查看
今天群里面有人问,数据库的归档空间满了,但是将归档日志部分文件移走了,但是空间仍然未释放,该如何解决。
首先,在linux系统中,如何一个文件被进程所占用,这个时候即使将文件移走或删除,空间其实仍然是被占用的。遇到上述情况空间未释放可能有这方面的原因,将相关的程序杀掉即可,但是这可能会影响Oracle的运行。这时我们通过更改归档日志的路径大小来解决这种问题。
Oracle11g版本,ORACLE默认的日志归档路径为闪回恢复区($ORACLE_BASE/fast_recovery_area)。对于这个路径,Oracle有一个限制,就是默认只有4G的空间,而且不只是归档日志的默认路径,也是备份文件和闪回日志的默认地址,这样的话归档日志锁使用的空间就达不到4G,在没有设置好这个路径大小的情况下,很多系统都遇到过归档日志满而无法归档导致数据库夯住的问题。
1.查看归档日志路径
2.查看DB_RECOVERY_FILE_DEST路径
默认情况下,归档日志会存放到闪回恢复区($ORACLE_BASE/fast_recovery_area)内,如果闪回恢复区已经使用到4G,归档日志就有可能无法继续归档,数据库夯住。
1)解决方法一
通常的解决方法是增大闪回恢复区,可以用以下SQL实现。
修改归档日志的路径,将归档日志放到其他不受限制的路径下来解决这个问题,可通过下面的SQL来修改归档日志的存放路径。
重新启动数据库,查看归档路径是否修改成功
首先,在linux系统中,如何一个文件被进程所占用,这个时候即使将文件移走或删除,空间其实仍然是被占用的。遇到上述情况空间未释放可能有这方面的原因,将相关的程序杀掉即可,但是这可能会影响Oracle的运行。这时我们通过更改归档日志的路径大小来解决这种问题。
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 ------------------------------------ ----------- ------------------------------ db_recovery_file_dest string /u01/oracle/fast_recovery_area db_recovery_file_dest_size big integer 10G2)解决方法二
修改归档日志的路径,将归档日志放到其他不受限制的路径下来解决这个问题,可通过下面的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 Fixed Size 2257352 bytes Variable Size 478154296 bytes Database Buffers 301989888 bytes Redo Buffers 2596864 bytes Database mounted. Database opened. --再次查看,修改成功 SQL> archive log list Database log mode Archive Mode Automatic archival Enabled Archive destination /u01/oracle/archive Oldest online log sequence 4 Next log sequence to archive 6 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 [oracle@cancer oracle]$ ll /u01/oracle/archive/ total 36540 -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
相关文章推荐
- python连接oracle的模块cx_Oracle安装和配置
- Oracle动态游标
- jdbc(java连接数据库oracle)
- ORACLE 超长字符串问题的解决办法
- Oracle重建表(CTAS+rename)注意事项总结
- Sql Server远程连接数据库(相当于Oracle的dblink方式)
- Oracle 11g用exp无法导出空表的处理发布方法
- 记录下Oracle 查询节点
- Oracle的rownum原理和使用(整理几个达人的帖子)(转载)
- oracle 游标示例
- Oracle中in函数的使用
- dba,user,v$等开头的常用表和视图
- [置顶] [实验-视频过程]常用的oracle数据字典
- oracle 日期操作 汇总
- ORACLE 中的union(去重并集),union all(不去重并集),intersect(交集),minus(减集)
- ORACLE CTAS(create table as select)使用注意点
- [转]oracle性能调优之--Oracle 10g AWR 配置
- oracle 11.2版本.sysman/log下emdb.nohup文件偏大,如何解决?
- Oracle 组件 系列 小结
- oracle中的函数之单行函数