CREATE PLUGGABLE DATABASE pdb1 ADMIN USER salesadm IDENTIFIED BY SALESADM
STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)
DEFAULT TABLESPACE users DATAFILE '/u02/app/oracle/oradata/cuugnew/PDB1/users01.dbf' SIZE 20M AUTOEXTEND ON
FILE_NAME_CONVERT =('/u02/app/oracle/oradata/cuugnew/new/pdbseed/', '/u02/app/oracle/oradata/new/PDB1/');
2、从一个pdb克隆一个新的pdb
alter pluggable database pdb1 openread only;
CREATE PLUGGABLE DATABASE cuugpdb2 FROM cuugpdb1
FILE_NAME_CONVERT =('/u02/app/oracle/oradata/new/CUUGPDB1/', '/u02/app/oracle/oradata/new/PDB2/');
3、使用non-cdb创建pdb
1、把non-CDB启动到read only状态。
2、连接到non-CDB,运行DBMS_PDB.DESCRIBE产生XML文件,如下命令产生XML文件:
BEGIN
DBMS_PDB.DESCRIBE
( pdb_descr_file =>'/u02/metadata/ncdb.xml');
END;
执行成功以后,就可以使用XML来插入到数据库了。
4、关闭non-cdb
5、Plug in the non-CDB:
SQL> CREATE PLUGGABLE DATABASE ncdb USING '/u02/metadata/ncdb.xml'
nocopy
tempfile reuse
6、这时候不能打开数据库(pdb) 可以用alter session的方式先进入到pdb,运行 ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql 脚本. 这个脚本必须在第一次打开前运行。
7、Open the new PDB in read/write mode.
8、Backup pdb
SQL> WHENEVER SQLERROR CONTINUE;
4、拔出一个pdb,pdb要处于mout状态
ALTER PLUGGABLE DATABASE cuugpdb1 UNPLUG INTO '/u02/metadata/pdb1.xml';5、Plugging In an Unplugged PDB
5.1、检查兼容性
SET SERVEROUTPUT ON
DECLARE
compatible CONSTANT VARCHAR2(3) :=
CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
pdb_descr_file =>'/u02/metadata/pdb1.xml',
pdb_name =>'CUUGPDB1')
WHEN TRUE THEN 'YES'
ELSE 'NO'
END;
BEGIN
DBMS_OUTPUT.PUT_LINE(compatible);
END;
可以设置两个数据库如下参数不一样,也会导致不兼容:
alter system set parallel_max_servers =10;5.2、查看是否兼容:
SQL>select MESSAGE from PDB_PLUG_IN_VIOLATIONS;5.3、插入一个pdb使用nocopy和clone
SQL>CREATE PLUGGABLE DATABASE cuugpdb1 AS clone
USING '/u02/metadata/pdb1.xml'
nocopy
STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)
TEMPFILE REUSE;5.4、插入一个pdb使用copy和clone,这样子可以复制多份的pdb:
CREATE PLUGGABLE DATABASE cuugpdb3 AS clone USING '/u02/metadata/pdb1.xml'
copy
FILE_NAME_CONVERT =('/u02/app/oracle/oradata/cuugnew/PDB1/', '/u02/app/oracle/oradata/CUUGCDB/PDB2/')
STORAGE (MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M)
TEMPFILE REUSE;