如何防止Oracle归档重做日志填满数据库服务器磁盘?

时间:2016-12-06 00:23:19

标签: oracle rman

我的数据库服务器磁盘使用存档文件非常快速。 数据库的大小约为60Gb,我有大约30 Gb的可用磁盘。

问题是,即使我的保留策略设置为REDUNDANCY 1,30Gb也会被归档日志使用大约一周。

RMAN> show all;

using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name MYDB are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE SBT_TAPE TO '%F'; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE SBT_TAPE PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE SBT_TAPE TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=/u01/app/oracle/product/11.2.0/db_1/lib/libosbws11.so,   SBT_PARMS=(OSB_WS_PFILE=/u01/app/oracle/product/11.2.0/db_1/dbs/osbswsMYDB.ora)';
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO 'TAPE';
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0/db_1/dbs/snapcf_MYDB.f'; # default

因此,如果每周都不清除闪回恢复区,则数据库服务器将耗尽空间并且会提示错误ORA-00257。

ERROR: ORA-00257: archiver error. Connect internal only, until freed.

有关如何解决此问题的任何想法?

3 个答案:

答案 0 :(得分:0)

我想知道您是否理解RMAN的“保留政策”与清洁FRA的“行动”之间的关系? 您当前的保留策略为1,表示所有不必要的备份(级别0,级别1,存档日志等)都将被标记为“已过时”,但不会被删除(它们仍会占用存储空间)。已过时意味着他们可以安全地删除,但仍然符合您的保留政策。 在这种情况下,解决方案是安排crontab或job在每个rman增量级别0备份之后自动删除过时的备份(rman>删除noprompt已过时;)。 如果要删除过时的备份并且仍然面临空间压力-那么您必须请求系统管理员增加您当前的FRA位置(增加db_recovery_file_dest_size)或为db_recovery_file_dest初始化参数选择另一个位置。

答案 1 :(得分:-1)

所以简单的答案就是增加更多的磁盘空间。答案很难确定 使您的存档日志增长的内容并采取相应步骤。

答案 2 :(得分:-1)

您的选择是,

  1. 增加磁盘空间
  2. 找出生成大量存档日志的原因。
  3. 每天安排两次archivelog备份以备份和清除空间。