Oracle可刷新克隆PDB
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相关推荐
- 可刷新的 PDB(PDB Refresh)
可刷新的 PDB(PDB Refresh) https://docs.oracle.com/en/database/oracle/oracle-database/18/multi/administer ...
- oracle19c克隆PDB
一.本地克隆 本地克隆非常简单,一条命令: SQL> create pluggable database testmove4 from testmove2 file_name_convert=( ...
- Oracle 12C CDB、PDB常用管理命令
--查看PDB信息(在CDB模式下) show pdbs --查看所有pdb select name,open_mode from v$pdbs; --v$pdbs为PDB信息视图 select co ...
- oracle的cbd和pdb区别,Oracle 12C CDB、PDB常用管理命令
Oracle 12C CDB.PDB常用管理命令 --查看PDB信息(在CDB模式下) show pdbs --查看所有pdbselect name,open_mode from v$pdbs; -- ...
- Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理
Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理 在以前的版本中,没有简单的方法来控制单个PDB使用的磁盘I / O量. 因此,某个PDB可能耗尽大量磁盘I / O ...
- 15分钟!一键部署Oracle 12CR2单机CDB+PDB
无人值守安装Oracle 12CR2单机CDB+PDB,只需要15分钟?没错,通过脚本静默安装,真的只需要15分钟,包括安装补丁,建库. 脚本下载链接:SHELL脚本进行oracle数据库一键安装,实 ...
- 30分钟!一键部署Oracle 19C单机CDB+PDB
无人值守安装Oracle 19C单机CDB+PDB,只需要30分钟?没错,通过脚本静默安装,真的只需要30分钟,包括安装补丁,建库. 脚本下载链接:SHELL脚本进行oracle数据库一键安装,实现真 ...
- iops oracle 视图,Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理
Oracle 12C R2-新特性-PDB的磁盘I/O(IOPS,MBPS)资源管理 在以前的版本中,没有简单的方法来控制单个PDB使用的磁盘I / O量. 因此,某个PDB可能耗尽大量磁盘I / O ...
- 20分钟!一键部署Oracle 18C单机CDB+PDB
无人值守安装Oracle 18C单机CDB+PDB,只需要20分钟?没错,通过脚本静默安装,真的只需要20分钟,包括安装补丁,建库. 脚本下载链接:SHELL脚本进行oracle数据库一键安装,实现真 ...
最新文章
- tomcat结构分析
- 测试Python下载图片的三种方法
- 云笔记项目-Spring事务学习-传播MANDATORY
- 医学图像~脑分类数据fMRI, voxel
- OpenGL 镜面反射 IBL
- 阅读《构建之法》1-5章
- 梦幻西游服务器维护到几点,《梦幻西游》维护到几点 梦幻西游维护时间
- 微信小程序 没有找到 node_modules 目录
- Core data 框架
- 远程工作两个月的体会(转)
- 基于SSM实现旅游住宿和导游系统
- 安卓硬件模拟大师_安卓虚拟大师 可以手机运行免root带xp框架模拟器
- php论坛源代码,php论坛源代码下载
- Linux服务器下安装ANSYS
- dzz云桌面1.2演示,及部分功能详细介绍
- 学python入门基础教程[推荐]
- ipad中的神级笔记软件 Notability的使用方法
- mysql实现俩个属性加减运算_mysql加减乘除
- springBoot+thymeleaf框架实现cms内容管理和商城系统
- SIMULIA仿真技术研讨会浙江专场
热门文章
- [基础]qml基础控件(Text)
- Linux tcp xmit 定时器
- 巨杉数据库入选2020年广州市大数据优秀案例名单
- 我的Qt作品(17)OpenCV畸变标定,针对单张圆点图片实现畸变校正
- day12 单例设计模式
- 学习打卡-真-第16天(补发) 炉石yyds
- 虚拟DOM和真实DOM的区别和联系
- Vue 上传照片要求 Content-Type 为 multipart/form-data
- [Python-Pygame]无中生有开发自己的2D动作游戏生成敌人
- 我的世界服务器自定义怪物使用,我的世界自定义怪物