Oracle闪回技术
Oracle闪回技术
我们都清楚的知道,当我们数据库中的数据删除或者更新之后,数据很难再还原回来,在没有了解闪回技术之前,就觉得是没办法还原了,这样子会付出很大的代价。
现在我来总结一下闪回技术的启动和操作的步骤。
一.不管闪回功能是否开启,我们先记录一下当前时间或者SCN
1、select to_char(sysdate,‘YYYY-MM-DD HH24:mi:ss‘) from dual;----时间
2、 select current_scn from v$database;----SCN
二.我们要事先查一下,看看oracle数据库是否已经启动了闪回功能;
1、select flashback_on from V$database;
如果已经开启了闪回功能,如果还没有开启的话,
返回值是“FLASHBACK_ON = NO”,
那么我们执行以下步骤了:
2、alter system set db_recovery_file_dest_size=30G scope=both;
3、alter system set db_recovery_file_dest=‘F:\app\LK‘[LK1] scope=both;
到此,我们得需要改变用户登录,我们的用sys as sysdba在cmd里面登录,继续执行下面语句,就可以开启闪回功能了。
4、shutdown immediate
5、startup mount
6、alter database archivelog;
7、alter database flashback on;
8、alter database open;
接下来我们再看看闪回功能开启了没有
9、select flashback_on from V$database;(如果成功的话,那么会返回值“FLASHBACK_ON = YES”)
我们再来看看初始的默认参数,就是flashback功能默认时间多少:
10、show parameter flashback;
三.执行闪回
在执行返回之前,我们要先开启“行移动功能”:
1、ALTER TABLE COMM.STAFF_DICT_TEMP ENABLE ROW MOVEMENT;
到此,我们可以使用时间闪回了:
2、shutdown immediate
3、startup mount
4、flashback database to timestamp to_timestamp[LK2] (‘2014-03-12 23:46:00‘,‘yyyy-mm-dd hh24:mi:ss[LK3] ‘)
四、到这里数据就已经闪回到更改前的数据了,算是成功了,但是又有一个很大的问题出现了,到现在我们用普通用户登录(system normal)不进去了,只能用system sysdba(sys as sysdba)登录了,如果这样子的话,问题就大了,但是不用担心,解决办法还是有的,看下面:
要清空一次数据库登录方式才可以以normal登录
1、shutdown normal
2、startup mount;
3、alter database open;
4、alter database open resetlogs;
5、alter database datafile 2 [LK4] offline drop;(这步是在上一步失败的情况下执行的)
6、alter database open resetlogs;
7、alter database open;
8、shutdown normal
9、startup mount;
五、到此全部已经成功完成了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。