【备份恢复】闪回数据库(四)基于可靠还原点闪回数据库

基于可靠还原点闪回数据库
还原点概念
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博客 ” ,链接:http://blog.itpub.net/31397003/viewspace-2126613/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31397003/viewspace-2126613/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值