首页 > 其他分享 >rfs (PID:146054): Database mount ID mismatch案例

rfs (PID:146054): Database mount ID mismatch案例

时间:2024-07-08 23:08:02浏览次数:9  
标签:rfs log Database 146054 standby dest VALID role archive

测试环境中,新搭建的Oracle 19c DG,在主备切换后,新的主库的告警日志中一直出现类似下面这样的错误:

.........................................
2024-07-08T13:40:55.384302+08:00
 rfs (PID:146054): Database mount ID mismatch [0x358d50ef:0x358e23cd] (898453743:898507725)
 rfs (PID:146054): Client instance is standby database instead of primary
 rfs (PID:146054): Not using real application clusters
.........................................

原因分析

在备库上检查参数log_archive_dest_2,fal_server,fal_client等参数。

SQL> show  parameter log_archive_dest_2;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2                   string      service=gsp lgwr async valid_f
                                                 or=(all_logfiles,all_roles) db
                                                 _unique_name=gsp
log_archive_dest_20                  string
log_archive_dest_21                  string
log_archive_dest_22                  string
log_archive_dest_23                  string
log_archive_dest_24                  string
log_archive_dest_25                  string
log_archive_dest_26                  string
log_archive_dest_27                  string

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_28                  string
log_archive_dest_29                  string

SQL> show parameter fal

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
fal_client                           string
fal_server                           string      gsp
SQL> 

如上所示,由于参数log_archive_dest_2中设置VALID_FOR=(all_logfiles,all_roles),从而导致备库(standby database)会将redo log & standby redo log发送回主库,从而导致这些消息写入到主库的告警日志当中。其实这里是因为参数不合理设置导致,简单来说,有两个解决方法。请见下面内容。

解决方案:

方法1:在备库上清空参数log_archive_dest_2

SQL> alter system set log_archive_dest_2='' scope=both;

System altered.

方法2: 在备库,将log_archive_dest_2参数的VALID_FOR调整为(ONLINE_LOGFILES,PRIMARY_ROLE)

SQL> alter system set log_archive_dest_2='service=gsp lgwr async valid_for=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=gsp' scope=both;

官方文档Database mount ID mismatch ORA-16009: invalid redo transport destination (Doc ID 1450132.1)中也有相关案例介绍,文档中的例子是因为克隆了备库,但是没有移除DG的相关配置,解决方法如下所示:

SQL> alter system set log_archive_dest_n='' scope=both sid='*';- one that points to original Primary
SQL> alter system set fal_server='' scope=both sid='*';
SQL> alter system set fal_client='' scope=both sid='*';

知识总结:

本文案例就是因为没有搞清楚DG相关参数的区别,疏忽大意导致的,那么下面就简单将介绍一下VALID_FOR的意义

在DG的配置中,初始化参数LOG_ARCHIVE_DEST_n用来指定redo log的存放位置,可以存放在本地,也可以指定redo transport的位置。其中VALID_FOR属性用来控制日志传输,其格式为:VALID_FOR=(redo_log_type,database_role)。

VALID_FOR属性由2部分组成:archive_source(online_logfile,standby_logfile,all_logfiles)和database_role(primary_role,standby_role,all_role).

  • online_logfile: 表示归档联机重做日志

  • standby_logfile:表示归档备用数据库的重做日志/接受来自主库的重做日志

  • all_logfiles: online_logfile && standby_logfile

  • primary_role: 仅当数据库角色为主库时候生效

  • standby_role: 仅当数据库角色为备库时候生效

  • all_role: 任意角色均生效

注意事项:没有写VALID_FOR时,默认VALID_FOR=(all_logfiles,all_roles)

标签:rfs,log,Database,146054,standby,dest,VALID,role,archive
From: https://www.cnblogs.com/kerrycode/p/18290858

相关文章

  • SQL Server 中的 DBCC(Database Console Commands)命令提供了一系列用于数据库管理和诊
    SQLServer中的DBCC(DatabaseConsoleCommands)命令提供了一系列用于数据库管理和诊断的工具和功能。以下是一些常用的DBCC命令及其功能:DBCCCHECKDB:用于检查整个数据库的物理和逻辑一致性。sqlCopyCodeDBCCCHECKDB('MyDatabase');DBCCCHECKTABLE:检查指定表......
  • IDEA Database DataGrip关于Hive连接驱动万能问题详解。。
    问题:默认下载的Hive驱动版本是3的,如果使用最新的3版本连接2版本的Hive会报错,报各种依赖问题。解决方案:需要下载对应版本的Hive驱动hive-jdbchadoop-common也需下载(版本不需要太严格,2和3版本都可)配置刚刚下载的依赖包(在弹出的finder文件位置,新建一个文件夹,文件夹的名称修改......
  • es启动报错exception during geoip databases update
    解决:在es配置文件中添加如下重启ingest.geoip.downloader.enabled:false  报错信息{"type":"server","timestamp":"2024-07-01T15:11:05,965Z","level":"ERROR","component":"o.e.i.g.GeoIpDownlo......
  • 解决idea项目连接数据库报错:Could not create connection to database server.
    前言idea运行项目时连接数据库,报错Couldnotcreateconnectiontodatabaseserver. 方法1.检查MySQL设置时区:打开运行cmd命令提示符首先连接数据库,输入mysql-hlocalhost-uroot-p,再回车,输入密码连接成功后,输入showvariableslike'%time_zone';,再回车,显示时区配......
  • XWiki DatabaseSearch接口处存在RCE漏洞
     0x01阅读须知        技术文章仅供参考,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用......
  • [翻译]-Detect And Repair Corruption in an Oracle Database
    本文是对这篇文章DetectAndRepairCorruptioninanOracleDatabase[1]的翻译,翻译如有不当的地方,敬请谅解,请尊重原创和翻译劳动成果,转载的时候请注明出处。谢谢!Oracle数据库提供了多种方法检测和修复数据文件中的坏块。主要有下面一些方法:RMAN(BACKUPVALIDATE,RESTOREVA......
  • COMP643 Advanced Database Management
    COMP643AdvancedDatabaseManagementAssignment3Worth:20%ofcoursemarksforCOMP643.Due:Friday,14thJune20245:00p.m.LatePenalty:Worknotreceivedbytheduetimeattractsanimmediatepenalty,upto25%ofthepointsavailable.Noworkw......
  • 安装MySQL数据库时遇到sample Databases,select databases that should be created:有
    SakilaDatabase:Sakila是一个经典的示例数据库,设计用于模拟电影租赁服务的业务流程。Sakila数据库包含电影、顾客、租赁、支付等表,可以用于练习SQL查询和了解数据库的关系模型。如果你想练习处理类似于电影租赁等实际业务场景的查询和数据操作,选择创建Sakila数据库是一......
  • TiDB Distributed NewSQL Database
    TiDB的全称是TiDBDistributedNewSQLDatabase,即TiDB分布式NewSQL数据库。它是一个开源的分布式关系型数据库,结合了传统关系型数据库(RDBMS)的ACID事务特性以及NoSQL数据库的分布式水平扩展能力。通过TiDB,用户可以像使用MySQL一样执行SQL查询,而TiDB的分布式架构则......
  • RFS_Server_06 上传并发布数据
    操作描述:云服务器Ubuntu20.04系统Docker中有两个容器:Postgres容器和GeoServer容器。将数据存储至Postgres数据库容器中,并通过GeoServer连接,发布地图服务。此文档中使用的Postgres数据库名称为pg01,GeoServer服务器名称为geoserver01。1    基础操作:使用工具连接云服务器Docke......