还原点概念
Restore point 有两种类型: Normal 和 Guaranteed。
1) Normal restore point
创建语法:create restore point rp_name;
相当于某个时间点或者 SCN 的一个别名。 restore point 的名字和对应的 SCN 会保存在控制文件中。创建了 normal restore point 后,如果需要执行 flashback database/flashback
table/point-in-time recovery 等操作时,就可以制定目标时间点为该 restore point,而不需要指定当时的 SCN 了。在很多关于恢复和闪回的试验中,作者都是在试验前查询系统当前的 SCN,执行某些操作,然后恢复或者闪回到之前查询到的 SCN。有了 normal restore point 后,就不再需要查询系统当前 scn 了,只需要创建一个有意思的 normal restore point 名,以后使用该名字即可。
—————————————————————————————————————————————
注 1: Normal restore point 保存在 undo 表空间中
2:必须拥有 SELECT ANY DICTIONARY 或 FLASHBACK ANY TABLE 权限才可以创建 Normal 还原点
—————————————————————————————————————————————
2) Guaranteed restore point
创建语法:
create restore point rp_name guarantee flashback database;
Guaranteed restore point 的功能和 normal restore point 的功能基本一致,也是作为SCN 的一个别名。但是它还有一些和 flashback database 相关的特性。前面也提到,在执行flashbackdatabase 到之前的某个时间点时,必须保证所需要的 flashback log 存在。
创建一个 guaranteed restore point,可以保证能将数据库 flashback 到该点,即使没有系统启用 flashback database 日志!这是因为,在创建 guaranteed restore point 之后,对于任何 block 的第一次变更,都会将其前映象整个的记录下来。
如果系统启用了 flashback database 日志,那么 guaranteed restore point 可以保证能将数据库 flashback 到 guaranteed restore point 之后的任何时间点。
一旦创建了可靠还原点,要密切关注 flashback_recovery_area 空间的使用情况,因为在创建guaranteed restore point 之后,对于任何 block 的第一次变更,都会将其前映象整个的记录下来。所以当不再使用某一可靠还原点后要及时删除;
——————————————————————————————————————————————
注 1: Guaranteed restore point 保存在闪回日志中
2:必须拥有 SYSDBA 系统权限才有权创建可靠还原点
3:必须启用快速恢复区
4:数据库必须处于归档模式
3) 删除语法: drop restore point point_name;
1.7.2. 测试基于可靠还原点闪回数据库
1) SCOTT 用户下创建测试表并插入一条记录
SCOTT@ORA11GR2>create table fbdb_point as select * from fbdb_scn where 1=2;
Table created.
SCOTT@ORA11GR2>insert into fbdb_point select 1 as id,dbms_flashback.get_system_change_number as scn,sysdate as dd from dual;
1 row created.
SCOTT@ORA11GR2>commit;
Commit complete.
SCOTT@ORA11GR2>select * from fbdb_point;
ID SCN DD
---------- ---------- -------------------
1 1876290 2016-10-01 08:12:39
2) 连接到 sys 用户创建可靠还原点,因为只有拥有 sysdba 系统权限的用户才有权创建可靠还原点
SCOTT@ORA11GR2>conn / as sysdba
Connected.
SYS@ORA11GR2>create restore point rp_fbdb guarantee flashback database;
Restore point created.
3) 再次插入一条记录,验证当闪回到可靠还原点后,本次插入的记录将不存在
SYS@ORA11GR2>conn scott/tiger;
Connected.
SCOTT@ORA11GR2>insert into fbdb_point select 2 as id,dbms_flashback.get_system_change_number as scn,sysdate as dd from dual;
1 row created.
SCOTT@ORA11GR2>commit;
Commit complete.
SCOTT@ORA11GR2>select * from fbdb_point;
ID SCN DD
---------- ---------- -------------------
1 1876290 2016-10-01 08:12:39
2 1876411 2016-10-01 08:15:48
4) 删除 SCOTT 用户,数据库启动到 mount 模式
SCOTT@ORA11GR2>conn / as sysdba
Connected.
SYS@ORA11GR2>drop user scott cascade;
User dropped.
SYS@ORA11GR2>shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@ORA11GR2>startup mount;
ORACLE instance started.
Total System Global Area 730714112 bytes
Fixed Size 2256832 bytes
Variable Size 452984896 bytes
Database Buffers 272629760 bytes
Redo Buffers 2842624 bytes
Database mounted.
5) 执行基于还原点的闪回数据库
SYS@ORA11GR2>flashback database to restore point rp_fbdb;
Flashback complete.
6) 以 resetlogs 方式打开
SYS@ORA11GR2>alter database open resetlogs;
Database altered.
注 既然是还原点,那么那个还原点一定是我想还原到的地方,所以无需 read only 打开验证
7) 验证结果
SYS@ORA11GR2>select * from scott.fbdb_point;
ID SCN DD
---------- ---------- ---------
1 1876290 01-OCT-16
SYS@ORA11GR2>conn scott/tiger
Connected.
SCOTT@ORA11GR2>select * from scott.fbdb_point;
ID SCN DD
---------- ---------- -------------------
1 1876290 2016-10-01 08:12:39
SCOTT@ORA11GR2>conn / as sysdba
Connected.
8) 查看还原点,将其删除
SYS@ORA11GR2>select name,scn,storage_size,guarantee_flashback_database from v$restore_point;
NAME SCN STORAGE_SIZE GUA
--------------- ---------- ------------ ---
RP_FBDB 1876367 52428800 YES
SYS@ORA11GR2>drop restore point rp_fbdb;
Restore point dropped.
SYS@ORA11GR2>select name,scn,storage_size,guarantee_flashback_database from v$restore_point;
no rows selected
注: 用完可靠还原点以后,一定要记得将其删除,因为启用了可靠还原点,那么数据库的一举一动都会记录闪回日志中,从启用可靠还原点起,直到删除,这个期间是不受闪回日志保留期限的约束的,也就是说,只要你不删除可靠还原点,那么日志就一直保留着,确实够意思,真没白叫可靠还原点。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31397003/viewspace-2126613/,如需转载,请注明出处,否则将追究法律责任。
标签:Restore,闪回,point,Point,restore,ORA11GR2,SCOTT,flashback,还原点 From: https://www.cnblogs.com/aries0228/p/18159684