参考资料:

  • Switching Over a Refreshable Clone PDB

About Refreshable Clone PDBs

refresh pdb使用情况如:原PDB所在CDB的主机资源紧张,可以迁走部分PDB减轻主机压力。 或者对PDB做容灾使用等。PDB的刷新可以分两种, 手动刷新和自动刷新。

自动和手动刷新模式
您可以将克隆 PDB 配置为按设定的时间间隔自动刷新,也可以使用ALTER PLUGGABLE DATABASE REFRESH语句手动刷新它。该REFRESH MODE子句仅在CREATE PLUGGABLE DATABASE ... FROM语句中受支持。您可以使用此子句指定以下选项之一:指定REFRESH MODE NONE默认值以创建不可刷新的 PDB。您可以将可刷新的克隆 PDB 更改为普通 PDB,方法是REFRESH MODE NONE在语句中包含该子句,ALTER PLUGGABLE DATABASE然后以读/写模式打开 PDB。您不能将普通 PDB 更改为可刷新的克隆 PDB。可刷新克隆 PDB 转换为普通 PDB 后,您无法将其改回可刷新克隆 PDB。指定REFRESH MODE MANUAL创建必须手动刷新的可刷新 PDB。指定创建一个可刷新的 PDB,该 PDB 在指定的分钟数过后自动刷新。使用自动刷新的可刷新 PDB 也可以手动刷新。 REFRESH MODE EVERY number_of_minutes MINUTES

支持三种类型的源端数据库,分别是Local PDB/PDB in a remote CDB/Non-CDB。不管是本地还是远程,都需要创建dblink。

本次测试案例使用同一个CDB,需要使用的PDB为PDB01

SQL> show  pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       READ ONLY  NO3 PDB01                          READ WRITE NO4 PDB02                          MOUNTED
SQL> 

1、确保PDB01是read write状态

In SQL*Plus, connect to cdb1 as a user with administrator privileges, and then ensure sure that cdb1_pdb1 is open in read/write mode (sample output included):

SQL> show  pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       READ ONLY  NO3 PDB01                          READ WRITE NO4 PDB02                          MOUNTED
SQL> 

2、创建一个common用户

Create a common user named c##u1 (replace pwd with a user-specified password):

DROP USER c##u1 CASCADE;
CREATE USER c##u1 IDENTIFIED BY pwd;
GRANT CREATE SESSION, RESOURCE, CREATE ANY TABLE, UNLIMITED TABLESPACE TO c##u1 CONTAINER=ALL;
GRANT CREATE PLUGGABLE DATABASE TO c##u1 CONTAINER=ALL;
GRANT SYSOPER TO c##u1 CONTAINER=ALL;
SQL> CREATE USER c##u1 IDENTIFIED BY tiger;User created.SQL> GRANT CREATE SESSION, RESOURCE, CREATE ANY TABLE, UNLIMITED TABLESPACE TO c##u1 CONTAINER=ALL;Grant succeeded.SQL> GRANT CREATE PLUGGABLE DATABASE TO c##u1 CONTAINER=ALL;
GRANT SYSOPER TO c##u1 CONTAINER=ALL;
Grant succeeded.SQL> Grant succeeded.SQL> 

3、创建PDB01容器的测试数据

Set the container to cdb1_pdb1, and then create a table t1 to use for testing (sample output included):

ALTER SESSION SET CONTAINER = cdb1_pdb1;
CREATE TABLE t1(n1 NUMBER);
INSERT INTO t1 VALUES(1);
COMMIT;
SELECT * FROM t1;N1
----------1

SQL> ALTER SESSION SET CONTAINER =PDB01;Session altered.SQL> create table t1(id int);Table created.SQL> insert into t1 values (1);1 row created.SQL> commit;Commit complete.SQL> select * from t1 2  ;ID
----------1SQL> 

4、连接目标端,创建common用户,由于的源端和目标端是同一个CDB,并且在第二步已经创建common用户,这步就可以忽略

Connect to cdb2 as a user with administrator privileges, and then create the common user named c##u1 (replace pwd with a user-specified password):

CONNECT SYS@cdb2 AS SYSDBA
Enter password: *******DROP USER c##u1 CASCADE;
CREATE USER c##u1 IDENTIFIED BY pwd;
GRANT CREATE SESSION, RESOURCE, CREATE ANY TABLE, UNLIMITED TABLESPACE TO c##u1 CONTAINER=ALL;
GRANT CREATE PLUGGABLE DATABASE TO c##u1 CONTAINER=ALL;
GRANT SYSOPER TO c##u1 CONTAINER=ALL;

5、创建到源库的DB LINK

Create a database link to cdb1.

The following command specifies user c##u1, password pwd, and service name cdb1:

CREATE DATABASE LINK cdb1_datalink CONNECT TO c##u1 IDENTIFIED BY pwd USING 'cdb1';

配置到PDB01的tns

PDB01 =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = oracle19cnoadg)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = pdb01)))

检查监听

[oracle@oracle19cnoadg ~]$ lsnrctl statusLSNRCTL for Linux: Version 19.0.0.0.0 - Production on 27-APR-2022 11:27:36Copyright (c) 1991, 2019, Oracle.  All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle19cnoadg)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                27-APR-2022 11:27:11
Uptime                    0 days 0 hr. 0 min. 25 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /home/oracle/database/network/admin/listener.ora
Listener Log File         /oracle/app/diag/tnslsnr/oracle19cnoadg/listener/alert/log.xml
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle19cnoadg)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "86b637b62fdf7a65e053f706e80a27ca" has 1 instance(s).Instance "prodpdb", status READY, has 1 handler(s) for this service...
Service "dd5eb78e33395714e0531f28a8c07bd2" has 1 instance(s).Instance "prodpdb", status READY, has 1 handler(s) for this service...
Service "dd6379106a279583e0531f28a8c06b78" has 1 instance(s).Instance "prodpdb", status READY, has 1 handler(s) for this service...
Service "pdb01" has 1 instance(s).Instance "prodpdb", status READY, has 1 handler(s) for this service...
Service "pdb02" has 1 instance(s).Instance "prodpdb", status READY, has 1 handler(s) for this service...
Service "prodpdb" has 1 instance(s).Instance "prodpdb", status READY, has 1 handler(s) for this service...
Service "prodpdbXDB" has 1 instance(s).Instance "prodpdb", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@oracle19cnoadg ~]$ 

创建DB LINK,并测试连通性

SQL> CREATE DATABASE LINK PDB01 CONNECT TO c##u1 IDENTIFIED BY tiger using 'PDB01';Database link created.SQL>
SQL> select * from dual@PDB01;D
-
XSQL> 

6、创建手动模式刷新PDB

Create the manually refreshable PDB named cdb1_pdb1_ref

The following statement specifies the database link cdb1_datalink and the file destination /dsk1/df:

CREATE PLUGGABLE DATABASE cdb1_pdb1_ref FROM cdb1_pdb1@cdb1_datalink CREATE_FILE_DEST='/dsk1/df' REFRESH MODE MANUAL;
SQL> CREATE PLUGGABLE DATABASE REFRESH_PDB FROM pdb01@PDB01 CREATE_FILE_DEST='/oracle/app/oradata/PRODPDB' REFRESH MODE MANUAL;Pluggable database created.SQL> 

日志:

CREATE PLUGGABLE DATABASE REFRESH_PDB FROM pdb01@PDB01 CREATE_FILE_DEST='/oracle/app/oradata/PRODPDB' REFRESH MODE MANUAL
2022-04-27T11:33:28.147208+08:00
PDB01(3): AUDSYS.AUD$UNIFIED (SQL_TEXT) - CLOB populated
2022-04-27T11:33:32.713910+08:00
REFRESH_PDB(5):Endian type of dictionary set to little
****************************************************************
Pluggable Database REFRESH_PDB with pdb id - 5 is created as UNUSABLE.
If any errors are encountered before the pdb is marked as NEW,
then the pdb must be dropped
local undo-1, localundoscn-0x0000000000000118
****************************************************************
2022-04-27T11:33:34.805604+08:00
Applying media recovery for pdb-3 from SCN 3451756 to SCN 3451805
Remote log information: count-1
thr-1, seq-33, logfile-/oracle/app/fast_recovery_area/PRODPDB/foreign_archivelog/PDB01/2022_04_27/o1_mf_1_33_2753998305_.arc, los-3413276, nxs-18446744073709551615
REFRESH_PDB(5):Media Recovery Start
2022-04-27T11:33:34.832692+08:00
REFRESH_PDB(5):Serial Media Recovery started
REFRESH_PDB(5):max_pdb is 8
2022-04-27T11:33:35.062703+08:00
REFRESH_PDB(5):Media Recovery Log /oracle/app/fast_recovery_area/PRODPDB/foreign_archivelog/PDB01/2022_04_27/o1_mf_1_33_2753998305_.arc
2022-04-27T11:33:36.287440+08:00
REFRESH_PDB(5):Incomplete Recovery applied until change 3451805 time 04/27/2022 11:33:34
2022-04-27T11:33:36.304641+08:00
REFRESH_PDB(5):Media Recovery Complete (prodpdb)
2022-04-27T11:33:36.448659+08:00
Deleted Oracle managed file /oracle/app/fast_recovery_area/PRODPDB/foreign_archivelog/PDB01/2022_04_27/o1_mf_1_33_2753998305_.arc
Completed: CREATE PLUGGABLE DATABASE REFRESH_PDB FROM pdb01@PDB01 CREATE_FILE_DEST='/oracle/app/oradata/PRODPDB' REFRESH MODE MANUAL

7、刷新PDB

Refresh cdb1_pdb1_ref:

ALTER SESSION SET CONTAINER = cdb1_pdb1_ref;
ALTER PLUGGABLE DATABASE REFRESH;
SQL> ALTER SESSION SET CONTAINER = REFRESH_PDB;Session altered.SQL> ALTER PLUGGABLE DATABASE REFRESH;Pluggable database altered.SQL> 

8、检查测试表T1的值

Query t1 to check that the refreshable clone PDB contains the correct contents (sample output included):

ALTER PLUGGABLE DATABASE OPEN READ ONLY;
SELECT * FROM t1;N1
----------1
SQL> ALTER PLUGGABLE DATABASE REFRESH_PDB open read only ;Pluggable database altered.SQL> ALTER SESSION SET CONTAINER = REFRESH_PDB;Session altered.SQL> show con_nameCON_NAME
------------------------------
REFRESH_PDB
SQL> select * from t1;ID
----------1SQL> 

可以通过下面的方式更新刷新方式

alter pluggable database refresh_pdb refresh mode manual;
alter pluggable database refresh_pdb refresh mode every 1 hours;
alter pluggable database refresh_pdb refresh mode every 1 minutes;
alter pluggable database refresh_pdb refresh mode none;

查看PDB的刷新方式

SQL> col pdb_name for a30
SQL> select pdb_name, REFRESH_MODE,REFRESH_INTERVAL from dba_pdbs;PDB_NAME                       REFRES REFRESH_INTERVAL
------------------------------ ------ ----------------
PDB01                          NONE
PDB$SEED                       NONE
REFRESH_PDB                    MANUAL
PDB02                          NONESQL>
SQL> alter pluggable database refresh_pdb refresh mode every 1 minutes;Pluggable database altered.SQL> select pdb_name, REFRESH_MODE,REFRESH_INTERVAL from dba_pdbs;PDB_NAME                       REFRES REFRESH_INTERVAL
------------------------------ ------ ----------------
PDB01                          NONE
PDB$SEED                       NONE
REFRESH_PDB                    AUTO                  1
PDB02                          NONESQL> 

自动刷新的时候提示如下:

2022-04-27T11:43:49.574834+08:00
REFRESH_PDB(5):alter pluggable database refresh
REFRESH_PDB(5):REFRESH_PDB(5):ERROR:PDB needs to be closed for auto refresh
REFRESH_PDB(5):Completed: alter pluggable database refresh

把PDB启动关闭,再次查看日志

REFRESH_PDB(5):alter pluggable database refresh
2022-04-27T11:46:52.850937+08:00
Applying media recovery for pdb-3 from SCN 3452320 to SCN 3452701
Remote log information: count-1
thr-1, seq-33, logfile-/oracle/app/fast_recovery_area/PRODPDB/foreign_archivelog/PDB01/2022_04_27/o1_mf_1_33_2753998305_.arc, los-3413276, nxs-18446744073709551615
REFRESH_PDB(5):Media Recovery Start
2022-04-27T11:46:52.860697+08:00
REFRESH_PDB(5):Serial Media Recovery started
REFRESH_PDB(5):max_pdb is 8
2022-04-27T11:46:52.917859+08:00
REFRESH_PDB(5):Media Recovery Log /oracle/app/fast_recovery_area/PRODPDB/foreign_archivelog/PDB01/2022_04_27/o1_mf_1_33_2753998305_.arc
2022-04-27T11:46:53.254925+08:00
REFRESH_PDB(5):Incomplete Recovery applied until change 3452701 time 04/27/2022 11:46:50
2022-04-27T11:46:53.259891+08:00
REFRESH_PDB(5):Media Recovery Complete (prodpdb)
2022-04-27T11:46:53.453766+08:00
Deleted Oracle managed file /oracle/app/fast_recovery_area/PRODPDB/foreign_archivelog/PDB01/2022_04_27/o1_mf_1_33_2753998305_.arc
REFRESH_PDB(5):Completed: alter pluggable database refresh

验证数据

SQL> alter session set container=REFRESH_PDB;Session altered.SQL> alter database open read only;Database altered.SQL>
SQL> select * from t1;ID
----------12SQL> 

9、激活PDB为read write模式. (这步也可以和源库PDB做switchover)

SQL> alter pluggable database REFRESH_PDB close immediate instances=all;Pluggable database altered.SQL> show pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       READ ONLY  NO3 PDB01                          READ WRITE NO4 PDB02                          MOUNTED5 REFRESH_PDB                    MOUNTED
SQL>  alter pluggable database REFRESH_PDB refresh mode none;Pluggable database altered.SQL> show pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       READ ONLY  NO3 PDB01                          READ WRITE NO4 PDB02                          MOUNTED5 REFRESH_PDB                    MOUNTED
SQL> col pdb_name for a30
SQL> select pdb_name, REFRESH_MODE,REFRESH_INTERVAL from dba_pdbs;PDB_NAME                       REFRES REFRESH_INTERVAL
------------------------------ ------ ----------------
PDB01                          NONE
PDB$SEED                       NONE
REFRESH_PDB                    NONE
PDB02                          NONESQL>
SQL> alter pluggable database REFRESH_PDB open read write;Pluggable database altered.SQL> show pdbsCON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------2 PDB$SEED                       READ ONLY  NO3 PDB01                          READ WRITE NO4 PDB02                          MOUNTED5 REFRESH_PDB                    READ WRITE NO
SQL> alter session set container=REFRESH_PDB;Session altered.SQL> select * from t1;ID
----------12SQL> 

[2022-04-27] refresh PDB相关推荐

  1. 音视频面试题集锦 2022.04

    下面是 2022.04 月音视频面试题集锦内容的节选: 1)RTMP 消息分优先级的设计有什么好处? RTMP 的消息优先级是:控制消息 > 音频消息 > 视频消息.当网络传输能力受限时, ...

  2. 问卷量表调研结果 - data 2022.2.27周五

    问卷量表调研结果 - data 2022.2.27周五 调研要求: 找接口asp类型的,寻找其方法 退而求其次!在网站上找链接,做完以后找到它的答案页面,记录链接以后反馈给用户,或者从她的源代码找到代 ...

  3. 2022.04.17-高宝琪毕设阶段性汇报

    第12次汇报 (2022.04.17) 实现了第三部分(分析数字化的心电数据)! 并将二.三两部分("纸质心电图数字化"和"分析数字化的心电数据")连通成了一个 ...

  4. 2022.04.10-高宝琪毕设阶段性汇报

    第11次汇报 (2022.04.10) 经过了几天的努力, 终于跑通了最后的"分析数字化后的心电数据"这一部分; 采用了Flask框架将一个Keras深度学习模型部署到了Web端, ...

  5. Windows下显卡支持的cuda及配套GPU版本pytorch下载全流程(2022.03.27)

    Windows下显卡支持的cuda及配套GPU版本pytorch下载全流程(2022.03.27) 一.更新电脑显卡驱动(以mx150为例) 1.打开英伟达驱动下载官网:https://www.nvi ...

  6. 【mysql入门笔记01 2022.9.27】

    mysql入门笔记01 2022.9.27 数据库概念 数据库管理系统 关系型数据库(RDBMS) 非关系型数据库(NoSQL) SQL概念 Mysql 版本 Mysql安装 Mysql启动 方式一 ...

  7. English Learning - Day21 作业打卡 2022.12.27 周二

    English Learning - Day21 作业打卡 2022.12.27 周二 引言 一.给出如下短语的汉语释义 1. vanished youth 2. faded flowers 3. o ...

  8. 2022.04精灵宝可梦国内在线观看渠道整理

    目前只整理TV版 精灵宝可梦无印(EP) 271话 哔哩哔哩 精灵宝可梦超世代(AG) 188话 哔哩哔哩 精灵宝可梦钻石与珍珠(DP) 185话 哔哩哔哩 精灵宝可梦超级愿望(BW) 144话 哔哩 ...

  9. 【总结】包和模块(2022.4.27)

    [总结]包和模块(2022.4.27) 1.模块 1.1 模块是什么 python中一个py文件就是一个模块 1.2 如何在模块中使用另一个模块的内容 1)前提:被使用的模块的模块名(py文件的文件名 ...

  10. minGW 2022/7/27 安装教程 简单可用

    minGW 2022/7/27 安装教程 简单可用 链接: linkhttp://c.biancheng.net/view/8114.html

最新文章

  1. [Python web开发] Web框架开发基础 (一)
  2. mysql limit 和 offset用法
  3. 适合 Python 入门的 8 款强大工具,赶紧收藏一波!
  4. 输油管道问题 测试数据_建立测试时要考虑的数据管道
  5. 第 13 章 外观模式
  6. python进阶教程之异常处理
  7. Atititi atiitt eam pam资产管理 购物表去年.xlsx
  8. godaddy无法修改域名服务器,GoDaddy域名修改DNS教程 - 修改DNSPOD及CLOUDXNS免费DNS
  9. 月销10w支!不用洗牙,牙齿也能白到发光!买它,这支黑科技美白电动牙刷
  10. 现货K线图知识之五:北坡炮兵并排跑
  11. 电脑如何录制在线课程?-QVE屏幕录制
  12. 【转】什么是预研?产品预研与技术预研
  13. FPGA实现按键检测消抖程序
  14. 直播app源代码,Http方式请求网络
  15. 提车二月记--小鹏P7
  16. objective-c常见类型%z
  17. 单片机串口通讯RXD与TXD如何对接详解
  18. shmget函数与shmat
  19. 如果装完柜还剩很多空间,该怎么办?
  20. 软件开发模型1:边做边改模型/瀑布模型/快速原型模型

热门文章

  1. 关于Hbase手动实现Major Compact的办法
  2. mysql_sniffer安装
  3. geth 搭建 私有链节点
  4. 河南科技大学计算机学院录取名单,【计算机考研复试通知】2018年河南科技大学硕士研究生复试通知...
  5. Python数据分析之时间处理技巧1,2,3
  6. srm 592 div 2
  7. MIR7 金额计算公式
  8. 基础数学4:导数、偏导数、方向导数、梯度、全微分回顾
  9. 平面设计文字排版方式有哪些?设计师们收藏——黎乙丙
  10. 【C语言经典100题】乒乓球队的比赛