当前位置: 首页 > news >正文

Oracle DataGuard奇怪的ORA-16494错误

Oracle数据库DataGuard数据无法同步,主库查询v$archive_dest出现ORA-16494错误。
数据库版本Oracle 12.1.0.2.0:

SQL> select * from v$version;BANNER
--------------------------------------------------------------------------------CON_ID
----------
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production0PL/SQL Release 12.1.0.2.0 - Production0CORE    12.1.0.2.0      Production0BANNER
--------------------------------------------------------------------------------CON_ID
----------
TNS for 64-bit Windows: Version 12.1.0.2.0 - Production0NLSRTL Version 12.1.0.2.0 - Production0

检查主库DG参数:

SQL> show parameter log_archive_configNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string      DG_CONFIG=(orcl,orcladg)
SQL>
SQL> show parameter log_archive_dest_2NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2                   string      SERVICE=orcladg LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcladg
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                  stringNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_28                  string
log_archive_dest_29                  string
SQL> show parameter service_namesNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      orcl
SQL> show parameter uniqueNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      orcl

检查备库参数:

SQL> show parameter log_archive_configNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_config                   string      DG_CONFIG=(orcl,orcladg)
SQL> show parameter log_archive_dest_2NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_2                   string      SERVICE=orcl LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl
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                  stringNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_dest_28                  string
log_archive_dest_29                  string
SQL> show parameter service_namesNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      pdborcl
SQL> show parameter uniqueNAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_unique_name                       string      orcladg

检查主备库之间的网络连通性
主库:

C:\Users\Administrator>tnsping orclTNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 08-5月 -2023 22:42:27Copyright (c) 1997, 2014, Oracle.  All rights reserved.已使用的参数文件:
C:\app\pdborcl\product\12.1.0\dbhome_1\network\admin\sqlnet.ora已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-VJ841V9N3PU)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =
OK (20 毫秒)C:\Users\Administrator>tnsping orcladgTNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 08-5月 -2023 22:42:39Copyright (c) 1997, 2014, Oracle.  All rights reserved.已使用的参数文件:
C:\app\pdborcl\product\12.1.0\dbhome_1\network\admin\sqlnet.ora已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.188.201)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdborcl)))
OK (20 毫秒)

备库:

C:\Users\Administrator>tnsping orclTNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 08-5月 -2023 22:42:27Copyright (c) 1997, 2014, Oracle.  All rights reserved.已使用的参数文件:
C:\app\pdborcl\product\12.1.0\dbhome_1\network\admin\sqlnet.ora已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = WIN-VJ841V9N3PU)(PORT = 1521))) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =
OK (20 毫秒)C:\Users\Administrator>tnsping orcladgTNS Ping Utility for 64-bit Windows: Version 12.1.0.2.0 - Production on 08-5月 -2023 22:42:39Copyright (c) 1997, 2014, Oracle.  All rights reserved.已使用的参数文件:
C:\app\pdborcl\product\12.1.0\dbhome_1\network\admin\sqlnet.ora已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.188.201)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = pdborcl)))
OK (20 毫秒)

主备库之间网络是畅通的。
主库切换日志,查询v$archive_dest:

SQL> alter system switch logfile;系统已更改。

在这里插入图片描述出现ORA-16494错误,该错误在网上找不到,而且MOS上也没有相关的记载。
在这里插入图片描述再次检查备库,会不会是PDB模式的,而且有名为PDBORCL的PDB,导致主库通过tns直接连到了PDB中。
备库查询:

SQL> select con_id,name,open_mode from v$pdbs;CON_ID NAME                           OPEN_MODE
---------- ------------------------------ ----------2 PDB$SEED                       MOUNTED3 PDBORCL                        MOUNTED

果然有个叫PDBORCL的PDB。
查看数据库的数据库名:

SQL> select name,open_mode,database_role from v$database;NAME      OPEN_MODE            DATABASE_ROLE
--------- -------------------- ----------------
ORCL      MOUNTED              PHYSICAL STANDBY

所以,如果想连到CDB中,应该将service_names指定为orcl,由于是备库,可设置为rzorcl或orclstd等,方便识别,但是一定要与PDBORCL不同名。
修改备库service_names

SQL> alter system set service_names='rzorcl';

在修改主库和备库中tnsnames.ora文件中备库连接串中SERVICE=RZORCL。
再次尝试切换日志,错误消失。


系统已更改。SQL>
SQL>
SQL>
SQL> select error from v$archive_dest;ERROR
-----------------------------------------------------------------ERROR
-----------------------------------------------------------------ERROR
-----------------------------------------------------------------已选择 31 行。SQL>

再次查看备库日志接收情况:

SQL> select process,sequence#,block# from v$managed_standby;PROCESS    SEQUENCE#     BLOCK#
--------- ---------- ----------
ARCH          103988      43008
ARCH               0          0
ARCH          103987       4096
ARCH          103989      40960
MRP0          103990      29955
RFS                0          0
RFS           103990      29955
RFS                0          0
RFS                0          09 rows selected.

备库日志接收正常,问题解决。

http://www.lryc.cn/news/66612.html

相关文章:

  • 《花雕学AI》Poe 一站式 AI 工具箱:ChatGPT4 体验邀请,亲,不要错过哦!
  • AttributeError: module ‘lib‘ has no attribute ‘X509_V_FLAG_CB_ISSUER_CHECK‘
  • Origin如何绘制基础图形?
  • OpenGL(九)——颜色
  • Python语言技术指南:探索功能丰富的高级编程语言
  • 【YOLO 系列】YOLO v4-v5先验知识
  • 4年外包终于上岸,我只能说别去....
  • Nginx快速入门
  • Leetcode507. 完美数
  • c++ 11标准模板(STL) std::vector (九)
  • 从Facebook到Diem币:社交媒体巨头在加密货币领域的演变
  • 利用font-spider对CSS字体进行压缩
  • 2023年软考系统架构师新版专栏导读
  • 时间表体验(2023.05.05-2023.05.06)
  • linux系统查询二进制BIn文件方法
  • api接口调用(1688/Taobao/jd平台API接口的调用实例)
  • Python+Yolov5舰船侦测识别
  • Qt5.9学习笔记-事件(五) 事件调试和排查
  • 【实用工具】SpringBoot实现接口签名验证
  • DDR基础
  • 理解find命令
  • OpenCV教程——调整图像亮度与对比度,绘制形状和文字
  • Python模块篇:函数/类/变量和常量/注释/导入和使用
  • Java反射和动态代理
  • [NOIP2004 提高组] 津津的储蓄计划(思路+代码详解)Python实现
  • 分布式搜索引擎es 面试突击
  • 社会心理学的六个经典实验
  • Java 单例模式详解
  • AI读心重磅突破登Nature!大脑信号1秒被看穿,还能预测未来画面
  • 【SAP Abap】X-DOC:SNRO - ABAP流水号应用