Oracle12c建立及刪除PDB

  在12C R1版本中只支持Global Shared Undo模式,全部container共享一個UNDO表空間;在12C R2引入了PDB Local Undo模式,每一個container都有本身的UNDO 表空間,對於RAC是每html

個實例每一個container都有本身的UNDO表空間。在DBCA時會有Local Undo選項,且默認勾選。sql

  在12c R1版本中clone PDB源庫須要打開在read only只讀模式 ,12c R2版本中引入了local undo mode, PDB源庫在read write讀寫模式也能夠clone。數據庫

克隆PDB要求:express

  1. Archive Log Enabled  
  2. Local Undo Enabled 
  3. destination CDB must have a public database link to the source CDB,have sufficient privileges to use the database linkc#

能夠經過圖形化工具DBCA、命令行、em express等方式建立和刪除PDB,該處只描述命令行方式操做。session

1、建立PDBoracle

1. 克隆種子容器app

SQL> select * from v$dbfile;      #查看路徑ide

 

SQL> show parameter db_create_file_dest;工具

 

SQL> create pluggable database PDB3 admin user song identified by song file_name_convert=('/home/oracle/u01/app/oracle/oradata/orcl/pdbseed','/home/oracle/u01/app/oracle/oradata/orcl/PDB3');

 

2. 克隆本地PDB

 1) 查看歸檔是否打開

SQL> archive log list;

 

 2) local undo是否開啓

SQL> col PROPERTY_NAME for a25;

SQL> col PROPERTY_VALUE for a25;

SQL> select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED';

 

 3) 開始克隆

SQL> show pdbs;

 

a)使用OMF功能建立,不推薦使用該功能建立PDB,路徑和數據文件名不是常規的。

SQL> show parameter DB_CREATE_FILE_DEST;        #OMF功能路徑

SQL> show parameter pdb_file_name_convert;        #設置初始化參數

SQL> alter system set db_create_file_dest='/home/oracle/u01/app/oracle/oradata/orcl';

SQL> alter session set pdb_file_name_convert='ORCLPDB','PDB5';       

SQL> create pluggable database PDB5 from ORCLPDB; 

報錯:ORA-65005: 文件缺乏文件名模式或其文件名模式無效,未設置DB_CREATE_FILE_DEST參數

 

b)使用file_name_convert建立

SQL> create pluggable database PDB4 from ORCLPDB file_name_convert=(
   '/home/oracle/u01/app/oracle/oradata/orcl/orclpdb','/home/oracle/u01/app/oracle/oradata/orcl/pdb4');

 

SQL> alter pluggable database pdb4 open;

 

3. 克隆異地PDB

 源端

SQL> create user c##sonny identified by sonny container=all;

SQL> grant dba to c##sonny container=all;

 

 目標端

create database link clonepdb connect to c##sonny identified by sonny using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.208)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORCLPDB)))';

 

 SQL> create pluggable database sonnypdb from ORCLPDB@clonepdb;

$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql腳本

 

2、刪除PDB

 PDB須要處於MOUNTED狀態才能夠刪除

SQL> alter pluggable database pdb5 close immediate;

SQL> drop pluggable database pdb5 including datafiles;

SQL> show pdbs;

  

至此PDB的建立與刪除就完成了,下面爲PDB的開啓與關閉操做:

SQL>alter pluggable database orclpdb open;        #啓動單個PDB
SQL>alter pluggable database all open;           #啓動全部PDB
SQL>alter pluggable database orclpdb close immediate;   #關閉單個PDB
SQL>alter pluggable database all close immediate;      #關閉全部PDB

自動啓動全部PDB
數據庫啓動的時候全部的PDB的狀態爲MOUNTED,如下設置自動啓動(CDB級別操做):
create or replace trigger sys.pdb_startup
after startup on database
begin
execute immediate 'alter pluggable database all open';
end pdb_startup;
/

 

克隆pdb文章

https://www.cnblogs.com/andy6/p/6867240.html

切換shared undo/local undo文章

https://blog.csdn.net/zhang123456456/article/details/71374528

相關文章
相關標籤/搜索