【问题标题】:How to prevent Oracle archived redo log from filling up database server disk?如何防止Oracle归档重做日志填满数据库服务器磁盘?
【发布时间】:2017-04-20 12:36:39
【问题描述】:

我的数据库服务器的磁盘很快就被存档文件填满了。 数据库的大小约为 60 Gb,我有大约 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.

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

【问题讨论】:

  • 您是否定期备份存档和数据文件?这是否备份到磁带(这是您的默认备份类型)。您的备份计划是什么?

标签: oracle rman


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    你的选择是,

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

    【讨论】:

    • 他为什么要增加磁盘空间?为什么你认为归档日志的 sie 很大?
    • 首先对迟到的回复表示歉意。正如他提到的,数据库文件和归档日志都位于同一位置,进一步增加磁盘空间将是它们的即时解决方案。我也同意,归档日志备份后不需要累积/存储。
    猜你喜欢
    • 2015-10-22
    • 2014-12-13
    • 2020-03-05
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2016-05-21
    相关资源
    最近更新 更多