首页 > 其他分享 >18c新特性——PDB snapshot Carousel 快照轮转

18c新特性——PDB snapshot Carousel 快照轮转

时间:2023-04-18 13:34:40浏览次数:52  
标签:18c SCN 快照 NAME SNAPSHOT snapshot PDB CON


一、 关于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。

18c新特性——PDB snapshot Carousel 快照轮转_闪回


一个通用的策略是每天在同一时间生成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.pdb
    3 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 PDB
   3  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.pdb

   3 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,SCN,快照,NAME,SNAPSHOT,snapshot,PDB,CON
From: https://blog.51cto.com/u_13631369/6203186

相关文章

  • 15天玩转redis —— 第十篇 对快照模式的深入分析
       我们知道redis是带有持久化这个能力了,那到底持久化成到哪里,持久化成啥样呢???这篇我们一起来寻求答案。 一:快照模式或许在用Redis之初的时候,就听说过redis有两种持久化模式,第一种是SNAPSHOTTING模式,还是一种是AOF模式,而且在实战场景下用的最多的莫过于SNAPSHOTT......
  • 在EasyCVR中点击电子地图,出现快照不消失情况是什么原因?
    EasyCVR视频融合平台基于云边端一体化架构,部署轻快、功能灵活,平台可支持多协议、多类型设备接入,包括:国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等(具体见下图)。在视频能力上,可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、电子地图、......
  • vmdk”或它所依赖的某个快照磁盘 找不到文件: .vmdk
    原因:因为最开始创建了A虚拟机,后面才复制了B、C,但坑就是如果不是“完整复制”,所以B、C共享了A虚拟机的一些文件,所以当移动位置时,需要重新指定A虚拟机的指定共享的文件,所以提示说“找不到文件: ***.vmdk”时你需要去A虚拟机目录下选择而不是当前(B/C)。......
  • OMV在ZFS做自动快照计划
    在OMV计划任务中添加两条计划,1、添加计划任务,按选项选择合适的任务时间周期,在命令行加填写:zfssnapshotzfspool@snapshot_$(date+%Y%m%d%H%M%S)snapshot_为快照名前缀,$(date+%Y%m%d)为根据当期日期时间生成快照名的后缀。2、添加计划任务,删除一周前快照zfsdestroyzfspool@......
  • 在EasyCVR中点击电子地图,出现快照不消失情况是什么原因?
    EasyCVR视频融合平台基于云边端一体化架构,部署轻快、功能灵活,平台可支持多协议、多类型设备接入,包括:国标GB28181、RTMP、RTSP/Onvif、海康Ehome、海康SDK、大华SDK、宇视SDK等(具体见下图)。在视频能力上,可实现视频直播、录像、回放、检索、云存储、告警上报、语音对讲、电子地图、集......
  • 02 快照功能
    1.点击拍摄快照  2.为快照命名  3.经过上面二个步骤的操作后(已经快照完后才能点击克隆)  4.选择想从哪个状态创建克隆?  5.选择恢复到快照,相当于电脑的一键恢复,一键还原  6.从第四步开始,点击下一步后,点击创建完整克隆  7.新建虚拟机名字  8.创建......
  • 【阿里云】阿里云的快照功能使用
    前言阿里云在做一次大的变更的时候,需要先做快照,确保当前的数据,今天我们来看看快照功能如何使用登陆阿里云后台后的操作1.选择左边的云服务器2.选择云盘-创建快照3.填写快照名称-创建4.选择快照-查看,进度百分百算完成5.回滚测试点击回滚磁盘即可,一定要写好名字,要不下次找不到......
  • AI视频融合平台EasyCVR播放器快照优化:快照名称增加设备与通道名
    EasyCVR视频融合平台基于云边端协同架构,能支持海量视频的轻量化接入与汇聚管理,可提供视频监控直播、云端录像、云存储、录像检索与回看、智能告警、平台级联、智能分析等视频服务。近期我们对EasyCVR平台的播放器快照功能进行了优化。此前,点击快照截图后,生成文件名称没有包含设备和......
  • btrfs 创建快照
    ### 1. 创建用户存档目录btrfs subvolume snapshot /snapshot/area_user_data/1_1 /snapshot/area_user_data/${UID}### 2. 创建游戏软连接btrfs subvolume snapshot /snapshot/area_game_data/${game_id}_${game_version} /snapshot/area_user_game_data/${uid}_${ga......
  • idea子项目打jar包错误 Could not find artifact xxx:pom:1.0-SNAPSHOT 解决办法
    idea子项目打jar包错误Couldnotfindartifactxxx:pom:1.0-SNAPSHOT解决办法原文链接:https://blog.csdn.net/a459471027/article/details/124195296项目结构如下:......