在 12c 环境中的 Dataguard 配置中,当我执行从主 ( foo
) 到备用 ( bar
)的切换,然后尝试使用 sqlplus 时user@foo
,我收到“ ORA-011033: ORACLE initialization or shutdown in progress
”错误,而不是能够连接到新的主 (bar)。
现在,我知道这是因为连接仍然指向foo
地址而不是bar
地址,并且根据许多文章,您需要创建一个新的“虚拟”服务来处理不同的连接,以及停止的触发器/在角色更改后启动此服务。
我这样做了,并且将service_names
参数设置为这个新的“虚拟”服务,切换将起作用并且也可以切换回来,但是当尝试使用user@foo
它的sqlplus 时会抛出ORA-011033
. 触发器没有用,服务继续在 foo 和 bar 上运行,因为似乎设置该参数会覆盖触发器尝试执行的任何操作。
现在,如果我不定义该参数,我的切换工作正常,触发器完成它们的工作,当 I 时sqlplus user@foo
,它会正确地将我重定向到该bar
地址。但是,当我尝试切换回 时foo
,我在 DG 警报日志中收到以下信息:
Redo transport problem detected: redo transport to database foo has the following error:
ORA-16047: DGID mismatch between destination setting and target database
08/05/2016 16:01:02 …