Oracle 12c 多租戶 手工建立 pdb 與 手工刪除 pdb

張衝andy發表於2017-05-10
實驗環境:
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production              

一、 手工建立 PDB
SQL>SELECT NAME,CDBFROM V$DATABASE;
SQL>show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB01                          READ WRITE NO
SQL> alter session set container=pdb$seed;
SQL> 
set lin 400;
col name for a60;
select * from v$dbfile;
     FILE# NAME                                                             CON_ID
---------- ------------------------------------------------------------ ----------
         5 /home/oracle/app/oracle/oradata/ANDYCDB/datafile/o1_mf_syste          2
           m_djsz1z31_.dbf
         6 /home/oracle/app/oracle/oradata/ANDYCDB/datafile/o1_mf_sysau          2
           x_djsz1z2x_.dbf
         8 /home/oracle/app/oracle/oradata/ANDYCDB/datafile/o1_mf_undot          2
           bs1_djsz1z34_.dbf
SQL> create pluggable database pdb02 admin user pdb02 identified by pdb02
file_name_convert=('pdbseed','pdb02');
ORA-65005: missing or invalid file name pattern for file -
/home/oracle/app/oracle/oradata/ANDYCDB/datafile/o1_mf_system_djsz1z31_.dbf
SQL> alter session set db_create_file_dest='/home/oracle/app/oracle/oradata/';
SQL> create pluggable database pdb02 admin user pdb02 identified by pdb02;
Pluggable database created.
說明:使用了OMF格式的檔名,目標庫無法使用convert轉換,只能配置db_create_file_dest同樣對於該PDB使用OMF。
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
4 PDB02  MOUNTED
SQL> alter pluggable database pdb02 open;
Pluggable database altered.

二、手工刪除 PDB
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
4 PDB02  READ WRITE NO
SQL> alter session set container=pdb02;
Session altered.
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/ANDYCDB/ANDYCDB/4F21240B3F45400BE0531019640A46FB
/datafile/o1_mf_system_dk4oy9tr_.dbf
/home/oracle/app/oracle/oradata/ANDYCDB/ANDYCDB/4F21240B3F45400BE0531019640A46FB
/datafile/o1_mf_sysaux_dk4oy9xy_.dbf
/home/oracle/app/oracle/oradata/ANDYCDB/ANDYCDB/4F21240B3F45400BE0531019640A46FB
/datafile/o1_mf_undotbs1_dk4oy9y1_.dbf
SQL> alter session set container=cdb$root;
Session altered.
drop pdb 方式一:including DATAFILES
SQL> drop pluggable database pdb02 including datafiles;
ERROR at line 1:   > 報錯說明刪除pdb,這個pdb要在 close 狀態。 
ORA-65025: Pluggable database PDB02 is not closed on all instances.
SQL> alter pluggable database pdb02 close immediate;
Pluggable database altered.
SQL> drop pluggable database pdb02 including datafiles;
Pluggable database dropped.
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
[oracle@12c01 ~]cd  /home/oracle/app/oracle/oradata/ANDYCDB/ANDYCDB/4F21240B3F45400BE0531019640A46FB/datafile
[oracle@12c01 datafile]$ ll
total 0     > 作業系統層對應的檔案也一併刪除了
drop pdb 方式二:keep DATAFILES
SQL> show pdbs
    CON_ID CON_NAME  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED  READ ONLY  NO
3 PDB01  READ WRITE NO
SQL> alter session set container=pdb01;
Session altered.
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
/home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafil
e/o1_mf_system_djszmxhq_.dbf
/home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafil
e/o1_mf_sysaux_djszmxkb_.dbf
/home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafil
e/o1_mf_users_djszpsmt_.dbf
/home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafil
e/o1_mf_undo_1_djz4jq1z_.dbf
NAME
--------------------------------------------------------------------------------
SQL> alter session set container=cdb$root;
Session altered.
SQL> alter pluggable database pdb01 close immediate;
Pluggable database altered.
SQL>alter pluggable database pdb01 unplug into '/home/oracle/pdb01.xml';
Pluggable database altered.
SQL> drop pluggable database pdb01 keep datafiles;
Pluggable database dropped.
[oracle@12c01 ~]cd /home/oracle/app/oracle/oradata/ANDYCDB/4ECF8621E3DA38EEE0531019640AA598/datafile
[oracle@12c01 datafile]$ ll
total 775720
-rw-r-----. 1 oracle oinstall 408952832 May 10 18:02 o1_mf_sysaux_djszmxkb_.dbf
-rw-r-----. 1 oracle oinstall 272637952 May 10 18:02 o1_mf_system_djszmxhq_.dbf
-rw-r-----. 1 oracle oinstall 104865792 May 10 18:02 o1_mf_undo_1_djz4jq1z_.dbf > 作業系統層對應的檔案沒有被刪除
-rw-r-----. 1 oracle oinstall   7872512 May 10 18:02 o1_mf_users_djszpsmt_.dbf
說明:在drop PDB的時候,有2種方式 keep DATAFILES 和 including DATAFILES,預設是KEEP

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2138820/,如需轉載,請註明出處,否則將追究法律責任。

相關文章