资讯专栏INFORMATION COLUMN

ADG备库不同步问题小记

IT那活儿 / 2331人阅读
ADG备库不同步问题小记
点击上方“IT那活儿”,关注后了解更多精彩内容!!

背景说明

在22:09分收到客户反馈AAA主库创建表空间,备库查询不到相应表空间,随即进行排查。。。

故障具体分析

1. 进行数据库alert排查
AAA备库 alert主要收集到重要信息如下:
Thu Dec 23 00:18:05 2021
Media Recovery Waiting for thread 1 sequence 82 (in transit)
Recovery of Online Redo Log: Thread 1 Group 9 Seq 82 Reading mem 0
Mem# 0: /data/u01/oracle/oradata/stredo01.log
Thu Dec 23 16:34:03 2021
Errors in file /data/u01/oracle/diag/rdbms/aaadbdg/AAADBDG/trace/AAADBDG_pr00_12137.trc:
ORA-01264: Unable to create datafile file name
ORA-19800: Unable to initialize Oracle Managed Destination
Linux-x86_64 Error: 13: Permission denied
File #13 added to control file as UNNAMED00013.
Originally created as:
/data/u01/oracle/oradata/aaa_obs_data_01.dbf


2. 进行alert中上述trc文件重要信息收集


*** 2021-12-23 16:34:03.848
ORA-19800: Unable to initialize Oracle Managed Destination
Linux-x86_64 Error: 13: Permission denied
File #13 added to control file as UNNAMED00013.
Originally created as:
/data/u01/oracle/oradata/aaa_obs_data_01.dbf
Recovery was unable to create the file as a new OMF file.
*** 2021-12-23 16:34:03.880 4343 krsh.c
MRP0: Background Media Recovery terminated with error 1274
ORA-01274: cannot add datafile /data/u01/oracle/oradata/aaa_obs_data_01.dbf - file could not be created
*** 2021-12-23 16:34:03.880 4343 krsh.c
Managed Standby Recovery not using Real Time Apply
MRP: Prodding archiver at standby for thread 1 seq 82
日志分析:
从上述日志分析在23号16:34:03分备库尝试创建13号数据文件,但却抛出ORA-01264,ORA-19800,Linux-x86_64 Error: 13等错误,无法创建13号数据文件,并伴有权限错误提示,后续为控制文件添加默认13号数据文件UNNAMED00013。
继续查看AAADBDG_pr00_12137.trc文件,错误与alert大体一致,后续报出13号数据文件,恢复无法将该文件创建为新的OMF文件,又因为备库数据文件无法创建导致主备库数据不一致,备库强制停止MRP0进程。由此初步怀疑是OMF功能导致。
3. 查看主备参数配置
db_file_name_convert和log_file_name_convert的作用:
该参数主要用于复制数据库及dataguard中,
他将主库中的数据文件转换到备库,备库中的文件必须存在及可写,否则recovery进程会失败。
查看主库参数:
SQL> show parameter file_name_convert
NAME TYPE VALUE-
------------------------------------ ---------------------- --------------------
log_file_name_convert /data/u01/oracle/oradata,/data/u01/oracle/oradata
db_file_name_convert /data/u01/oracle/oradata
,/data/u01/oracle/oradata
STANDBY_FILE_MANAGEMENT参数作用:
启用自动备用文件管理后,主数据库上的操作系统文件添加和删除将复制到备用数据库上。
查看备库参数:
SQL> show parameter STANDBY_FILE_MANAGEMENT

NAME TYPE VALUE
---------------- --------------- ------------------------------
standby_file_management string  auto
基于alert日志trc文件反馈的OMF信息,进行主备OMF参数查看:
SQL> show parameter db_create_file_dest

NAME TYPE VALUE
------------------------------------ ---------------------- ------------------------------
db_create_file_dest string /data
进行分析:
正常情况下主备开启STANDBY_FILE_MANAGEMENT为AUTO的情况下,主库添加数据文件备库接收日志后应用日志根据file_name_convert参数记录的数据文件路径,对应的会在备库创建相应数据文件,由于备库启动OMF功能,则备库创建数据文件时会根据OMF路径进行创建而不再根据file_name_convert参数指定的路径进行创建。
相应文献资料:
查看备库db_create_file_dest参数指定的路径为/data,根据alert以及对应的trc文件相应信息’无法在托管目录进行数据文件创建’并带有Linux-x86_64 Error: 13: Permission denied操作系统权报错,随即查看/data目录权限,发现/data目录属组属主权限均为root权限,如下:

造成故障主要原因

1. 主备库开启OMF功能,在主库创建数据文件时候会根据OMF指定路径进行创建,会自动规避掉file_name_convert参数指定的数据文件路径。
2. OMF路径权限不足,直接导致备库走OMF路径创建数据文件时候失败。

处理方法

由于主库创建大量数据文件,客户急于恢复,随机删除备库,重新进行主备库搭建后,并清空主备库OMF参数。
RMAN> duplicate target database for standby nofilenamecheck from active database;
Alter system set db_create_file_dest =’’;


问题总结

搭建DG过程中没有必要的话关闭备库OMF功能,打开OMF情况下一定要保证OMF目录的权限以及相对应数据文件的路径问题。


本 文 原 创 来 源:IT那活儿微信公众号(上海新炬王翦团队)


文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129673.html

相关文章

  • MySQL 复制 - 性能与扩展性的基石 2:部署及其配置

    摘要:配置主库和备库。主库当前的二进制日志文件,和获得数据快照时在该二进制日志文件中的偏移量。它能够在备份时不阻塞服务器的操作,因此可以在不影响主库的情况下设置备库。 showImg(https://segmentfault.com/img/bVbqOEk?w=720&h=480); 正所谓理论造航母,现实小帆船。单有理论,不动手实践,学到的知识犹如空中楼阁。接下来,我们一起来看下如何一步步...

    刘德刚 评论0 收藏0
  • MySQL 复制 - 性能与扩展性的基石 2:部署及其配置

    摘要:配置主库和备库。主库当前的二进制日志文件,和获得数据快照时在该二进制日志文件中的偏移量。它能够在备份时不阻塞服务器的操作,因此可以在不影响主库的情况下设置备库。 showImg(https://segmentfault.com/img/bVbqOEk?w=720&h=480); 正所谓理论造航母,现实小帆船。单有理论,不动手实践,学到的知识犹如空中楼阁。接下来,我们一起来看下如何一步步...

    fobnn 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<