基于SCN闪回数据库

由我的上一篇博客《闪回数据看的事情 》写到一些闪回数据库的步骤与方法,4种方法中,其中以一种
就是本文讲述的:基于SCN(数据库系统改变号 )闪回数据库, SCN由dbms_flashback.get_system_change_number
查得,语句为: select dbms_flashback.get_system_change_number as scn  from dual;

在实例数据库中的Scott用户下:

1、创建实验表:

SQL> create  table  fbdb_scn  as  select  1  as

  2  id,dbms_flashback.get_system_change_number as scn,sysdate as dd from dual;

Table created.

SQL> select * from fbdb_scn;

        ID        SCN       DD

----------      ----------      -------------------

         1     776652    2016-10-01 10:24:50
此时,查看当时的系统改变号

SQL> select dbms_flashback.get_system_change_number as scn from  dual;

       SCN

    ----------

    776717
2、接着,再次向表fbdb_scn插入第二条数据,并查看:

SQL> insert  into  fbdb_scn  select  2  as

  2  id,dbms_flashback.get_system_change_number as scn,sysdate as dd from dual;

1 row created.

SQL> commit;

Commit complete.

SQL> select * from fbdb_scn;

        ID        SCN      DD

----------     ----------    -------------------

         1     776652   2016-10-01 10:24:50

         2     776729   2016-10-01 10:28:02

3、模拟删除Scott用户:

SQL> drop user scott cascade;

User dropped.


删除Scott用户之后,关闭数据库,模拟闪回数据库,恢复到刚才查询到的系统改变号为   776717时的状态。

4、关闭数据库,重启数据库并恢复:

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.


SQL> flashback database to scn 776717;

Flashback complete.

SQL> alter database open;

alter database open

*

ERROR at line 1:

ORA-01589: must use RESETLOGS or NORESETLOGS option for database open

 (此处报的错误,是要求我们以RESETLOGS方式打开数据库

SQL> alter database open RESETLOGS;

Database altered.
在sys用户下查看,再关闭数据库前已经删除的Scott用户是否被恢复回来(以下看到已经闪回回来)

SQL> select username from dba_users where username='SCOTT';

USERNAME

------------------------------

SCOTT
登录Scott用户,查看闪回数据库到改变号为776717的状态,查看是否达到预期的效果。

conn scott/tiger0520

SQL> select * from fbdb_scn;

        ID        SCN DD

---------- ---------- ---------

         1     776652 01-OCT-16      ------------(该处的时间跟上面显得有些不一样,是因为会话设置的时间显示格式不一致,此处我们参考SCN号)

对上下两次查询的数据可以知道,删除了的用户通过闪回数据库技术,把用户Scott及其表都被恢复回来,并验证没有丢失数据,达到恢复效果。
也就是说,当我们知道某个时间点对应的系统改变号,可以通过闪回数据库的方式,快速地恢复解决一些数据库损坏的情况。



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31392094/viewspace-2125841/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31392094/viewspace-2125841/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值