Oracle 12c 使用Non-CDB來建立PDB
可以移動Non-CDB來變為一個PDB。可以使用以下方式來完成這個任務:
.透過克隆Non-CDB來建立PDB。從Oracle 12.1.0.2開始,可以透過克隆Non-CDB來建立PDB。這種方法是建立PDB最簡單的一種方法,但它需要從Non-CDB中把檔案複製到新目錄中。
.使用dbms_pdb包來生成XML後設資料檔案,XML後設資料檔案用來描述Non-CDB的資料檔案可以用來將其附加到CDB中。這種方法比克隆Non-CDB要執行更多的步驟,但它能讓你不用移動Non-CDB的檔案來建立PDB。為了使用這種技術 ,Non-CDB必須是Oracle 12C的Non-CDB。如果當前的Non-CDB使用Oracle 12C之前的版本,那麼你必須將Non-CDB升級到Oracle 12C。
.使用Oracle Data Pump匯出/匯入
可以使用Data Pump從Non-CDB中匯出資料然後匯入到PDB中。當你執行匯入時,在使用者名稱後要指定PDB的連線識別符號。例如,如果PDB的連線識別符號為hrpdb,那麼在執行匯入進執行以下命令:
imdp username@hrpdb ....如果Non-CDB的版本為11.2.0.3或之後的版本,那麼可以使用完全傳輸匯出/匯入來移動資料。當將版本為11.2.0.3或之後的11g版本的Non-CDB遷移到Oracle 12C,那麼在匯出時需要將version引數設定為12.0.0.0.0或更高版本。如果Non-CDB的版本為11.2.0.3之前的版本,那麼可以使用傳輸表空間來移動資料或者執行完全資料庫匯出\匯入。
.使用goldengate複製
可以使用goldengate從Non-CDB中複製資料到PDB中。
對Non-CDB執行dbms_pdb包
可以使用dbms_pdb包來為Non-CDB生成XML後設資料檔案來將其附加到CDB中。使用dbms_pdb包移動Non-CDB為PDB的操作如下:
1.如果CDB不存在先建立CDB
2.確保Non-CDB處於事務一致狀態並將它置於只讀狀態
[oracle@jytest1 ~]$ export ORACLE_SID=orcl1 [oracle@jytest1 ~]$ sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Thu Sep 7 00:38:31 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to an idle instance. SQL> startup mount ORACLE instance started. Total System Global Area 4294967296 bytes Fixed Size 8628936 bytes Variable Size 2583692600 bytes Database Buffers 1694498816 bytes Redo Buffers 8146944 bytes Database mounted. SQL> alter database open read only; Database altered. [oracle@jytest2 ~]$ export ORACLE_SID=orcl2 [oracle@jytest2 ~]$ sqlplus / as sysdba SQL*Plus: Release 12.2.0.1.0 Production on Thu Sep 7 00:38:31 2017 Copyright (c) 1982, 2016, Oracle. All rights reserved. Connected to an idle instance. SQL> startup mount ORACLE instance started. Total System Global Area 4294967296 bytes Fixed Size 8628936 bytes Variable Size 2583692600 bytes Database Buffers 1694498816 bytes Redo Buffers 8146944 bytes Database mounted. SQL> alter database open read only; Database altered.
3.連線到Non-CDB,並執行dbms_pdb.describe過程來建立描述Non-CDB的XML後設資料檔案。執行該過程的使用者必須有sysdba許可權。
SQL> exec dbms_pdb.describe(pdb_descr_file=>'/cdb_pdb/orcl.xml'); PL/SQL procedure successfully completed. [oracle@jytest2 cdb_pdb]$ ls -lrt total 8 -rw-r--r-- 1 oracle asmadmin 6963 Sep 7 00:18 orcl.xml
4.執行dbms_pdb.check_plug_compatibility過程來判斷是否Non-CDB與目標CDB相容。當執行這個過程時設定以下引數:
-pdb_descr_file:設定XML後設資料檔案的完整路徑。
-pdb_name:指定新PDB名字,如果這個引數被忽略,那麼將使用XML後設資料檔案中的PDB名字。
SQL> set serveroutput on 1 declare 2 compatible constant varchar2(3) := 3 case dbms_pdb.check_plug_compatibility( 4 pdb_descr_file => '/cdb_pdb/orcl.xml', 5 pdb_name => 'orclpdb') 6 when true then 'yes' 7 else 'no' 8 end; 9 begin 10 dbms_output.put_line(compatible); 11 end; 12 / yes PL/SQL procedure successfully completed.
如果輸出為yes,那麼Non-CDB是相容的,並且可以繼續下一步操作。如果輸出為no,那麼Non-CDB與目標CDB不相容,並且可以檢查pdb_plug_in_violations檢視來檢查為什麼不相容。所有的違反條目在繼續操作之前必須被修復。例如,任何版本或補丁不匹配可以透過執行升級或打補丁來解決。在修復這個違反條目後,再次執行dbms_pdb.check_plug_compatibility來確保Non-CDB與目標CDB相容。
5.關閉Non-CDB
[grid@jytest1 ~]$ srvctl stop database -db orcl
6.插入Non-CDB
SQL> create pluggable database orclpdb using '/cdb_pdb/orcl.xml' 2 copy 3 file_name_convert = ('+DATA/orcl/datafile/', '+data/jy/orclpdb/','+DATA/orcl/tempfile/','+data/jy/orclpdb/'); Pluggable database created. SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE -------------------------------------------------------------------------------------------------------------------------------- ---------- PDB$SEED READ ONLY JYPDB READ WRITE ORCLPDB MOUNTED ASMCMD [+data/jy/orclpdb] > ls -lt Type Redund Striped Time Sys Name DATAFILE UNPROT COARSE SEP 07 00:00:00 N usertbs01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/USERTBS.278.954031319 DATAFILE UNPROT COARSE SEP 07 00:00:00 N users01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/USERS.302.954031321 DATAFILE UNPROT COARSE SEP 07 00:00:00 N undotbs01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/UNDOTBS1.273.954031321 TEMPFILE UNPROT COARSE SEP 07 00:00:00 N temp01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/TEMPFILE/TEMPTS1.315.954031465 DATAFILE UNPROT COARSE SEP 07 00:00:00 N system01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/SYSTEM.303.954031321 DATAFILE UNPROT COARSE SEP 07 00:00:00 N sysaux01.dbf => +DATA/jy/4D913A1436E25EE2E053AB828A0AF7B8/DATAFILE/SYSAUX.295.954031321
如果這裡沒有任何錯誤,那麼現在不開啟新PDB。
7.執行$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql指令碼,這個指令碼必須在第一次開啟新PDB之前執行。如果PDB不是由Non-CDB建立而來,那麼就不需要執行這個指令碼。為了執行noncdb_to_pdb.sql指令碼,完成以下操作:
a.訪問PDB,當前使用者必須有sysdba許可權,並且許可權必須是公共或本地授予給PDB。最好使用as sysdba進行連線。
b.執行noncdb_to_pdb.sql指令碼:
SQL>@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
8.以讀寫模式開啟新PDB
SQL> alter pluggable database orclpdb open read write; Pluggable database altered. SQL> select name,open_mode from v$pdbs; NAME OPEN_MODE -------------------------------------------------------------------------------------------------------------------------------- ---------- PDB$SEED READ ONLY JYPDB READ WRITE ORCLPDB READ WRITE
9.備份PDB
到此使用Non-CDB來建立PDB的操作就完成了。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26015009/viewspace-2144842/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle 12C -- 使用seed PDB建立新的pdbOracle
- Oracle 12c系列(七) | Non-CDB轉換為PDBOracle
- Oracle 12C 建立使用者連線pdbOracle
- Oracle 12c系列(二)|PDB的建立Oracle
- 1.3.2.2.2 通過Non-CDB(非CDB模式)建立PDB模式
- Oracle 12c 多租戶 手工建立 pdb 與 手工刪除 pdbOracle
- Oracle 12c 手工建立 和 刪除 PDB 示例Oracle
- 建立、克隆pdb---oracle 12c 學習(1)Oracle
- oracle 12c使用dblink克隆pdbOracle
- 1.3.2.2.2. 通過Non-CDB(非CDB模式)建立PDB模式
- oracle 12c pdb測試:建立、開關、刪除Oracle
- Oracle 12c Relocate PDBOracle
- Oracle 12c PDB淺析Oracle
- Oracle 12c 使用FILE_NAME_CONVERT建立pdb報錯 ORA-01276Oracle
- Oracle 12c PDB遷移(一)Oracle
- Oracle 12c系列(六)|Relocate a PDBOracle
- Oracle 12c系列(五)|PDB RefreshOracle
- oracle 12c rman備份pdbOracle
- Oracle 12c PDB淺析(二)Oracle
- Oracle 12C RMAN transport tablespace from PDB of RAC CDB to remote PDBOracleREM
- oracle 12c non-cdb升級成cdb模式Oracle模式
- ORACLE 12C pdb受限解決思路Oracle
- ORACLE 12C新特性——CDB與PDBOracle
- Oracle 建立PDB-Plugging In an Unplugged PDBOracle
- 【PDB】Oracle 建立pdb說明(create pluggable database)OracleDatabase
- Oracle 建立PDB-本地克隆Oracle
- Oracle 建立PDB-from ScratchOracle
- 12c使用DBCA和手工兩種方式建立PDB時如何正確指定pdb檔案路徑
- Oracle 12c多租戶特性詳解:PDB 的建立、克隆與維護Oracle
- oracle 12c PDB隨CDB啟動和連結PDB的方式Oracle
- 12C把non-CDB的單庫匯入到CDB裡面當成PDB的方法
- Oracle 12C RMAN Duplicating Tablespaces Within a PDBOracle
- Oracle 12C RMAN Duplicating the PDB to remote CDBOracleREM
- Oracle 12c CDB&PDB 基本維護Oracle
- Oracle 12c 建立 SCOTT 使用者Oracle
- Oracle 12c中建立使用者Oracle
- oracle 12c Release 2 版本廢棄 Non-CDB ArchitectureOracle
- Oracle 建立PDB-遠端克隆Oracle