在 Oracle 18C 数据库中, 创建 PDB 时可以同时为 PDB 创建快照, 完整的保存快照创建时间点的 PDB 数据. PDB 快照主要有两个作用:
通过闪回恢复数据到快照时间点
使用快照 PDB 查询历史数据
每个 PDB 快照都会关联一个快照名称, 可以在创建时定义也可以由系统自动生成. 同时, 每个快照也会关联创建时的时间戳和 SCN. 每个 PDB 允许保存的最大 PDB 快照数量由 MAX_PDB_SNAPSHOTS 属性控制, 最大和默认值均为 8. 当创建的 PDB 快照数量超过定义时, 最先创建的 PDB 快照将会被删除. 使用 alter database 命令可以修改最大允许的 PDB 快照数量, 如果将限制设为 0, 则会删除所有的 PDB 快照.
PDB 创建时默认开始快照功能, 可以通过两种方式对 PDB 快照进行定义:
1. 手工方式
创建或修改 PDB 是指定 snapshot mode manual 字句, 这是 PDB 创建时的默认行为
create pluggable database pdb1 snapshot mode manual;
2. 定义一个自动创建的时间周期
alter pluggable database pdb1 snapshot mode every 24 hours;
当时间量以分钟表示时, 指定值必须小于 3000; 当时间量以小时表示时, 指定值不能超过 2000.
PDB 快照创建完成后, 可以利用其创建新的 PDB. 使用的 PDB 快照可通过快照名称, 快照 SCN 或者快照时间戳来指定.
- create pluggable database pdb1_day_1 from pdb1 using snapshot <snapshot_name>;
- create pluggable database pdb1_day_2 from pdb1 using snapshot at scn <snapshot_SCN>;
在出现用户错误或其他极端情况时, PDB 快照还可用于对 PDB 的闪回. 实施步骤如下:
1. 关闭 PDB1
2. 从指定 PDB 快照创建新的 PDB
3. 删除 PDB1
4. 重命名新的 PDB 为 PDB1
5. 打开 PDB1
来源: http://www.linuxidc.com/Linux/2018-08/153474.htm