可以通过如下方式创建PDB:
通过seed创建PDB:
在通过seed创建PDB时,需要指定文件存放位置,可通过如下两种方式:
1、在create pluggable database 语句中设置file_name_convert参数:
[oracle@ora12c ~]$ sqlplus /nolog
SQL*Plus: Release 12.1.0.2.0 Production on Tue Aug 23 14:32:56 2016
Copyright (c) 1982, 2014, Oracle. All rights reserved.
SQL> conn / as sysdba
Connected.
SQL> show pdbs;
SQL>
create pluggable database pdb4 admin user pdb4 identified by oracle12C
2 file_name_convert=('/u01/app/oracle/oradata/ora12c/pdbseed','/u01/app/oracle/oradata/ora12c/pdb4');
Pluggable database created.
SQL>
2、在参数文件中设置:PDB_FILE_NAME_CONVER
SQL> alter session set pdb_file_name_convert='/u01/app/oracle/oradata/ora12c/pdbseed','/u01/app/oracle/oradata/ora12c/pdb5';
Session altered.
SQL> create pluggable database pdb5 admin user pdb5 identified by oracle12C;
Pluggable database created.
SQL>
带参数创建PDB示例:
SQL> create pluggable database pdb7 admin user pdb7 identified by oracle12C
2 storage (maxsize 1G max_shared_temp_size 100M)
3 default tablespace pdb7
4 datafile '/u01/app/oracle/oradata/ora12c/pdb7/pdb7.dbf' size 10M autoextend on
5 PATH_PREFIX = '/u01/app/oracle/oradata/ora12c/pdb7'
6 file_name_convert=('/u01/app/oracle/oradata/ora12c/pdbseed','/u01/app/oracle/oradata/ora12c/pdb7');
Pluggable database created.
克隆一个本地PDB:
SQL> create pluggable database pdb8 from pdb3
2 path_prefix='/u01/app/oracle/oradata/ora12c/pdb8'
3 file_name_convert=('/u01/app/oracle/oradata/ora12c/pdb3','/u01/app/oracle/oradata/ora12c/pdb8');
Pluggable database created.
SQL>
从远程pdb克隆一个pdb:
创建连接指向远程pdb库的dblink:
SQL> create database link l_pdb5 connect to pdb5 identified by oracle12C using 'pdb5';
Database link created.
SQL> create pluggable database r_pdb from pdb5@l_pdb5
2 file_name_convert=('/u01/app/oracle/oradata/ora12c/pdb5','/u01/app/oracle/oradata/ora12c/r_pdb');
Pluggable database created.
SQL>
从远程no-cdb库创建PDB:
创建指向远程no-cdb库的DBlink;
SQL> create database link r_nocdb connect to system identified by oracle12C using 'test';
Database link created.
no-cdb以read only方式打开:
SQL> startup open read only;
ORACLE instance started.
Total System Global Area 419430400 bytes
Fixed Size
2925120 bytes
Variable Size
339742144 bytes
Database Buffers
71303168 bytes
Redo Buffers
5459968 bytes
Database mounted.
Database opened.
SQL>
SQL> create pluggable database pdb9 from NON$CDB@r_nocdb
2 file_name_convert=('/u01/app/oracle/oradata/TEST/datafile','/u01/app/oracle/oradata/ora12c/pdb9');
create pluggable database pdb9 from NON$CDB@r_nocdb
*
ERROR at line 1:
ORA-01276: Cannot add file
/u01/app/oracle/oradata/ora12c/pdb9/o1_mf_system_cvr2l3l0_.dbf. File has an
Oracle Managed Files file name.
由于远程no-cdb库是使用OMF管理的,所以报上述错误:
做如下设置:
SQL>
alter session set db_create_file_dest='/u01/app/oracle/oradata/ora12c/pdb9' ;
Session altered.
SQL>
SQL>
SQL> create pluggable database pdb9 from NON$CDB@r_nocdb;
Pluggable database created.
SQL> create pluggable database pdb10 from test@r_nocdb;
Pluggable database created.
SQL>
有上述可见:
create pluggable database pdb9 from NON$CDB@r_nocdb;
和
create pluggable database pdb9 from test@r_nocdb;
是等价的
执行:
SQL
> @$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
以read write打开pdb库:
SQL> show pdbs;
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 PDB4 READ WRITE NO
4 PDB5 READ WRITE NO
5 PDB3 READ WRITE NO
6 R_PDB MOUNTED
7 PDB9 READ WRITE YES
8 PDB10 MOUNTED
Plug In an Unplugged PDB
示例:
将pdb5 unplug:
SQL> alter pluggable database pdb5 unplug into '/u01/app/pdb5.xml';
SQL> col pdb_name for a20
SQL> select pdb_id,pdb_name,status from dba_pdbs;
PDB_ID PDB_NAME
STATUS
---------- -------------------- ---------
4 PDB5 UNPLUGGED
2 PDB$SEED
NORMAL
5 PDB3
NORMAL
6 R_PDB
NORMAL
7 PDB9
NORMAL
8 PDB10
NEW
6 rows selected.
SQL> create pluggable database pdb5 using '/u01/app/pdb5.xml'
2 nocopy
3 tempfile reuse;
create pluggable database pdb5 using '/u01/app/pdb5.xml'
*
ERROR at line 1:
ORA-65012: Pluggable database PDB5 already exists.
SQL> drop pluggable database pdb5
2 keep datafiles;
注:如果删除库的同时连数据文件也删除,使用如下:
SQL> drop pluggable database pdb5
including datafiles;
Pluggable database dropped.
SQL> create pluggable database pdb5 using '/u01/app/pdb5.xml'
2 nocopy
3 tempfile reuse;
Pluggable database created.
SQL>