暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

闪回区满问题处理

原创 柠檬酸 2021-06-07
704

1 问题描述:

核心数据库alert日志报错

检查及处理过程
ADG检查及恢复
复制

检查alert日志

数据库闪回区使用100%。
检查闪回区存放的数据都是归档日志文件。
处理过程
1、Rman target /
delete noprompt archivelog until time ‘sysdate-3’;

SQL> show parameter recover

NAME TYPE VALUE


db_recovery_file_dest string /u01/app/oracle/fast_recovery_
area/datastore/coredb
db_recovery_file_dest_size big integer 1800G
db_unrecoverable_scn_tracking boolean TRUE
recovery_parallelism integer 0
SQL> alter system set db_recovery_file_dest_size=2000G;

SQL> SELECT * FROM V$FLASH_RECOVERY_AREA_USAGE;

FILE_TYPE PERCENT_SPACE_USED PERCENT_SPACE_RECLAIMABLE NUMBER_OF_FILES


CONTROL FILE 0 0 0
REDO LOG 0 0 0
ARCHIVED LOG 72.31 0 1935
BACKUP PIECE .01 0 1
IMAGE COPY 0 0 0
FLASHBACK LOG 0 0 0
FOREIGN ARCHIVED LOG 0 0 0

3、 恢复adg
将主数据库的归档日志copy 到adg数据库(32584归档)
Rman target /
Catalog start with ‘/home/oracle/bak/1_32584***.arch’;
然后观察日志自动恢复

检查数据库的日志归档生成量

归档日志在6.4号和6.5号突增。
检查为什么没有删除归档,检查发现.1 adg 同步异常,adg因空间不足导致同步异常
/arch当归档空间不足的时候,会造成归档文件写错误,但是该文件仍保留而归档出现坏块无法恢复,在读取的时候会出现因为文件已经损坏而出现对失败,出现gap,因为该文件已经存在又无法自动修复(并且存在空间问题adg在尝试几次重启应用日志后无法恢复则会停止应用),需要手工介入修复,这样会导致adg同步延迟变大。而因为adg 的延迟导致主库在删除归档的时候在不加force 强制删除的情况下,是不会删除未传送到adg端的归档日志的。从而造成生产数据库的文件没有删除将闪回区撑满.

因此这就会造成源数据库的归档空间使用率高。
检查为什么产生大量的归档日志

检查归档时间段内的awr报告,可以发现数据库有大量的dml操作,这会产生大量的归档。上述的操作都会产生大量的归档.比如下面:
DELETE FROM MONITOR_LIST.T_ACCUITYGWL_SDFS_PUSH D WHERE D.ID = :B2 AND D.VERSION = :B1

INSERT INTO MONITOR_LIST.T_ACCUITYGWL_SDFS_PUSH B SELECT * FROM T_ACCUITYGWL_SDFS A WHERE A.ID IN ( SELECT ID FROM MONITOR_LIST.T_ACCUITYGWL_ENTITY_PUSH P1 WHERE P1.UNIONID = TRIM(:B1 ) ) AND A.VERSION IN ( SELECT VERSION FROM MONITOR_LIST.T_ACCUITYGWL_ENTITY_PUSH P2 WHERE P2.UNIONID = TRIM(:B1 ) )  
数据变更量比较大的段如下

  1. 建议
    1、 增加对adg的延迟状态的监控
    2、 调整生产数据库的的 db_recovery_file_dest_size
    3、 对adg的arch目录扩容 建议再次增加400G。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论