使用dbms_pdb包进行迁移,dbms_pdb是12c新增加的,为了方便迁移用的。可以用desc dbms_pdb查看下具体参数。将non-cdb数据库迁移到
进入到非cdb数据库中
查看数据文件的位置
[oracle@shuang ~]$ sqlplus / as sysdba
sql*plus: release 12.1.0.1.0 production on wed feb 26 13:17:45 2014
copyright (c) 1982, 2013, oracle. all rights reserved.
connected to an idle instance.
sql> startup
oracle instance started.
total system global area 1060585472 bytes
fixed size 2296472 bytes
variable size 704644456 bytes
database buffers 348127232 bytes
redo buffers 5517312 bytes
sql> select name from v$datafile;
name
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/shuang/datafile/o1_mf_system_9jckkfwg_.dbf
/u01/app/oracle/oradata/shuang/datafile/o1_mf_sysaux_9jckdvs6_.dbf
/u01/app/oracle/oradata/shuang/datafile/o1_mf_undotbs1_9jckpbno_.dbf
/u01/app/oracle/oradata/shuang/datafile/o1_mf_users_9jckp97s_.dbf
查看数据库为non-cdb数据库
sql> select name ,cdb from v$database;
name cdb
--------- ---
shuang no
建立测试用户以及表
sql> conn a/a
connected.
sql> select count(*) from a;
count(*)
----------
1024
使用dbms_pdb包进行迁移,dbms_pdb是12c新增加的,为了方便迁移用的。可以用desc dbms_pdb查看下具体参数。
将non-cdb数据库迁移到cdb数据库,得先将non-cdb数据库设置为只读数据库,,再进行进一步操作。
sql> shut immediate
database closed.
database dismounted.
oracle instance shut down.
[oracle@shuang ~]$ sqlplus / as sysdba
sql*plus: release 12.1.0.1.0 production on wed feb 26 13:17:45 2014
copyright (c) 1982, 2013, oracle. all rights reserved.
connected to an idle instance.
sql> startup mount
oracle instance started.
total system global area 1060585472 bytes
fixed size 2296472 bytes
variable size 704644456 bytes
database buffers 348127232 bytes
redo buffers 5517312 bytes
database mounted
sql>alter database open read only;
database altered.
sql> exec dbms_pdb.describe(pdb_descr_file=>'/u01/app/oracle/oradata/shuang/datafile/shuang12c.xml');
pl/sql procedure successfully completed.
sql> host ls -l /u01/app/oracle/oradata/shuang/datafile/shuang12c.xml
-rw-r--r-- 1 oracle oinstall 4123 2月 26 12:50 /u01/app/oracle/oradata/shuang/datafile/shuang12c.xml
sql> shut immediate
database closed.
database dismounted.
oracle instance shut down.
在cdb中执行plug,就可以将这个non-cdb插入cdb中,指定copy参数,将文件复制到cdb的相应目录下,如果已经复制到特定目录,则可以指定nocopy选项,就无需再复制一遍。
进入到cdb数据库中。
sql>create pluggable database shuang using '/u01/app/oracle/oradata/shuang/datafile/shuang12c.xml' copy ;
pl/sql procedure successfully completed.
sql> select name,open_mode from v$pdbs;
name open_mode
------------------------------ ----------
pdb$seed read only
pdborcl mounted
shuang read write
sql> alter session set container=shuang;
session altered.
sql> select count(*) from a.a;
count(*)
----------
1024