一、前言
在我们利用broker便捷进行主备切换的时候,往往也会遇到过异常;在切换到进行一半的时候,broker因某些原因异常报错,此时broker配置已发生错乱,如何进行处理?
broker的配置出现问题,就意味着ADG的同步异常;我们换位思考,在没有配置broker的时候也是可以进行同步的,利用手工配置参数的方式;所以broker可以理解是一个管理工具,出现问题并不是说会损坏ADG啥的,重新配置即可。
二、问题现象
以下我们可以看到配置文件已经报出多种错误,根据错误信息可以得出主备库之间的角色应该是混乱的了
DGMGRL> show configuration;
Configuration - WLADG
Protection Mode: MaxPerformance
Databases:
WLFAN - Primary database
Error: ORA-16810: multiple errors or warnings detected
for the database
WLDB - Physical standby database
Error: ORA-16810: multiple errors or warnings detected
for the database
Fast-Start Failover: DISABLED
Configuration Status:
ERROR
DGMGRL> show database "WLFAN";
Database - WLFAN
Role: PRIMARY
Intended State: TRANSPORT-ON
Instance(s): WLFAN
Error: ORA-16782: instance not open for read and write access
Database Error(s):
ORA-16816: incorrect database role
Database Status:
ERROR
三、问题处理
重新配置broker配置,保障broker的准确性,确保在主库进行。
修改保护模式
EDIT CONFIGURATION SET PROTECTION MODE AS MAXPERFORMANCE;
Note:只有在最大性能模式下,才能进行配置文件的移除;因为往往我们的adg生产环境中会设置为最大可用模式。
移除broker配置
REMOVE CONFIGURATION;
Note:若不在最大性能模式下,移除会提示ORA-16627错误。
创建broker配置
create configuration 'wladg' as primary database is 'wlfan' connect identifier is 'wlfan';
add database 'wldb' as connect identifier is 'wldb';
启用broker
enable configuration;
此时broker配置依然是不准确,因为原来为最大可用模式;新加的配置为最大性能模式,故日志同步模式也是乱的,备库的保护模式和主库的保护模式是不一样的,所以需要刷新保护模式。
Database Warning(s):
ORA-16629: database reports a different protection level from the protection mode
刷新保护模式
edit database 'wldb' set property 'LogXptMode'='SYNC';
edit database 'wlfan' set property 'LogXptMode'='SYNC';
edit configuration set protection mode as maxavailability;
Note:确保主备库之间的日志同步模式跟broker配置一致,确保主备库之间的保护模式一致。
检查
最后可以看到broker配置状态是正常的,主备库之间的保护模式也是正常的。
show configuration;
select database_role,protection_mode,protection_level from v$database;
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




