使用DBMS_PDB把一個11g數據庫插入到12c cdb中去
環境:
windows 7
源庫:orcl oracle 11.2.0.4
目標庫:cdbdb 12.2.0.1 ,pdb:sztech
1.源庫先升級到12c
這個步驟略,能夠經過dbua完成
2.原庫以只讀方式打開
SQL> conn / as sysdba
已鏈接。
SQL> shutdown immediate
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。
SQL> startup open read only;
SQL> show parameter db_name
NAME TYPE VALUE
db_name string orcl
SQL> select open_mode from v$database;
OPEN_MODE
READ ONLY
SQL>
3.源庫生成xml信息
SQL> EXEC DBMS_PDB.DESCRIBE('d:\orcl.xml');
PL/SQL 過程已成功完成。
4.把源庫的數據文件及xml文件拷貝到目標庫所在機器
5.修改xml文件中數據文件的位置,與實際位置相匹配
好比新的文件位置爲:
D:\oracle\oradata\cdbdb\sztech
6.使用有 CREATE PLUGGABLE DATABASE 權限的用戶登錄目標庫
sqlplus /nolog
sql>conn / as sysdba
SQL> conn / as sysdba
已鏈接。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
SQL>sql
7.插入目標庫
在目標庫,把源庫orcl以 sztech爲pdb名字插入目標容器庫中
--因爲文件已經拷貝到目標,在命令行上帶上 nocopy,不然,能夠使用 FILE_NAME_CONVERT ('xml文件中數據文件位置','新的位置')
CREATE PLUGGABLE DATABASE sztech USING 'd:\orcl.xml' nocopy tempfile reuse;
SQL> CREATE PLUGGABLE DATABASE sztech USING 'd:\orcl.xml' nocopy tempfile reuse;
插接式數據庫已建立。
SQL>
查看一下pdb狀況
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
2 PDB$SEED READ ONLY NO
4 SZTECH MOUNTED
SQL>
8.運行noncdb_to_pdb.sql腳本
切換到sztech pdb
SQL> alter session set container=sztech;
會話已更改。
SQL> show con_name
CON_NAME
SZTECH
SQL>
--執行腳本noncdb_to_pdb.sql腳本
@%ORACLE_HOME%/rdbms/admin/noncdb_to_pdb.sql
9.最後打開pdb
alter pluggable database sztech open;
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
4 SZTECH MOUNTED
SQL> alter pluggable database open;
插接式數據庫已變動。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
4 SZTECH READ WRITE NO
SQL>數據庫