PDB定时刷新前提条件:
(1)要创建可刷新PDB,源PDB必须处于归档日志模式和本地UNDO模式。
(2)要创建可刷新PDB,需要dblink,dblink可以指向同一CDB或不同CDB。
(3)可刷新PDB只在关闭状态下执行刷新。

一、创建可刷新克隆PDB(手动方式)

1.创建用户并授权

SQL> create user c##cs identified by admin;
User created.SQL> grant create session,resource,create any table,unlimited tablespace to c##cs container=all;
Grant succeeded.SQL> grant create pluggable database to c##cs container=all;
Grant succeeded.SQL> grant sysoper to c##cs container=all;
Grant succeeded.

2.编辑TNS文件

REFRESH_LINK =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.88.5)(PORT = 1521)))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = 86b637b62fdf7a65e053f706e80a27ca)))注:SERVICE_NAME 为根容器GUID。SQL> SELECT NAME, CON_ID, DBID, CON_UID, GUID FROM V$CONTAINERS ORDER BY CON_ID; NAME    CON_ID     DBID      CON_UID              GUID
-------- -------- ------------ -------- ---------------------------------
CDB$ROOT     1     1629592226     1     86B637B62FDF7A65E053F706E80A27CA

3.创建dblink

SQL> create database link pdb_link connect to c##cs identified by admin using 'REFRESH_LINK';
Database link created.SQL> select * from dual@pdb_link;
D
-
X

4.创建手动可刷新PDB

SQL> create pluggable database <target_pdb> from <source_pdb>@<dblink_name> refresh mode manual;在OMF模式下创建:
SQL> create pluggable database pdb3 from pdb2@pdb_link refresh mode manual;
Pluggable database created.查看状态:
SQL> col pdb_name for a10
SQL> col refresh_mode for a15
SQL> select pdb_id,pdb_name,status,refresh_mode,refresh_interval from cdb_pdbs;PDB_ID   PDB_NAME    STATUS     REFRESH_MODE   REFRESH_INTERVAL
--------- ---------- ---------- ---------------- ----------------3         PDB1      NORMAL        NONE  2       PDB$SEED    NORMAL        NONE  4         PDB2      NORMAL        NONE  6         PDB3    REFRESHING     MANUAL

5.对可刷新PDB,进行手动刷新时,可刷新PDB需要处于关闭状态

SQL> alter pluggable database pdb3 refresh;
Pluggable database altered.
注:手动刷新PDB时,自上次刷新以来对源PDB所做的更改将传输到正在刷新的PDB。未开启OMF模式下创建:
SQL> create pluggable database pdb3 from pdb2@pdb_link file_name_convert=('/oradata/ORCL/pdb2/system01.dbf','/oradata/ORCL/pdb3/system01.dbf',
'/oradata/ORCL/pdb2/sysaux01.dbf','/oradata/ORCL/pdb3/sysaux01.dbf',
'/oradata/ORCL/pdb2/undotbs01.dbf','/oradata/ORCL/pdb3/undotbs01.dbf',
'/oradata/ORCL/pdb2/users01.dbf','/oradata/ORCL/pdb3/users01.dbf',
'/oradata/ORCL/pdb2/temp01.dbf','/oradata/ORCL/pdb3/temp01.dbf') refresh mode manual;

6.进行数据测试

测试表cs原有12行数据:
SQL> show con_nameCON_NAME
--------
PDB2SQL> select * from cs;
ID
----34 910 1 2 5 6 7 81112插入两行数据进行测试:
SQL> insert into cs values(13);
SQL> insert into cs values(14);
SQL> commit;进行手动刷新,然后检查数据:
SQL> alter pluggable database pdb3 refresh;
SQL> show con_nameCON_NAME
--------
PDB3SQL> select * from test.cs;
ID
----3 4 910 1 2 5 6 7 81112131414 rows selected.至此,手动方式创建可刷新PDB完成。

二、创建可刷新克隆PDB(自动方式)

1.创建自动可刷新克隆PDB(如10分钟自动刷新一次)

SQL> create pluggable database pdb3 from pdb2@pdb_link file_name_convert=('/oradata/ORCL/pdb2/system01.dbf','/oradata/ORCL/pdb3/system01.dbf',
'/oradata/ORCL/pdb2/sysaux01.dbf','/oradata/ORCL/pdb3/sysaux01.dbf',
'/oradata/ORCL/pdb2/undotbs01.dbf','/oradata/ORCL/pdb3/undotbs01.dbf',
'/oradata/ORCL/pdb2/users01.dbf','/oradata/ORCL/pdb3/users01.dbf',
'/oradata/ORCL/pdb2/temp01.dbf','/oradata/ORCL/pdb3/temp01.dbf') refresh mode every 10 minutes;

注:自动刷新时,可刷新PDB也要处于关闭状态。如果在自动刷新时未关闭PDB,则自动刷新将延迟到下一次计划刷新。
可刷新PDB必须保持只读模式(也只能以只读模式打开),以防止在源PDB上发生的不同步更改。
可刷新PDB旨在用作克隆主服务器,因此必须在刷新的时间点准确反映源PDB。

2.进行数据测试

SQL> show con_name
CON_NAME
--------
PDB2SQL> insert into cs values(15);
SQL> insert into cs values(16);
SQL> commit;

3.等待PDB刷新时间过去,以只读模式打开PDB,检查表数据行数

SQL> show con_name
CON_NAME
--------
PDB3SQL> select * from test.cs;
ID
---3 41516 910 1 2 5 6 7 81112131416 rows selected.同样的删除某行数据,也会通过定时刷新进行同步。

4.测试创建新用户是否能刷新至目标端(可刷新克隆PDB)

源端添加新用户:
SQL> show con_name
CON_NAME
--------
PDB2SQL> create user t1 identified by admin;
User created.定时自动刷新后,目标端查看:
SQL> show con_name
CON_NAME
--------
PDB3SQL> set pagesize 99
SQL> select username from dba_users;
USERNAME
--------
SYS
SYSTEM
T1  ----通过刷新,正常同步至目标端用户登录测试:
SQL> conn t1/admin@pdb3
Connected.
SQL> show user
USER is "T1"

5.测试创建表空间、添加数据文件是否可以刷新至目标端

源PDB中添加数据文件,则必须在CDB中设置 pdb_file_name_convert 参数:
SQL> alter system set pdb_file_name_convert='/oradata/ORCL/pdb2','/oradata/ORCL/pdb3';
System altered.源端创建表空间:
SQL> create tablespace t2 datafile'/oradata/ORCL/pdb2/t201.dbf' size 20M;
Tablespace created.目标端查看:
SQL> alter session set container=pdb3;
Session altered.SQL> select name from v$datafile;
NAME
---------------------------
/oradata/ORCL/pdb3/t201.dbfSQL> select name from v$tablespace;
NAME
-----
T2源端添加数据文件:
SQL> alter tablespace t2 add datafile'/oradata/ORCL/pdb2/t202.dbf' size 20M;
Tablespace altered.目标端查看:
SQL> select a.name,b.name from v$datafile a,v$tablespace b where a.ts#=b.ts# and b.name='T2';
NAME                            NAME
---------------------------- -----------
/oradata/ORCL/pdb3/t201.dbf      T2
/oradata/ORCL/pdb3/t202.dbf      T2

6.切换源端和目标端可刷新角色

前提条件:
(1)切换命令必须在源PDB中执行。
(2)源库和可刷新库不在同一个CDB中时,两个CDB中DBLink指定的用户和密码必须完全一致。
(3)DBLink中的字符串必须指向PDB所在的根容器中。

SQL> col pdb_name for a10
SQL> col refresh_mode for a15
SQL> select pdb_id,pdb_name,status,refresh_mode,refresh_interval from cdb_pdbs;
PDB_ID    PDB_NAME     STATUS     REFRESH_MODE  REFRESH_INTERVAL
------ ------------- ----------- -------------- ----------------3        PDB1        NORMAL         NONE  2      PDB$SEED      NORMAL         NONE  4        PDB2        NORMAL         NONE  5        PDB3      REFRESHING       AUTO           10SQL> alter session set container=pdb2;
Session altered.SQL> ALTER PLUGGABLE DATABASE REFRESH MODE EVERY 1 MINUTES FROM pdb3@pdb_link SWITCHOVER;
Pluggable database altered.SQL> select pdb_id,pdb_name,status,refresh_mode,refresh_interval from cdb_pdbs;
PDB_ID  PDB_NAME     STATUS     REFRESH_MODE  REFRESH_INTERVAL
------ ---------- ----------- --------------- ----------------3      PDB1        NORMAL        NONE  2    PDB$SEED      NORMAL        NONE  4      PDB2      REFRESHING      NONE            10  5      PDB3        NORMAL        AUTO

7.将可刷新PDB转换为普通PDB

SQL> alter pluggable database <pdb_name> refresh mode none;注:转为普通PDB后,以读写模式打开,无法再次将普通PDB转换为可刷新PDB。SQL> select pdb_id,pdb_name,status,refresh_mode,refresh_interval from cdb_pdbs;
PDB_ID   PDB_NAME   STATUS   REFRESH_MODE REFRESH_INTERVAL
------ ----------- --------- ------------ ----------------3       PDB1       NORMAL      NONE  2     PDB$SEED     NORMAL      NONE  4       PDB2        NEW        NONE  5       PDB3       NORMAL      AUTO

Oracle可刷新克隆PDB相关推荐

  1. 可刷新的 PDB(PDB Refresh)

    可刷新的 PDB(PDB Refresh) https://docs.oracle.com/en/database/oracle/oracle-database/18/multi/administer ...

  2. oracle19c克隆PDB

    一.本地克隆 本地克隆非常简单,一条命令: SQL> create pluggable database testmove4 from testmove2 file_name_convert=( ...

  3. Oracle 12C CDB、PDB常用管理命令

    --查看PDB信息(在CDB模式下) show pdbs --查看所有pdb select name,open_mode from v$pdbs; --v$pdbs为PDB信息视图 select co ...

  4. oracle的cbd和pdb区别,Oracle 12C CDB、PDB常用管理命令

    Oracle 12C CDB.PDB常用管理命令 --查看PDB信息(在CDB模式下) show pdbs --查看所有pdbselect name,open_mode from v$pdbs; -- ...

  5. Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理

    Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理 在以前的版本中,没有简单的方法来控制单个PDB使用的磁盘I / O量. 因此,某个PDB可能耗尽大量磁盘I / O ...

  6. 15分钟!一键部署Oracle 12CR2单机CDB+PDB

    无人值守安装Oracle 12CR2单机CDB+PDB,只需要15分钟?没错,通过脚本静默安装,真的只需要15分钟,包括安装补丁,建库. 脚本下载链接:SHELL脚本进行oracle数据库一键安装,实 ...

  7. 30分钟!一键部署Oracle 19C单机CDB+PDB

    无人值守安装Oracle 19C单机CDB+PDB,只需要30分钟?没错,通过脚本静默安装,真的只需要30分钟,包括安装补丁,建库. 脚本下载链接:SHELL脚本进行oracle数据库一键安装,实现真 ...

  8. iops oracle 视图,Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理

    Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理 在以前的版本中,没有简单的方法来控制单个PDB使用的磁盘I / O量. 因此,某个PDB可能耗尽大量磁盘I / O ...

  9. 20分钟!一键部署Oracle 18C单机CDB+PDB

    无人值守安装Oracle 18C单机CDB+PDB,只需要20分钟?没错,通过脚本静默安装,真的只需要20分钟,包括安装补丁,建库. 脚本下载链接:SHELL脚本进行oracle数据库一键安装,实现真 ...

最新文章

  1. tomcat结构分析
  2. 测试Python下载图片的三种方法
  3. 云笔记项目-Spring事务学习-传播MANDATORY
  4. 医学图像~脑分类数据fMRI, voxel
  5. OpenGL 镜面反射 IBL
  6. 阅读《构建之法》1-5章
  7. 梦幻西游服务器维护到几点,《梦幻西游》维护到几点 梦幻西游维护时间
  8. 微信小程序 没有找到 node_modules 目录
  9. Core data 框架
  10. 远程工作两个月的体会(转)
  11. 基于SSM实现旅游住宿和导游系统
  12. 安卓硬件模拟大师_安卓虚拟大师 可以手机运行免root带xp框架模拟器
  13. php论坛源代码,php论坛源代码下载
  14. Linux服务器下安装ANSYS
  15. dzz云桌面1.2演示,及部分功能详细介绍
  16. 学python入门基础教程[推荐]
  17. ipad中的神级笔记软件 Notability的使用方法
  18. mysql实现俩个属性加减运算_mysql加减乘除
  19. springBoot+thymeleaf框架实现cms内容管理和商城系统
  20. SIMULIA仿真技术研讨会浙江专场

热门文章

  1. [基础]qml基础控件(Text)
  2. Linux tcp xmit 定时器
  3. 巨杉数据库入选2020年广州市大数据优秀案例名单
  4. 我的Qt作品(17)OpenCV畸变标定,针对单张圆点图片实现畸变校正
  5. day12 单例设计模式
  6. 学习打卡-真-第16天(补发) 炉石yyds
  7. 虚拟DOM和真实DOM的区别和联系
  8. Vue 上传照片要求 Content-Type 为 multipart/form-data
  9. [Python-Pygame]无中生有开发自己的2D动作游戏生成敌人
  10. 我的世界服务器自定义怪物使用,我的世界自定义怪物