一、 关于PDB快照轮转

18c新特性PDB快照轮转(Snapshot Carousel)提供了在pdb级别下手工或者自动生成快照的功能。

PDB快照主要有两个作用:

  • 通过闪回恢复数据到快照时间点
  • 使用快照PDB查询历史数据

CDB需要使用local undo并处于归档模式下。每个PDB快照都会关联一个快照名称,可以在创建时定义也可以由系统自动生成。同时,每个快照也会关联创建时的时间戳和SCN。

每个PDB允许保存的最大快照数由MAX_PDB_SNAPSHOTS属性控制(可用alter database命令修改),最大和默认值均为8。当创建的PDB快照数量超过设置值时,最旧的PDB快照将会被轮转覆盖。如果限制设为0,会删除所有的PDB快照。

如下图:pdb1_prod为生产PDB,创建refresh PDB pdb1_test_master,让refreshPDB pdb1_test_master每天生成快照。当你需要测试用例时,可以指定snapshot创建PDB。

一个通用的策略是每天在同一时间生成PDB快照,另一种策略是在变更之前手动打快照。在这两种情况下,都可以使用可用的快照恢复PDB。

二、 基本用法

PDB快照的文件存放于文件系统上的物理文件,默认存放在PDB的数据文件相同的目录中,其不包含数据库归档文件archive log。相关视图:MAX_PDB_SNAPSHOTS、DBA_PDB_SNAPSHOTS、DBA_PDBS

PDB创建时默认开启快照功能,可以通过两种方式对PDB快照进行定义:

1. 手工方式

指定snapshot mode manual子句手工创建pdb快照

create pluggable database pdb1 snapshot mode manual;

2. 自动方式

默认情况下都是手动生成快照,可使用以下语句查看

SELECT SNAPSHOT_MODE,SNAPSHOT_INTERVAL/60 FROM DBA_PDBS;SNAPSHOT_MODE SNAPSHOT_INTERVAL/60
------ ------------
MANUAL

使用SNAPSHOT MODE EVERY子句自动产生PDB快照,例如设置为每24小时生成PDB快照

alter session set container=ORCLPDB;ALTER PLUGGABLE DATABASE SNAPSHOT MODE EVERY 24 HOURS;-- 确认自动生成快照的时间间隔
SELECT SNAPSHOT_MODE,SNAPSHOT_INTERVAL/60 FROM DBA_PDBS;SNAPSHOT_MODE SNAPSHOT_INTERVAL/60
------        ------------
AUTO             24

当时间量以分钟表示时,指定值必须小于3000;当时间量以小时表示时,指定值不能超过2000。

系统自动生成的snapshot以snap_开始,唯一标示结尾的命名规则,包含了快照当前的SCN,且扩展名为.PDB。

3. 查询当前PDB快照

SELECT CON_ID,CON_NAME,SNAPSHOT_NAME,SNAPSHOT_SCN,FULL_SNAPSHOT_PATH
FROM DBA_PDB_SNAPSHOTS
ORDER BY SNAP_SCN;CON_ID CON_NAME   SNAPSHOT_NAME        SNAPSHOT_SCN FULL_SNAPSHOT_PATH
------- ---------- -------------------- -------- ---------------------------------------------3 CDB1_PDB1  CDB1_PDB1_B4WEDLOAD   2962078 /disk1/oracle/dbs/snap_3489077498_2962078.pdb3 CDB1_PDB1  CDB1_PDB1_AFWEDLOAD   2962938 /disk1/oracle/dbs/snap_3489077498_2962938.pdb

如果未指定快照名,系统会自动生成唯一名称的快照

ALTER PLUGGABLE DATABASE SNAPSHOT;SELECT CON_ID,CON_NAME,SNAPSHOT_NAME,SNAPSHOT_SCN,FULL_SNAPSHOT_PATH
FROM DBA_PDB_SNAPSHOTS
ORDER BY SNAP_SCN;CON_ID CON_NAME   SNAPSHOT_NAME        SNAP_SCN FULL_SNAPSHOT_PATH
---------- ---------- ------------------------- -------- ----------------------------------------------------3 ORCLPDB    SNAP_3034367141_987737800  2995234 /home/oradata/ORCL/orclpdb/snap_3034367141_2995234.pdb

4. 利用快照创建新PDB

PDB快照创建完成后,可以利用其创建新的PDB。使用的PDB快照可通过快照名称、快照SCN或者快照时间戳来指定。

从快照名创建PDB

create pluggable database pdb1_day_1 from pdb1 using snapshot <snapshot_name>;

基于SCN或时间点生产快照库

create pluggable database pdb1_day_2 from pdb1 using snapshot at scn <snapshot_SCN>;

与recover database until scn指定scn方式打开数据库不同,快照轮转只能指定创建快照时的scn,并且生成快照与利用快照创建pdb的时可能占据大量的物理空间与IO资源。

5. PDB快照用于对PDB的闪回

在出现用户错误或其他极端情况时,还可用于对PDB的闪回。实施步骤如下:

  • 关闭PDB1
  • 从指定PDB快照创建新的PDB
  • 删除PDB1
  • 重命名新的PDB为PDB1
  • 打开PDB1

6. 设置PDB快照的最大数量

使用MAX_PDB_SNAPSHOTS设置PDB最大快照数。登录到需要设置的PDB中,通过视图CDB_PROPERTIES查询当前设置值,可以使用alter pluggabledatabase或alter database更改MAX_PDB_SNAPSHOTS值。

SELECT r.CON_ID,p.PDB_NAME,PROPERTY_NAME,PROPERTY_VALUE,DESCRIPTION
FROM CDB_PROPERTIES r,CDB_PDBS p
WHERE r.CON_ID = p.CON_ID AND PROPERTY_NAME LIKE 'MAX_PDB%'
ORDER BY PROPERTY_NAME;CON_ID PDB_NAME  PROPERTY_NAME    PROPERTY_VALUE  DESCRIPTION
----- --------- ----------------- --------- ---------------------------------------------------------------3  ORCLPDB     MAX_PDB_SNAPSHOTS    7        maximum number of snapshots for a given PDB3  ORCLPDB     MAX_PDB_STORAGE      UNLIMITED  Maximum Space Usage of Datafiles and Local Tempfiles in Container

下面语句将当前pdb的快照数设置为7

alter session set container=ORCLPDB;
ALTER PLUGGABLE DATABASE SET MAX_PDB_SNAPSHOTS=7;

7. 删除快照

将MAX_PDB_SNAPSHOTS设置为0即可删除所有PDB快照,同时也关闭此功能。

ALTER PLUGGABLE DATABASE SET MAX_PDB_SNAPSHOTS=0;SELECT CON_ID,CON_NAME,SNAPSHOT_NAME,SNAPSHOT_SCN,FULL_SNAPSHOT_PATH FROM DBA_PDB_SNAPSHOTS ORDER BY SNAPSHOT_SCN;

也可以使用ALTER PLUGGABLE DATABASE删除指定快照。

SELECT CON_ID,CON_NAME,SNAPSHOT_NAME,SNAPSHOT_SCN,FULL_SNAPSHOT_PATH FROM DBA_PDB_SNAPSHOTS ORDER BY SNAPSHOT_SCN;CON_ID CON_NAME   SNAPSHOT_NAME        SNAP_SCN FULL_SNAPSHOT_PATH
---------- ---------- ------------------------- -------- -----------------------------------------------------3 ORCLPDB    CDB_CNDBA_20180813151200   2970060 /home/oradata/ORCL/orclpdb/snap_3034367141_2970060.pdb3 ORCLPDB    SNAP_3034367141_987737800  2995234 /home/oradata/ORCL/orclpdb/snap_3034367141_2995234.pdb-- 删除指定PDB快照
ALTER PLUGGABLE DATABASE DROP SNAPSHOT CDB_CNDBA_20180813151200;-- 再次查询PDB快照已经被删除
CON_ID CON_NAME   SNAPSHOT_NAME        SNAP_SCN FULL_SNAPSHOT_PATH
---------- ---------- ------------------------- -------- ---------------------------------------------------3 ORCLPDB    SNAP_3034367141_987737800  2995234 /home/oradata/ORCL/orclpdb/snap_3034367141_2995234.pdb

三、 快照轮转的缺点

1. 快照数量受限

虽然能够做到轮转,但毕竟数量有限,较为死板。在用户的实际测试环境中条件复杂多变,会限制测试环境的搭建。

2. 占据大量物理空间与IO资源

对于当前用户动辄几十T的数据量,在生成快照与用快照创建pdb的过程中,消耗的时间和占据的物理资源是巨大的。

3. 拘泥固定时间点

只能基于固定时间,即快照点创建,无法根据测试需要灵活指定时间点。面对不断变化的测试需求,如此死板的模式明显是不可能满足要求的。

4. 版本受限

最后是客观条件的限制,利用新特性需要在18c环境且启用了PDB功能,但目前很多用户依然是12.2及以下的环境,因此也仅仅只能远观而无法上手,对于实际工作很难产生推动作用。

参考

http://blog.itpub.net/26736162/viewspace-2653421/

https://docs.oracle.com/en/database/oracle/oracle-database/18/multi/administering-pdb-snapshots.html#GUID-FF6DF540-0C22-451C-80B3-1ACA8C8CB7D2

18c新特性——PDB snapshot Carousel 快照轮转相关推荐

  1. 专家视角 | 小荷的 Oracle Database 18c 新特性快速一瞥

    作者介绍:何剑敏  大疆创新 互联网事业部 运维部数据库技术团队负责人,曾供职于中国联通,卓望数码,IBM 和 ORACLE ACS 华南团队.多年从事一线的数据库运维工作,有丰富项目经验.维护经验和 ...

  2. Oracle 12.2 新特性--PDB和CDB的字符集可以不一样

    Oracle 12.2 新特性--PDB和CDB的字符集可以不一样 在 12.1 中, PDB 的字符集与 root 容器必须保持一致,这样无形中造成了 PDB 迁移或者克隆的限制性.从 12.2 开 ...

  3. oracle18c升级19,Oracle 18C新特性测试之滚动升级

    原标题:Oracle 18C新特性测试之滚动升级 7月24日Oracle 18c通用版本正式对外发布后,三墩IT人在第一时间选取了Oracle 18c PDB在数据同步.迁移.切换方面的三项新功能的测 ...

  4. Oracle 18c新特性:多租户舰队 CDB Fleet

    Oracle 18c新特性:多租户舰队 CDB Fleet 在 Oracle 18c 中,多租户的一个新特性 CDB Fleet 被引入进来,我们可以把这个特性称为:多租户舰队.(关注本公众号: Or ...

  5. Oracle 18c新特性详解-多租户专题

    Oracle 18c,传说中全球第一款自动驾驶数据库,正式到来.18c不仅仅是数据库,更是一种云服务,包括着Oracle数据库18c,Oracle云基础架构和Oracle云工具,机器学习,能够实现自治 ...

  6. Oracle 18c 新特性:动态 Container Map 增强 Application Container 灵活性

    数据技术嘉年华等你来 活动预告:11.16-17日,北京市东三环中路61号富力万丽酒店,相聚数据技术嘉年华,(99元票务)免费购票倒计时,点击查看大会详情. 盖老师带来主题"稳筑基石,云帆万 ...

  7. Oracle 18c新特性:Schema-Only 帐号提升应用管理安全性

    在 Oracle 18c 中,一个特殊类型的帐号被引入到数据库当中,这特特性被称为 Schema-Only 帐号,这个帐号通过 NO AUTHENTICATION 语句建立,没有密码,也就不允许直接登 ...

  8. Oracle 18c 新特性之CDB航母

    给用户介绍Oracle多租户新特性时,多次忍不住将CDB比喻为航母,PDB则是停靠之上的舰载机.没想到18c竟然出了航母战斗群,^_^ 18c中引入了CDB fleet新特性,能够实现以下的功能: 扩 ...

  9. Oracle 12.2 新特性 | PDB不同字符集变更深入解析

    从12c版本12.1开始,就有了新特性--Pluggable Database,相比较之前通过schema的管理方式实现多用户管理,Pluggable Database实现了进一步的隔离,其中包含如下 ...

  10. 12c闪回 oracle_Oracle 12c R2新特性: PDB级闪回(Flashback PDB)

    闪回数据库在10G版本时引入,当数据产生逻辑错误或升级失败时,用于闪回数据库到指定时间点,在12C 多租户结构中增加了PDB概念,在恢复时通常为了节约时间和一致性做最小粒度的恢复,在12.1版本如果对 ...

最新文章

  1. easy C语言,C语言easy..doc
  2. pm2-zabbix 安装与配置
  3. java学习笔记总略
  4. 内外网映射 html缓存问题_浅谈内存映射
  5. [转]关于flash中图片(jpg\png\gif)旋转后锯齿(模糊)问题
  6. dds通信中间件_车内的中间件协议:是面向服务,还是以数据为中心,或是RESTful?...
  7. 【分享】华为总裁任正非谈企业管理:正确的方向来自于妥协
  8. python月份字符串_python实现字符串和日期相互转换的方法
  9. 微信小程序事件绑定无效
  10. 简单桌面导航html win10,IT之家学院:让你的Win10桌面比macOS还简洁漂亮高大上
  11. utorrent设置上传速度_utorrent下载速度很慢怎么设置?
  12. vscode unins000.exe报错,尝试在目标目录创造文件时发生错误
  13. FAT文件系统详解(二)
  14. Adam,AdamW,LAMB优化器原理与代码
  15. c语言程序设计 doc,C语言程序设计精彩资料100例.doc
  16. 用Python制作简单的小游戏
  17. 精华帖:最全的编程自学网站介绍,白嫖
  18. iOS 九宫格抽奖(弱鸡)
  19. 【爬虫】学习:aiohttp异步爬取
  20. 工业视觉系统相关知识和选型介绍(一):相机篇

热门文章

  1. 超级详细的 Maven 教程(基础+高级)
  2. 论文阅读笔记(16):Doubly Stochastic Subspace Clustering,双重随机子空间聚类
  3. 如何提高睡眠质量快速入睡,改善睡眠的小妙招你要知道
  4. DNS原理及其解析过程【精彩剖析】
  5. xmake v2.5.9 发布,改进 C++20 模块,并支持 Nim, Keil MDK 和 Unity Build
  6. html网上日记本设计,个人博客的设计_网上日记本的开发ASP334
  7. Scrapy爬虫四步法:爬取51job网站
  8. win7开机后桌面黑屏,提示副本不是正版的解决办法
  9. 如何有效的屏蔽百度蜘蛛
  10. RHCE(一、二)nmcli命令学习、Linux例行性工作命令atd和crond学习