oracle12c RAC源端与Dataguard目标端实时同步,因业务需求需要在源端增加PDB
1. 源端添加PDB
CREATE PLUGGABLE DATABASE kdlxpdb admin user kdlx identified by *
FILE_NAME_CONVERT =('+DATADG/SPDB/8E80F930196B6100E053E200A8C0AF9F/','+DATADG');
查看trace目录下alert_spdb2.log日志,PDB创建成功
2. 目标端
查看trace目录下alert_spdbstb.log日志,发现同步失败
SQL> alter database recover managed standby database cancel; #取消同步
报错:ORA-16136: Managed Standby Recovery not active,alert_spdbstb.log日志如下:
选择优先修改db_file_name_convert参数
alter system set db_file_name_convert='+DATADG/SPDB/DATAFILE', '/data/spdbstb/datafile', '+DATADG/SPDB/8E80F930196B6100E053E200A8C0AF9F/DATAFILE', '/data/spdbstb/SEED/datafile', '+DATADG/SPDB/8E81C7A967C43CB7E053E300A8C06223/DATAFILE', '/data/spdbstb/SPDB1PDB/datafile', '+DATADG/SPDB/93BFEF75138BC79EE053E300A8C08BA1/DATAFILE', '/data/spdbstb/kdlxpdb/datafile' scope=spfile;
修改完后再去取消同步同样报错,然后shutdown immediate
startup启动后发现只同步了一个system数据文件
SQL> select name from v$datafile;
通过以下操作,取消同步居然正常了,有点意外
SQL> alter database recover managed standby database cancel;
SQL> alter database recover managed standby database using current logfile disconnect from session;
SQL> show pdbs;
SQL> alter pluggable database all open;
SQL> show pdbs;
SQL> alter database recover managed standby database cancel;
而后关库启库,开启同步一切恢复正常
查看归档日志目录/data/archivelog发现源端双节点日志终于传过来了,中间间隔3个多小时
3. 具体问题只能通过查看日志追溯
从日志上看数据文件完全同步应该是在未取消同步情况下再修改为同步状态后。
同步取消报错,后来又莫名其妙的好了暂时只用用这篇文章来解释http://www.kimgeek.com/article_detail_183.html
先把这次处理的经过记录下来,具体原因与细节还需要静静理一理。
注:先取消与Dataguard的同步再创建PDB应该会更靠谱些。