一個引數引發的PDB無法在DataGuard下同步的問題

hooca發表於2016-06-12
OS:Oracle Linux 6.6 x64
DB:GI+Oracle 12.1.0.2

在12c的DataGuard下,當試圖在Primary建立新的PDB時,Standby端無法同步建立該PDB並且redo apply停止。具體表現為:
v$pdb檢視出現了新pdb;
dba_pdbs檢視下未出現新pdb;
關閉redo apply時,居然顯示未啟用:

點選(此處)摺疊或開啟

  1. alter database recover managed standby database cancel;
  2. ERROR at line 1:
  3. ORA-16136: Managed Standby Recovery not active
另外注意到,多出了路徑有問題的資料檔案:

點選(此處)摺疊或開啟

  1. SQL> select file#,name from v$datafile;
  2. ……
  3.         25
  4. +DATA/RACDB/35112BB187971752E0531506A8C09821/DATAFILE/system.285.914342455
這個路徑是Primary端的路徑。由此想到,是沒有設定路徑轉換造成的。

解決方法:
在Standby端設定相關引數:

點選(此處)摺疊或開啟

  1. alter system set DB_FILE_NAME_CONVERT='+DATA/RACDB/','/oradata/STBY/' scope=spfile;
  2. shutdown immediate
  3. startup mount
  4. alter database open read only;
  5. alter database recover managed standby database disconnect;
接下來,就可以在Primary端建立PDB了。完成後,發現一切都正常了。

另外,Primary端最好也設定db_file_name_convert引數,以備當其轉變為Standby角色。注意,此時應該Standby在前,Primary在後。





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22621861/viewspace-2119134/,如需轉載,請註明出處,否則將追究法律責任。

相關文章