在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 ; create pluggable database pdb1_day_2 from pdb1 using snapshot at scn ;
在出现用户错误或其他极端情况时,pdb快照还可用于对pdb的闪回。实施步骤如下:
关闭pdb1从指定pdb快照创建新的pdb删除pdb1重命名新的pdb为pdb1打开pdb1