Oracle 12c系列(二)|PDB的创建


作者   杨禹航

出品   沃趣技术

PDB数据库的创建可以从现存的数据库中复制数据文件,包括种子容器、可插拔数据库、non-CDB数据库,创建时可以使用CREATE PLUGGABLE、RMAN、DBCA以及EM等。

在12.1版本中在创建PDB时,Source PDB必须处于read only状态,在12.2版本中,因为undo local mode新特性的推出,在创建PDB时,Source PDB在read write状态,依然可以创建。

另外在12.2版本中Oracle推出了refresh PDB特性,具有对Source PDB进行增量同步的功能。

使用CREATE PLUGGABLE命令可以使用以下资源创建PDB

  • CDB seed (PDB$SEED)

  • 克隆已经存在的PDB

     Local PDB

     Remote PDB

  • non-CDB数据库

  • 拔下的PDB

使用DBCA可以使用以下资源创建PDB

  • CDB seed (PDB$SEED)

  • RMAN备份

  • 拔下的PDB

示例:(这里只演示使用create pluggable database命令方式创建PDB)

使用CDB seed创建PDB



1.在SQL*Plus中输入CREATE PLUGGABLE DATABASE语句

(这里创建未ypdb1的pdb,管理用户为ypdb1)

 

CREATE PLUGGABLE DATABASE ypdb1 ADMIN USER ypdb1 IDENTIFIED BY oracle
STORAGE (MAXSIZE 2G)
DEFAULT TABLESPACE ypdb1
DATAFILE '/u01/app/oracle/oradata/ora12c/ypdb1/ypdb01.dbf' SIZE 100M AUTOEXTEND ON
PATH_PREFIX = '/u01/app/oracle/oradata/ora12c/ypdb1/'
FILE_NAME_CONVERT = ('/u01/app/oracle/oradata/ora12c/pdbseed',
'/u01/app/oracle/oradata/ora12c/ypdb1');

ADMIN USER

用于执行管理任务的本地用户

STORAGE (MAXSIZE 2G)

指定了PDB可用的最大空间

DEFAULT TABLESPACE

为PDB指定默认的Tablespace

PATH_PREFIX

用来限制directory objects/Oracle XML/Create pfile/Oracle wallets所在的目录

FILE_NAME_CONVERT

设置子容器和数据文件副本的位置

2.语句执行完毕之后查看创建完成的PDB:

 

sys. ora12c>show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
    2 PDB$SEED                       READ ONLY  NO
    3 YPDB1                          MOUNTED
sys. ora12c>

克隆已经存在的PDB

这种方式可以通过使用当前CDB中的其他PDB,以及复制远端CDB中的PDB,还可以复制non-CDB数据库创建成PDB。

Clone a Local PDB



在Clone本地PDB时需要注意一下几点:

  • 使用的用户必须拥有’CREATE PLUGGABLE DATABASE’的权限(测试里使用sys用户)

  • 源PDB不可以是关闭状态

  • 如果CDB为shared undo,PDB必须为READ-ONLY状态

  • 如果CDB不是归档模式,那么PDB必须为READ-ONLY状态

说明:如果是Oracle Database 版本为12.1,那么PDB只能为READ-ONLY状态,因在12.1中undo模式,还只能选择shared undo。

 

sys. ora12c>show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
    2 PDB$SEED                       READ ONLY  NO
    3 YPDB1                          READ WRITE NO
sys. ora12c>

这里使用YPDB1做为源PDB,创建的PDB为YPDB2。

(1) 检查是否为shared undo模式

 

COL PROPERTY_NAME FOR A30
COL PROPERTY_VALUE FOR A30
SELECT property_name, property_value
FROM database_properties
WHERE property_name='LOCAL_UNDO_ENABLED';
PROPERTY_NAME                  PROPERTY_VALUE
------------------------------ ------------------------------
LOCAL_UNDO_ENABLED             TRUE

 (2) 检查是否未archivelog模式

 

sys. ora12c>ARCHIVE LOG LIST
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/oracle/recovery/ora12c/arch
Oldest online log sequence     21
Next log sequence to archive   23
Current log sequence           23
sys. ora12c>

 (3) 创建验证数据

 

yangyuhang. ypdb1>CONN /AS SYSDBA
Connected.
sys. ora12c>conn yangyuhang/yangyuhang@ypdb1
Connected.
yangyuhang. ypdb1>SELECT COUNT(*) FROM t;
COUNT(*)
----------
22198
Elapsed:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值