通过seed和clone 创建PDB

来源:互联网 发布:淘宝销量多评价少 编辑:程序博客网 时间:2024/06/06 03:46

参考文档

https://docs.oracle.com/database/122/ADMIN/creating-and-removing-pdbs-with-sql-plus.htm#ADMIN14167


一 、通过seed创建pdb

-- 通过seed 创建PDB

SYS@mynewdb>CREATE PLUGGABLE DATABASE pdbs ADMIN USER bb IDENTIFIED BY bb  2    FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdbseed', '/u01/app/oracle12/oradata12/pdb1');Pluggable database created.SYS@mynewdb>show pdbs    CON_ID CON_NAME  OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED  READ ONLY  NO 3 PDBS   MOUNTEDSYS@mynewdb>

--打开创建的PDB ,关闭创建的pdb

SYS@mynewdb>alter session set container=PDBS  2  ;Session altered.SYS@mynewdb>show pdbs    CON_ID CON_NAME  OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ---------- 3 PDBS   MOUNTEDSYS@mynewdb>alter database open;Database altered.SYS@mynewdb>show pdbs;    CON_ID CON_NAME  OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ---------- 3 PDBS   READ WRITE NOSYS@mynewdb>show con_nameCON_NAME------------------------------PDBSSYS@mynewdb>-- closed and openSYS@mynewdb>alter pluggable database PDBS close immediate;Pluggable database altered.SYS@mynewdb>show pdbs;    CON_ID CON_NAME  OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ---------- 3 PDBS   MOUNTEDSYS@mynewdb>alter pluggable database PDBS open;Pluggable database altered.SYS@mynewdb>show pdbs;    CON_ID CON_NAME  OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ---------- 3 PDBS   READ WRITE NOSYS@mynewdb>

二 、 Clone一个pdb ,从PDBS 克隆pdb2

CREATE PLUGGABLE DATABASE pdb2 FROM PDBS   FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdb1', '/u01/app/oracle12/oradata12/pdb2')  STORAGE (MAXSIZE 2G);SYS@mynewdb>show con_nameCON_NAME------------------------------CDB$ROOTCREATE PLUGGABLE DATABASE pdb2 FROM PDBS   FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdb1', '/u01/app/oracle12/oradata12/pdb2')  3    STORAGE (MAXSIZE 2G);Pluggable database created.SYS@mynewdb>show con_nameCON_NAME------------------------------CDB$ROOTSYS@mynewdb>show pdbs    CON_ID CON_NAME  OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED  READ ONLY  NO 3 PDBS   READ WRITE NO 5 PDB2   MOUNTEDSYS@mynewdb>SYS@mynewdb>alter pluggable database PDB2 open;Pluggable database altered.SYS@mynewdb>show pdbs    CON_ID CON_NAME  OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ---------- 2 PDB$SEED  READ ONLY  NO 3 PDBS   READ WRITE NO 5 PDB2   READ WRITE NOSYS@mynewdb>

clone pdb,但是不包含数据 。

SYS@mynewdb>alter session set container=PDBS;Session altered.SYS@mynewdb>create table t(id number);Table created.SYS@mynewdb>insert into t values(1);1 row created.SYS@mynewdb>insert into t values(2);1 row created.SYS@mynewdb>commit;Commit complete.SYS@mynewdb>select count(*) from t;  COUNT(*)---------- 2SYS@mynewdb>ALTER PLUGGABLE DATABASE PDBS CLOSE;ALTER PLUGGABLE DATABASE PDBS OPEN READ ONLY;CREATE PLUGGABLE DATABASE pdb3 FROM pdbs FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdb1/', '/u01/app/oracle12/oradata12/pdb3/') NO DATA;  STORAGE (MAXSIZE 2G) NO DATA;CREATE PLUGGABLE DATABASE pdb4 FROM PDBS FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdb1', '/u01/app/oracle12/oradata12/pdb4') NO DATA;

备注,这里clone的话,加上nodata 总是出错,不知是不是和之前那个catcdb.sql有关 。 但是去掉nodata就可以clone成功。

SYS@mynewdb>CREATE PLUGGABLE DATABASE pdb4 FROM PDBS FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdb1', '/u01/app/oracle12/oradata12/pdb4') NO DATA;CREATE PLUGGABLE DATABASE pdb4 FROM PDBS FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdb1', '/u01/app/oracle12/oradata12/pdb4') NO DATA*ERROR at line 1:ORA-00604: error occurred at recursive SQL level 1ORA-00942: table or view does not existSYS@mynewdb>CREATE PLUGGABLE DATABASE pdb4 FROM PDBS FILE_NAME_CONVERT = ('/u01/app/oracle12/oradata12/pdb1', '/u01/app/oracle12/oradata12/pdb4');Pluggable database created.


END




原创粉丝点击