Oracle12c多租戶資料庫備份與恢復 - 恢復整個CDB和其下的PDBs 4

tolywang發表於2014-03-07

因控制檔案中還有源庫CDB及各PDBs的temp檔案的資訊,這裡可以使用如下語句刪除。否則後面NID更改資料庫名會報錯。在源庫中執行如下語句,複製結果到目標庫執行即可。
select 'alter database tempfile '''||name||''' drop ; ' from v$tempfile ;


[oracle@nkgttv2024rhl test12]$ sqlplus / as sysdba

SQL> shut  immediate
SQL> startup mount


做動作時同樣需要切換到各個PDB(container),否則會報錯找不到這個檔案:

SQL> ALTER SESSION SET CONTAINER = CDB$ROOT;
SQL> alter database tempfile  '/data01/oracle12c/oradata/test12c/temp01.dbf'  drop ;

SQL>ALTER SESSION SET CONTAINER = PLUGDB;
SQL> alter database tempfile  '/data01/oracle12c/oradata/test12c/plugdb/temp01.dbf'  drop ;

....
修改資料庫sid:
資料庫啟動到mount狀態,然後在作業系統層執行命令:

[oracle@nkgttv2024rhl trace]$ nid target=/ dbname=test12 

DBNEWID: Release 12.1.0.1.0 - Production on Thu Mar 6 15:50:31 2014
..... 
Succesfully changed database name and ID.
DBNEWID - Completed succesfully.

NID 後注意環境變數修改。
A. 修改引數檔案,將資料庫名稱相關的引數做修改(一般修改db_name, instance_name即可) 。
B. 在啟動前生成一個新的password檔案 :orapwd file=orapwtest12 password=Huaiwe123 entries=10 
C. 注意環境變數,開啟DB為mount , 使用 resetlogs 開啟資料庫: alter database open resetlogs ;

 

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

相關文章