18c新特性——PDB snapshot Carousel 快照轮转
一、 关于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 快照轮转相关推荐
- 专家视角 | 小荷的 Oracle Database 18c 新特性快速一瞥
作者介绍:何剑敏 大疆创新 互联网事业部 运维部数据库技术团队负责人,曾供职于中国联通,卓望数码,IBM 和 ORACLE ACS 华南团队.多年从事一线的数据库运维工作,有丰富项目经验.维护经验和 ...
- Oracle 12.2 新特性--PDB和CDB的字符集可以不一样
Oracle 12.2 新特性--PDB和CDB的字符集可以不一样 在 12.1 中, PDB 的字符集与 root 容器必须保持一致,这样无形中造成了 PDB 迁移或者克隆的限制性.从 12.2 开 ...
- oracle18c升级19,Oracle 18C新特性测试之滚动升级
原标题:Oracle 18C新特性测试之滚动升级 7月24日Oracle 18c通用版本正式对外发布后,三墩IT人在第一时间选取了Oracle 18c PDB在数据同步.迁移.切换方面的三项新功能的测 ...
- Oracle 18c新特性:多租户舰队 CDB Fleet
Oracle 18c新特性:多租户舰队 CDB Fleet 在 Oracle 18c 中,多租户的一个新特性 CDB Fleet 被引入进来,我们可以把这个特性称为:多租户舰队.(关注本公众号: Or ...
- Oracle 18c新特性详解-多租户专题
Oracle 18c,传说中全球第一款自动驾驶数据库,正式到来.18c不仅仅是数据库,更是一种云服务,包括着Oracle数据库18c,Oracle云基础架构和Oracle云工具,机器学习,能够实现自治 ...
- Oracle 18c 新特性:动态 Container Map 增强 Application Container 灵活性
数据技术嘉年华等你来 活动预告:11.16-17日,北京市东三环中路61号富力万丽酒店,相聚数据技术嘉年华,(99元票务)免费购票倒计时,点击查看大会详情. 盖老师带来主题"稳筑基石,云帆万 ...
- Oracle 18c新特性:Schema-Only 帐号提升应用管理安全性
在 Oracle 18c 中,一个特殊类型的帐号被引入到数据库当中,这特特性被称为 Schema-Only 帐号,这个帐号通过 NO AUTHENTICATION 语句建立,没有密码,也就不允许直接登 ...
- Oracle 18c 新特性之CDB航母
给用户介绍Oracle多租户新特性时,多次忍不住将CDB比喻为航母,PDB则是停靠之上的舰载机.没想到18c竟然出了航母战斗群,^_^ 18c中引入了CDB fleet新特性,能够实现以下的功能: 扩 ...
- Oracle 12.2 新特性 | PDB不同字符集变更深入解析
从12c版本12.1开始,就有了新特性--Pluggable Database,相比较之前通过schema的管理方式实现多用户管理,Pluggable Database实现了进一步的隔离,其中包含如下 ...
- 12c闪回 oracle_Oracle 12c R2新特性: PDB级闪回(Flashback PDB)
闪回数据库在10G版本时引入,当数据产生逻辑错误或升级失败时,用于闪回数据库到指定时间点,在12C 多租户结构中增加了PDB概念,在恢复时通常为了节约时间和一致性做最小粒度的恢复,在12.1版本如果对 ...
最新文章
- easy C语言,C语言easy..doc
- pm2-zabbix 安装与配置
- java学习笔记总略
- 内外网映射 html缓存问题_浅谈内存映射
- [转]关于flash中图片(jpg\png\gif)旋转后锯齿(模糊)问题
- dds通信中间件_车内的中间件协议:是面向服务,还是以数据为中心,或是RESTful?...
- 【分享】华为总裁任正非谈企业管理:正确的方向来自于妥协
- python月份字符串_python实现字符串和日期相互转换的方法
- 微信小程序事件绑定无效
- 简单桌面导航html win10,IT之家学院:让你的Win10桌面比macOS还简洁漂亮高大上
- utorrent设置上传速度_utorrent下载速度很慢怎么设置?
- vscode unins000.exe报错,尝试在目标目录创造文件时发生错误
- FAT文件系统详解(二)
- Adam,AdamW,LAMB优化器原理与代码
- c语言程序设计 doc,C语言程序设计精彩资料100例.doc
- 用Python制作简单的小游戏
- 精华帖:最全的编程自学网站介绍,白嫖
- iOS 九宫格抽奖(弱鸡)
- 【爬虫】学习:aiohttp异步爬取
- 工业视觉系统相关知识和选型介绍(一):相机篇
热门文章
- 超级详细的 Maven 教程(基础+高级)
- 论文阅读笔记(16):Doubly Stochastic Subspace Clustering,双重随机子空间聚类
- 如何提高睡眠质量快速入睡,改善睡眠的小妙招你要知道
- DNS原理及其解析过程【精彩剖析】
- xmake v2.5.9 发布,改进 C++20 模块,并支持 Nim, Keil MDK 和 Unity Build
- html网上日记本设计,个人博客的设计_网上日记本的开发ASP334
- Scrapy爬虫四步法:爬取51job网站
- win7开机后桌面黑屏,提示副本不是正版的解决办法
- 如何有效的屏蔽百度蜘蛛
- RHCE(一、二)nmcli命令学习、Linux例行性工作命令atd和crond学习