1、DBCA
DBCA是图形化界面,这里就不演示了…
2、克隆种子容器
"""查看数据库PDB""
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ WRITE
"""从种子PDB中克隆pdb02并指定pdb02的管理用户pdb02_admin"""
SYS@dgpri>create pluggable database pdb02 admin user pdb02_admin identified by pdb02_admin storage unlimited;
Pluggable database created.
如果存储文件的是使用FS格式,则需要使用file_name_convert = ('seed pdb file base name','new pdb file base name')
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ WRITE
4 PDB02 3896516093 MOUNTED
SYS@dgpri>alter pluggable database pdb02 open;
Pluggable database altered.
SYS@dgpri>select username,account_status from dba_users where username = 'PDB02_ADMIN';
no rows selected
SYS@dgpri>alter session set container = pdb02;
Session altered.
SYS@dgpri>select username,account_status from dba_users where username = 'PDB02_ADMIN';
USERNAME ACCOUNT_STATUS
--------------------- ----------------------
PDB02_ADMIN OPEN
SYS@dgpri>conn / as sysdba;
Connected.
SYS@dgpri>show con_name;
CON_NAME
------------------------------
CDB$ROOT
SYS@dgpri>select a.con_id,a.name,b.tablespace_name,b.file_name from v$containers a,cdb_data_files b where a.con_id = b.con_id order by con_id;
CON_ID NAME TABLESPACE FILE_NAME
------ --------------- ---------- -----------------------------------------------------------------
1 CDB$ROOT SYSTEM +DATA/ZZZ/DATAFILE/system.257.1025368019
1 CDB$ROOT SYSAUX +DATA/ZZZ/DATAFILE/sysaux.258.1025368115
1 CDB$ROOT UNDOTBS1 +DATA/ZZZDGPRI/DATAFILE/undotbs1.259.1033397609
1 CDB$ROOT USERS +DATA/ZZZ/DATAFILE/users.260.1025368163
3 PDB01 SYSTEM +DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/system.272.10
25369069
3 PDB01 SYSAUX +DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/sysaux.273.10
25369069
3 PDB01 USERS +DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/users.275.102
5369253
3 PDB01 UNDOTBS1 +DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/undotbs1.271.
1025369067
4 PDB02 SYSAUX +DATA/ZZZDGPRI/9F77EA9F77302CD9E053103BA8C055F5/DATAFILE/sysaux.2
89.1033405575
4 PDB02 SYSTEM +DATA/ZZZDGPRI/9F77EA9F77302CD9E053103BA8C055F5/DATAFILE/system.2
87.1033405575
4 PDB02 UNDOTBS1 +DATA/ZZZDGPRI/9F77EA9F77302CD9E053103BA8C055F5/DATAFILE/undotbs1
.288.1033405575
11 rows selected.
3、克隆已有的PDB
SYS@dgpri>show con_name;
CON_NAME
------------------------------
CDB$ROOT
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ WRITE
4 PDB02 3896516093 READ WRITE
"""被克隆的PDB必须处于read only状态"""
SYS@dgpri>alter pluggable database pdb01 close;
Pluggable database altered.
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 MOUNTED
4 PDB02 3896516093 READ WRITE
SYS@dgpri>alter pluggable database pdb01 open read only;
Pluggable database altered.
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ ONLY
4 PDB02 3896516093 READ WRITE
"""克隆已存在的PDB时不能指定PDB的管理用户"""
SYS@dgpri>create pluggable database pdb03 admin user pdb03_admin identified by pdb03_admin from pdb01;
create pluggable database pdb03 admin user pdb03_admin identified by pdb03_admin from pdb01
*
ERROR at line 1:
ORA-00922: missing or invalid option
SYS@dgpri>create pluggable database pdb03 from pdb01;
Pluggable database created.
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ ONLY
4 PDB02 3896516093 READ WRITE
5 PDB03 2768682114 MOUNTED
SYS@dgpri>alter pluggable database pdb01 close;
Pluggable database altered.
SYS@dgpri>alter pluggable database all open;
Pluggable database altered.
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ WRITE
4 PDB02 3896516093 READ WRITE
5 PDB03 2768682114 READ WRITE
SYS@dgpri>select a.con_id,a.name,b.file#,b.name as file_name from v$pdbs a,v$datafile b where a.con_id = b.con_id order by con_id;
CON_ID NAME FILE# FILE_NAME
------ ---------- ---------- --------------------------------------------------------------------------------
2 PDB$SEED 8 +DATA/ZZZ/811A060B58140C01E053DC06E80AF3C6/DATAFILE/undotbs1.268.1025368389
2 PDB$SEED 6 +DATA/ZZZ/811A060B58140C01E053DC06E80AF3C6/DATAFILE/sysaux.267.1025368389
2 PDB$SEED 5 +DATA/ZZZ/811A060B58140C01E053DC06E80AF3C6/DATAFILE/system.266.1025368389
3 PDB01 11 +DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/undotbs1.271.1025369067
3 PDB01 10 +DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/sysaux.273.1025369069
3 PDB01 9 +DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/system.272.1025369069
3 PDB01 12 +DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/users.275.1025369253
4 PDB02 16 +DATA/ZZZDGPRI/9F77EA9F77302CD9E053103BA8C055F5/DATAFILE/system.287.1033405575
4 PDB02 17 +DATA/ZZZDGPRI/9F77EA9F77302CD9E053103BA8C055F5/DATAFILE/sysaux.289.1033405575
4 PDB02 18 +DATA/ZZZDGPRI/9F77EA9F77302CD9E053103BA8C055F5/DATAFILE/undotbs1.288.1033405575
5 PDB03 19 +DATA/ZZZDGPRI/9F7805F34368453EE053103BA8C03888/DATAFILE/system.293.1033406197
5 PDB03 20 +DATA/ZZZDGPRI/9F7805F34368453EE053103BA8C03888/DATAFILE/sysaux.294.1033406197
5 PDB03 21 +DATA/ZZZDGPRI/9F7805F34368453EE053103BA8C03888/DATAFILE/undotbs1.292.1033406197
5 PDB03 22 +DATA/ZZZDGPRI/9F7805F34368453EE053103BA8C03888/DATAFILE/users.291.1033406195
4、插入一个以前拔出的PDB
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ WRITE
4 PDB02 3896516093 READ WRITE
5 PDB03 2768682114 READ WRITE
"""只卸载PDB元数据(不会删除PDB的数据文件可再次插入到CDB中)"""
SYS@dgpri>alter pluggable database pdb03 unplug into '/home/oracle/pdb03.xml';
alter pluggable database pdb03 unplug into '/home/oracle/pdb03.xml'
*
ERROR at line 1:
ORA-65025: Pluggable database PDB03 is not closed on all instances.
SYS@dgpri>alter pluggable database pdb03 close;
Pluggable database altered.
SYS@dgpri>alter pluggable database pdb03 unplug into '/home/oracle/pdb03.xml';
Pluggable database altered.
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ WRITE
4 PDB02 3896516093 READ WRITE
5 PDB03 2768682114 MOUNTED
SYS@dgpri>alter pluggable database pdb03 open;
alter pluggable database pdb03 open
*
ERROR at line 1:
ORA-65086: cannot open/close the pluggable database
SYS@dgpri>drop pluggable database pdb03;
Pluggable database dropped.
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ WRITE
4 PDB02 3896516093 READ WRITE
SYS@dgpri>create pluggable database pdb03 using '/home/oracle/pdb03.xml';
Pluggable database created.
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ WRITE
4 PDB02 3896516093 READ WRITE
6 PDB03 2768682114 MOUNTED
SYS@dgpri>alter pluggable database pdb03 open;
Pluggable database altered.
SYS@dgpri>select con_id,name,dbid,open_mode from v$containers;
CON_ID NAME DBID OPEN_MODE
------ --------------- ---------- --------------------
1 CDB$ROOT 2058728742 READ WRITE
2 PDB$SEED 4064618166 READ ONLY
3 PDB01 3794412324 READ WRITE
4 PDB02 3896516093 READ WRITE
6 PDB03 2768682114 READ WRITE