ITPub博客

首页 > 数据库 > Oracle > 【FLASHBACK】关于闪回数据库的一点说明

【FLASHBACK】关于闪回数据库的一点说明

原创 Oracle 作者:xysoul_云龙 时间:2017-07-02 11:01:06 0 删除 编辑

 今天看了点书,关于闪回数据库的,也就是当用户误操作删除了数据库用户时,我们恢复用户数据的过程是什么 

我们先简单了解下flashback 能做什么

1、可以闪回数据库,就是把数据库闪回到某个以前的时间点,前提闪回日志最早记录的SCN
2、闪回数据库表,也就是用户表误drop后的恢复  flashbackup drop
3、闪回表记录 用户数据表记录的恢复   flashback query
4、flashback table  闪回数据库表


其实主要就是两个功能,闪回数据库(整库的闪回操作)  闪回表


那么我们怎样使用数据库的闪回功能来闪回误删除的用户呢  大致步骤如下

1、确保数据库已经开启闪回特性,v$database 中flashbacck_on 可查询。 更改命令alter database flashback on;  也请更改用于存放闪回日志的相关参数(db_recovery_file_dest         /db_recovery_file_dest_size )

2、把数据库启动到mount状态,将数据库闪回至误删除操作的前一刻  闪回方法如下图



注意 to /to before 两种方式区别, to before 方式是指定时间戳的前一秒,也就是闪回到指定时间戳的前一秒的时间点

具体命令可参考:flashback database to timestamp to_timestamp('2017-07-02 09:53:50','yyyy-mm-dd hh24:mi:ss');

3、将数据库以只读模式打开,--此处 俺认为是防止新数据写入

4、使用exp或expdp方式导出,exp方式没问题,expdp方式需要借助其他数据库,具体可参考本博其他文章

5、将数据库完全恢复,并以read write模式打开数据库

6、导入被删除的用户

当然,并不是所有场景都适合闪回数据库的特性 ,如

1、数据文件物理损坏
2、数据文件SHRINK
3、由于闪回日志记录在控制文件中,因此使用备份的控制文件或者重建控制文件时,闪回数据库特性失效
4、表空间删除
5、需要注意,闪回数据库最多闪回时间间隔多久的数据,取决去闪回日志中最小SCN,如果想闪回比最小SCN还早的记录,请借助于其他备份

以下方式可以加快速度:

闪回数据库前可以先把其他表空间OFFLINE, 只需要闪回SYSTE表空间、UNDO表空间和业务数据所在表空间即可 

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

请登录后发表评论 登录
全部评论
主要从事Oracle数据库 DBA相关工作,其他操作系统、中间件等也有涉及,热衷分享。岁月老将至,如有幸在江湖中留点踪迹,也是欣慰。 【文盲筱烨】好读书爱运动的IT技术爱好者 微博:文盲筱烨 微信公众号:筱烨视点

注册时间:2014-02-15

  • 博文量
    412
  • 访问量
    1104608