Oracle 12c系列(五)|PDB Refresh

PDB Refresh是12C推出的特性,具有对源端PDB进行增量同步的功能,每次刷新会将源端PDB中的任何更改同步到目标PDB(在此环境中目标PDB被称作Refreshable PDB)中,目前增量同步方式有两种:手动方式与自动方式。

一、Refresh MODE语句

在使用Create Pluggable Database创建PDB时指定Refresh MODE子句用来控制是否开启刷新机制。

该子句目前只在”Create Pluggable Database… From”中支持,可以使用此语句指定如下选项:

  • 指定Refresh MODE NONE,这是默认方式,在创建PDB时不开启刷机机制。

  • 指定Refresh MODE MANUAL子句,创建手动刷新的PDB。

  • 指定Refresh MODE EVERY number_of_minutes MINUTES子句,创建以周期性刷新的PDB。

另外值得一提的是Oracle 18c对Refreshable PDB进行了进一步的增强,增强为Refreshable PDB Switchover(可刷新PDB的切换),在12.2.1中源PDB只能作为源端PDB,而在18c中可对源PDB和目标PDB进行角色转换,该功能类似Active Dataguard的主备切换,只不过Oracle在PDB Refresh中再次实现了该功能。

目前Refreshable PDB只能在只读模式下打开,当Refreshable PDB进行刷新时,Refreshable PDB必须处于关闭状态,只读模式打开时会停止刷新,当再次关闭Refreshable PDB时继续上次的刷新,也可以将Refreshable PDB更改为Refresh MODE NONE模式,更改之后你无法在将PDB改为Refreshable PDB。

另外也可以使用Alter Pluggable Database命令将Refreshable PDB从手动刷新更改为自动刷新,也可以从自动刷新更改为手动刷新,同样通过语句Alter Pluggable Database +Refresh MODE更改为非Refreshable PDB,但是非Refreshable PDB不可以被更改为Refreshable PDB。

同时需要注意的是Refreshable PDB和源PDB必须属于不同的CDB,因此Refreshable PDB需要使用远端的CDB中的PDB来创建,在创建期间必须使用dblink,但实际情况是Source PDB和Refreshable PDB可以属于同一个CDB,只不过在创建Refreshable PDB时必须指定DBlink,DBlink指向自己所在的CDB,否则语法无法通过。

Refreshable PDB的应用场景可以用在开发和测试环境的搭建过程中, 因为数据是采用增量同步的方式,这样就减少了对源数据库的影响,也可以作为online备份库。

Clone源端的PDB前期注意事项:

  • 如果PDB被Clone的到的CDB的字符集不是AL32UTF8,那么源与目标字符集必须兼容。

  • 源端与目标端的字节顺序必须相同。

  • 连接的用户在CDB中必须拥有’Create Pluggable Database’的权限。

  • 源PDB不可以是关闭状态。

  • 源端PDB必须为归档模式。

  • 源端PDB必须是local undo模式。

  • 在Refreshable PDB创建后,如果源端需要创建相应表空间,那么目标端需要配置PDB_FILE_NAME_CONVERT参数或使用OMF目录管理方式(OMF级别高于PDB_FILE_NAME_CONVERT),否正会导致目标端PDB刷新失败。

  • 目标端采用OMF目录管理方式后,Create Pluggable Database子句中不能指定file_name_convert做显示目录转换,否正报ORA-01276错误。

  • 在使用刷新目标PDB与源PDB同步数据时,是通过dblink从源PDB访问redo,但有些时候,当需要更新刷新副本时,源PDB或源PDB所属的CDB可能无法访问,在这种情况下,设置REMOTE_RECOVERY_FILE_DEST参数,将尝试从此参数指定的目录中读取归档日志文件。

  • 刷新与切换命令均需在目标PDB中执行。

二、PDB Refreshcesh

如下将源端PDB:woqupdb通过refresh方式克隆到本地,且命名为qdatapdb。

(1)创建目标端到源端库的DBLINK:orcl12c

sys. ora12c>CREATE DATABASE LINK orcl12c CONNECT TO system IDENTIFIEDBY oracle USING 'orcl12c';
Database link created.
Elapsed: 00:00:00.15
sys. ora12c>

克隆源端WOQUPDB

sys. orcl12c>show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
     2 PDB$SEED                       READ ONLY  NO
     4WOQUPDB                        READ WRITENO
sys. orcl12c>

(2)目标端配置OMF目录管理方式

sys. ora12c>alter system set db_create_file_dest='/u01/app/oracle/oradata';
System altered. 
Elapsed: 00:00:00.04
sys. ora12c>

(3)在目标端使用CREATE PLUGGABLE DATABASE + REFRESH MODE MANUAL语句创建qdatapdb

sys. ora12c>CREATE PLUGGABLE DATABASE qdatapdb FROM woqupdb@orcl12c REFRESH MODE MANUAL;
Pluggable database created. 
Elapsed: 00:00:14.20
sys. ora12c>

(4)检查克隆完成的QDATAPDB

sys. ora12c>show pdbs
CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ --<
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值