ITPub博客

首页 > 数据库 > Oracle > [Archive]更改ORACLE默认归档路径

[Archive]更改ORACLE默认归档路径

原创 Oracle 作者:梓沐 时间:2016-02-15 09:56:19 0 删除 编辑

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

首先,在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 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

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


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29812844/viewspace-1988815/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
擅长PLS/QL开发,SQL调优和改写,数据库设计

注册时间:2014-08-18

  • 博文量
    161
  • 访问量
    1204433