绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
12C之一创建PDB的方法。
2020-09-14 17:38:30

12C之一创建PDB的方法。


noCDB

1 PDB$SEED创建PDB

CREATE PLUGGABLE DATABASE prodpdb1 ADMIN USER admin

IDENTIFIED BY oracle ROLES=(CONNECT)

FILE_NAME_CONVERT=('/u01/app/oracle/oradata/prod/pdbseed','/u01/app/oracle/oradata/prod/prodpdb1')

/



2 删除pdb 

ALTER PLUGGABLE DATABASE pdb2_1 CLOSE IMMEDIATE; 


DROP PLUGGABLE DATABASE pdb2_1 INCLUDING DATAFILES; 


3 clone现有PDB的方式


现有PDBorclpdb1,克隆后的PDBorclpdb2

步骤

alter pluggable database orclpdb1 close; 

alter pluggable database orclpdb2 open read only; 


创建新PDB的存储目录

cd $ORACLE_BASE/oradata/orcl

mkdir orclpdb1


设置参数

alter system set db_create_file_dest = '/u01/app/oracle/oradata/orcl/orclpdb1';


具体实施克隆

CREATE PLUGGABLE DATABASE orclpdb1 FROM orclpdb; 


或者 不使用OMF的方式


现有PDBorclpdb,克隆后的PDBorclpdb1

步骤

alter pluggable database prodpdb1 close; 

alter pluggable database prodpdb1 open read only; 


具体实施克隆

CREATE PLUGGABLE DATABASE prodpdb2 FROM prodpdb1

file_name_convert=('/u01/app/oracle/oradata/prod/prodpdb1','/u01/app/oracle/oradata/prod/prodpdb2')

/


注意:这里的子目录orclpdb1会自动创建


打开两个库

orclpdb:

 alter pluggable database orclpdb close immediate;

 alter pluggable database orclpdb open;


orclpdb1:

alter pluggable database orclpdb1 open;


4 从非CDB迁移到PDB(或称为插入到PDB


 方法1 :插入PDB


prod-orclpdb1

这种方式会创建XML文件,这个文件用来描述非CDB数据库的表空间和数据文件信息,这个数据文件在CDB中创建orclpdb1时使用


1)在prod库,只读方式打开数据库


SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database open read only;


2)创建XML文件

exec dbms_pdb.describe ('/u01/app/oracle/oradata/prod/xmlprod.xml') ;


验证文件已经创建

SQL> ! ls -l /u01/app/oracle/oradata/prod/xmlprod.xml

-rw-r--r--. 1 oracle oinstall 6605 Sep 20 09:03 /u01/app/oracle/oradata/prod/xmlprod.xml

 

3)然后一致性关闭非CDBprod


SQL> shutdown immediate;

 4)切换到CDBorcl,创建pdborclpdb1,验证兼容性

SET SERVEROUTPUT ON;

DECLARE

compatible CONSTANT VARCHAR2(3) := CASE DBMS_PDB.CHECK_PLUG_COMPATIBILITY(pdb_descr_file => '/u01/app/oracle/oradata/prod/xmlprod.xml')

WHEN TRUE THEN 'YES'

ELSE 'NO'

END;

BEGIN

DBMS_OUTPUT.PUT_LINE(compatible);

END;

/


5 创建PDB数据库,这里使用copy的模式,将数据库prod的文件拷贝到新的目录下,方便管理 ,也可以使用nocopy的方式,将prod库的文件

保持在原处(不建议这种方式)

CREATE PLUGGABLE DATABASE orclpdb1 USING '/u01/app/oracle/oradata/prod/xmlprod.xml'

copy

FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/prod/', '/u01/app/oracle/oradata/orcl/orclpdb1/’)

/


(6)切换到新的PDBorclpdb1,执行切换脚本

 SQL>alter session set container=orclpdb1

@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql


或者直接使用nocopy方式,再切换到orclpdb1执行转换脚本

create pluggable database orclpdb1 using '/u01/app/oracle/oradata/prod/xmlprod.xml' NOCOPY; 

alter session set container=orclpdb1

@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql


7 打开PDBorclpdb1,验证打开模式

ALTER PLUGGABLE DATABASE OPEN;

SELECT name, open_mode FROM v$pdbs;

分享好友

分享这个小栈给你的朋友们,一起进步吧。

Oracle运维新鲜事-技术与管理各占半边天
创建时间:2020-08-04 11:34:57
本技术栈旨在分享技术心得,运维趣事,故障处理经验,调优案例,故障处理涉及集群,DG,OGG,大家生产中遇到的问题基本都会囊括了,我会发布生产库遇到的故障,希望在交流中互助互益,共同提高,也希望大家讨论,如果您有生产中遇到的集群问题,也可以在这里提出来,一起讨论,现实中也帮助不少同学解决了生产库的故障。
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

栈主、嘉宾

查看更多
  • Abraham林老师
    栈主
  • 小雨滴
    嘉宾
  • hawkliu
    嘉宾
  • u_97a59a25246404
    嘉宾

小栈成员

查看更多
  • 栈栈
  • dapan
  • 小菜鸟___
  • hwayw
戳我,来吐槽~