【DATAGUARD】物理dg配置客户端无缝切换 (八.4)--ora-16652 和 ora-16603错误
作者:互联网
一.1 BLOG文档结构图
一.2 前言部分
一.2.1 导读
各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~:
① Data Guard Broker 的配置
② Fast-Start Failover 的配置
③ Oracle DataGuard 之客户端TAF 配置
④ 使用DGMGRL 来管理数据库
⑤ 物理dg管理和维护的一些sql
⑥ DataGuard 客户端特级配置
注意:本篇BLOG中代码部分需要特别关注的地方我都用黄色背景和红色字体来表示,比如下边的例子中,thread 1的最大归档日志号为33,thread 2的最大归档日志号为43是需要特别关注的地方。
List of Archived Logs in backup set 11
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- ------------------- ---------- ---------
1 32 1621589 2015-05-29 11:09:52 1625242 2015-05-29 11:15:48
1 33 1625242 2015-05-29 11:15:48 1625293 2015-05-29 11:15:58
2 42 1613951 2015-05-29 10:41:18 1625245 2015-05-29 11:15:49
2 43 1625245 2015-05-29 11:15:49 1625253 2015-05-29 11:15:53
本文如有错误或不完善的地方请大家多多指正,ITPUB留言或QQ皆可,您的批评指正是我写作的最大动力。
一.2.2 实验环境介绍
项目 | 主库 | dg库 |
db 类型 | 单实例 | 单实例 |
db version | 11.2.0.3 | 11.2.0.3 |
db 存储 | FS type | FS type |
ORACLE_SID | oradg11g | oradgphy |
db_name | oradg11g | oradg11g |
主机IP地址: | 192.168.59.130 | 192.168.59.130 |
OS版本及kernel版本 | RHEL6.5 64位,2.6.32-504.16.2.el6.x86_64 | RHEL6.5 64位,2.6.32-504.16.2.el6.x86_64 |
OS hostname | rhel6_lhr | rhel6_lhr |
一.2.3 相关参考文章链接
dg的系列文章参考:
【DATAGUARD】 基于同一个主机建立物理备库和逻辑备库(一): http://blog.itpub.net/26736162/viewspace-1448197/
【DATAGUARD】 基于同一个主机建立物理备库和逻辑备库(二 ): http://blog.itpub.net/26736162/viewspace-1448207/
【DATAGUARD】 基于同一个主机建立物理备库和逻辑备库(三 ): http://blog.itpub.net/26736162/viewspace-1481972/
【DATAGUARD】 基于同一个主机建立物理备库和逻辑备库 (四)--添加一个物理dg节点 :http://blog.itpub.net/26736162/viewspace-1484878/
【DATAGUARD】物理dg的switchover切换(五) :http://blog.itpub.net/26736162/viewspace-1753111/
【DATAGUARD】物理dg的failover切换(六): http://blog.itpub.net/26736162/viewspace-1753130/
【DATAGUARD】物理dg在主库丢失归档文件的情况下的恢复(七) : http://blog.itpub.net/26736162/viewspace-1780863/
【DATAGUARD】物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置:http://blog.itpub.net/26736162/viewspace-1811839/
【DATAGUARD】物理dg配置客户端无缝切换 (八.2)--Fast-Start Failover 的配置:http://blog.itpub.net/26736162/viewspace-1811936/
【DATAGUARD】物理dg配置客户端无缝切换 (八.3)--客户端TAF 配置:http://blog.itpub.net/26736162/viewspace-1811944/
【DATAGUARD】物理dg配置客户端无缝切换 (八.4)--ora-16652 和 ora-16603错误:http://blog.itpub.net/26736162/viewspace-1811947/
一.2.4 本文简介
本篇blog是基于cuug的公开课内容,我自己进行实践的操作,视频可以参考:http://blog.itpub.net/26736162/viewspace-1624453/ ,简介我就不多写了,把cuug的内容直接copy过来吧,觉得还是比较有用的。
这个技术如果你不知道,不能算是ORACLE高手
这个技术如果你不知道,就不能说你会DataGuard
这个技术如果你不知道,......
本次网络课程,研究当主备库发生切换时,如何在主库启动一个service,保证客户端的连接能够继续,而且还能够继续select查询操作,而不管主备库是在哪台服务器上;同时保证新的客户连接没有任何的问题。本课程网络上的例子不多,陈老师花了将近一年的时间人肉搜索,最近才找到,急不可待的要分享给大家。
1、DataGuard的配置(快速)
2、创建service
3、创建触发器
4、主备库切换测试
由于内容较多,我打算分为4个章节来共享给大家,贴个图,不要奇怪,还有一个章节是实验过程中配到的问题解决。
本篇为第四节,列举了2个错误。
一.3 实验部分
一.3.1 实验目标
可以解决ORA-16603 和 ORA-16652错误。
一.3.2 错误: ORA-16603: Data Guard 中介在配置 ID 中检测到不匹配
DGMGRL> reinstate database oradg11g;
正在恢复数据库 "oradg11g", 请稍候...
错误: ORA-16603: Data Guard 中介在配置 ID 中检测到不匹配
失败。
恢复数据库 "oradg11g" 失败
DGMGRL> remove configuration;
错误: ORA-16603: Data Guard 中介在配置 ID 中检测到不匹配
错误: ORA-16625: 无法访问数据库 "oradgphy"
失败。
DGMGRL> show database verbose oradgphy
数据库 - oradgphy
角色: PRIMARY
预期状态: OFFLINE
实例:
oradgphy
属性:
DGConnectIdentifier = 'tns_oradgphy_dgmgrl'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '4'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = 'oradg11g, oradgphy'
LogFileNameConvert = 'oradg11g, oradgphy'
FastStartFailoverTarget = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
SidName = 'oradgphy'
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel6_lhr)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oradgphy_DGMGRL.lhr.com)(INSTANCE_NAME=oradgphy)(SERVER=DEDICATED)))'
StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.dbf'
TopWaitEvents = '(monitor)'
数据库状态:
DISABLED
DGMGRL> show database verbose oradg11g
数据库 - oradg11g
角色: PHYSICAL STANDBY
预期状态: OFFLINE
传输滞后: (未知)
应用滞后: (未知)
实时查询: OFF
实例:
oradg11g
属性:
DGConnectIdentifier = 'tns_oradg11g_dgmgrl'
ObserverConnectIdentifier = ''
LogXptMode = 'ASYNC'
DelayMins = '0'
Binding = 'optional'
MaxFailure = '0'
MaxConnections = '1'
ReopenSecs = '300'
NetTimeout = '30'
RedoCompression = 'DISABLE'
LogShipping = 'ON'
PreferredApplyInstance = ''
ApplyInstanceTimeout = '0'
ApplyParallel = 'AUTO'
StandbyFileManagement = 'AUTO'
ArchiveLagTarget = '0'
LogArchiveMaxProcesses = '4'
LogArchiveMinSucceedDest = '1'
DbFileNameConvert = 'oradgphy, oradg11g'
LogFileNameConvert = 'oradgphy, oradg11g'
FastStartFailoverTarget = ''
InconsistentProperties = '(monitor)'
InconsistentLogXptProps = '(monitor)'
SendQEntries = '(monitor)'
LogXptStatus = '(monitor)'
RecvQEntries = '(monitor)'
SidName = 'oradg11g'
StaticConnectIdentifier = '(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=rhel6_lhr)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=oradg11g_DGMGRL.lhr.com)(INSTANCE_NAME=oradg11g)(SERVER=DEDICATED)))'
StandbyArchiveLocation = 'USE_DB_RECOVERY_FILE_DEST'
AlternateLocation = ''
LogArchiveTrace = '0'
LogArchiveFormat = '%t_%s_%r.dbf'
TopWaitEvents = '(monitor)'
数据库状态:
DISABLED
DGMGRL> show configuration
配置 - fsf_oradg11g_lhr
保护模式: MaxPerformance
数据库:
oradgphy - 主数据库
oradg11g - 物理备用数据库
快速启动故障转移: DISABLED
配置状态:
DISABLED
DGMGRL> enable configuration
已启用。
DGMGRL> show configuration
配置 - fsf_oradg11g_lhr
保护模式: MaxPerformance
数据库:
oradgphy - 主数据库
oradg11g - 物理备用数据库 (禁用)
快速启动故障转移: DISABLED
配置状态:
SUCCESS
解决办法:
在主备库都执行:
① alter system set DG_BROKER_START=false;
② 删除如下的文件
14:45:50 SQL> show parameter DG_BROKER_CONFIG
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
dg_broker_config_file1 string /u01/app/oracle/product/11.2.0
/dbhome_1/dbs/dr1oradgphy.dat
dg_broker_config_file2 string /u01/app/oracle/product/11.2.0
/dbhome_1/dbs/dr2oradgphy.dat
① alter system set DG_BROKER_START=true;
[oracle@rhel6_lhr admin]$ oerr ora 16603
16603, 00000, "Data Guard broker detected a mismatch in configuration ID"
// *Cause: There was a mismatch in configuration unique ID. This could occur
// if the original configuration was re-created while this database
// was disconnected from the network or the same database was added
// to two different Data Guard broker configurations.
// *Action: Make sure the database belongs to only one broker configuration.
// Shut down the broker by setting the DG_BROKER_START initialization
// parameter to false. Then remove the Data Guard broker configuration
// files. Finally restart the broker by setting the DG_BROKER_START
// initialization parameter to true.
[oracle@rhel6_lhr admin]$ ll /u01/app/oracle/product/11.2.0/dbhome_1/dbs/dr*
-rw-r----- 1 oracle asmadmin 16384 Sep 28 12:11 /u01/app/oracle/product/11.2.0/dbhome_1/dbs/dr1oradg11g.dat
-rw-r----- 1 oracle asmadmin 16384 Sep 28 14:47 /u01/app/oracle/product/11.2.0/dbhome_1/dbs/dr1oradgphy.dat
-rw-r----- 1 oracle asmadmin 16384 Sep 28 12:10 /u01/app/oracle/product/11.2.0/dbhome_1/dbs/dr2oradg11g.dat
-rw-r----- 1 oracle asmadmin 16384 Sep 28 14:47 /u01/app/oracle/product/11.2.0/dbhome_1/dbs/dr2oradgphy.dat
[oracle@rhel6_lhr admin]$ rm -rf /u01/app/oracle/product/11.2.0/dbhome_1/dbs/dr*
[oracle@rhel6_lhr ~]$ dgmgrl sys/lhr@tns_oradgphy_dgmgrl
DGMGRL for Linux: Version 11.2.0.3.0 - 64bit Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
欢迎使用 DGMGRL, 要获取有关信息请键入 "help"。
已连接。
DGMGRL> show configuration;
ORA-16532: Data Guard 中介配置不存在
配置详细资料不能由 DGMGRL 确定
DGMGRL>
DGMGRL>
DGMGRL> create configuration 'fsf_oradg11g_lhr' as
> primary database is 'oradgphy'
> connect identifier is tns_oradgphy_dgmgrl;
add database 'oradg11g' as
connect identifier is tns_oradg11g_dgmgrl
maintained as physical;
已创建配置 "fsf_oradg11g_lhr", 其中主数据库为 "oradgphy"
DGMGRL> DGMGRL> > > 已添加数据库 "oradg11g"
DGMGRL> DGMGRL>
DGMGRL>
DGMGRL>
DGMGRL>
DGMGRL>
DGMGRL>
DGMGRL>
DGMGRL> show configuration
配置 - fsf_oradg11g_lhr
保护模式: MaxPerformance
数据库:
oradgphy - 主数据库
oradg11g - 物理备用数据库
快速启动故障转移: DISABLED
配置状态:
DISABLED
DGMGRL> enable configuration
已启用。
DGMGRL> show configuration
配置 - fsf_oradg11g_lhr
保护模式: MaxPerformance
数据库:
oradgphy - 主数据库
oradg11g - 物理备用数据库
快速启动故障转移: DISABLED
配置状态:
SUCCESS
DGMGRL> switchover to oradg11g
立即执行切换, 请稍候...
新的主数据库 "oradg11g" 正在打开...
操作要求关闭实例 "oradgphy" (在数据库 "oradgphy" 上)
正在关闭实例 "oradgphy"...
ORACLE 例程已经关闭。
操作要求启动实例 "oradgphy" (在数据库 "oradgphy" 上)
正在启动实例 "oradgphy"...
ORACLE 例程已经启动。
数据库装载完毕。
数据库已经打开。
切换成功, 新的主数据库为 "oradg11g"
DGMGRL> show configuration
配置 - fsf_oradg11g_lhr
保护模式: MaxPerformance
数据库:
oradg11g - 主数据库
oradgphy - 物理备用数据库
快速启动故障转移: DISABLED
配置状态:
SUCCESS
DGMGRL>
一.3.3 ORA-16652: 已禁用快速启动故障转移目标备用数据库
[oracle@rhel6_lhr lhr]$ dgmgrl sys/lhr@tns_oradg11g_dgmgrl
DGMGRL for Linux: Version 11.2.0.3.0 - 64bit Production
Copyright (c) 2000, 2009, Oracle. All rights reserved.
欢迎使用 DGMGRL, 要获取有关信息请键入 "help"。
已连接。
DGMGRL> disable fast_start failover
错误: ORA-16652: 已禁用快速启动故障转移目标备用数据库
失败。
DGMGRL> reinstate database oradgphy;
正在恢复数据库 "oradgphy", 请稍候...
已成功恢复数据库 "oradgphy"
DGMGRL> show configuration
配置 - fsf_oradg11g_lhr
保护模式: MaxAvailability
数据库:
oradg11g - 主数据库
oradgphy - (*) 物理备用数据库
快速启动故障转移: ENABLED
配置状态:
SUCCESS
DGMGRL>
如果报错,那么就重新启动需要恢复的数据库,然后重新执行reinstate database oradgphy;
DGMGRL> show configuration
配置 - fsf_oradg11g_lhr
保护模式: MaxAvailability
数据库:
oradgphy - 主数据库
警告: ORA-16817: 快速启动故障转移配置不同步
oradg11g - (*) 物理备用数据库 (禁用)
ORA-16661: 需要恢复备用数据库
快速启动故障转移: ENABLED
配置状态:
WARNING
DGMGRL> reinstate database oradg11g;
正在恢复数据库 "oradg11g", 请稍候...
已成功恢复数据库 "oradg11g"
DGMGRL> show configuration
配置 - fsf_oradg11g_lhr
保护模式: MaxAvailability
数据库:
oradgphy - 主数据库
oradg11g - (*) 物理备用数据库
快速启动故障转移: ENABLED
配置状态:
SUCCESS
DGMGRL>
标签:configuration,--,dg,数据库,oradg11g,oradgphy,lhr,DGMGRL,ora 来源: https://blog.51cto.com/lhrbest/2692001