在已启动闪回数据库功能的基础上进行的测试
:
http://space.itpub.net/685769/viewspace-749364
一、在scott用户下创建一张表、并记录系统时间(如果记录了系统时间,那么可以准确的闪回到指定时间点)
SCOTT@ORA11GR2>create table fbdb_time as select sysdate as dd from dual;
Table created.
SCOTT@ORA11GR2>select sysdate from dual;
SYSDATE
-------------------
2012-11-17 21:52:26
SCOTT@ORA11GR2>
二、删除scott用户,并将数据库启动到mount状态下
SCOTT@ORA11GR2>
conn / as sysdba
Connected.
SYS@ORA11GR2>drop user scott cascade;
User dropped.
SYS@ORA11GR2>startup mount force;
ORACLE instance started.
Total System Global Area 849530880 bytes
Fixed Size 1339824 bytes
Variable Size 641732176 bytes
Database Buffers 201326592 bytes
Redo Buffers 5132288 bytes
Database mounted.
SYS@ORA11GR2>
三、第一次闪回,我们不用刚刚记录的时间,我们闪回到三分钟之前,看看是什么情况
SYS@ORA11GR2>
flashback database to timestamp sysdate - 3/1440;
Flashback complete.
SYS@ORA11GR2>
四、此时,数据库可以启动到read only状态,查看是否闪回到我想要的时间点(即:scott用户已创建fbdb_time表以后)
SYS@ORA11GR2>
alter database open read only;
Database altered.
SYS@ORA11GR2>
五、经验证,
scott.fbdb_time表不存在,说明,我们闪回闪过了。
SYS@ORA11GR2>
select * from scott.fbdb_time;
select * from scott.fbdb_time
*
ERROR at line 1:
ORA-00942: table or view does not exist
SYS@ORA11GR2>
六、重新到mount状态下,再次闪回(如果我们不知道具体的时间点的话,我们只能一次一次以read only打开数据库试验,直到我们满意为止)
SYS@ORA11GR2>
startup mount force;
ORACLE instance started.
Total System Global Area 849530880 bytes
Fixed Size 1339824 bytes
Variable Size 641732176 bytes
Database Buffers 201326592 bytes
Redo Buffers 5132288 bytes
Database mounted.
SYS@ORA11GR2>
七、由于我们记录了当时的时间,所以,我们直接闪回到那个时间点即可
SYS@ORA11GR2>
flashback database to timestamp to_date('2012-11-17 21:52:26','yyyy-mm-dd hh24:mi:ss');
Flashback complete.
SYS@ORA11GR2>
八、再次以read only打开数据库,验证,正如我们所想的一样,回到了删除scott用户之前的状态
SYS@ORA11GR2>
alter database open read only;
Database altered.
SYS@ORA11GR2>conn scott/tiger
Connected.
SCOTT@ORA11GR2>conn / as sysdba
Connected.
SYS@ORA11GR2>select * from scott.fbdb_time;
DD
-------------------
2012-11-17 21:52:09
SYS@ORA11GR2>
九、重启数据库,以
resetlogs方式打开数据库,闪回数据库完成
SYS@ORA11GR2>
shutdown abort;
ORACLE instance shut down.
SYS@ORA11GR2>
SYS@ORA11GR2>startup mount;
ORACLE instance started.
Total System Global Area 849530880 bytes
Fixed Size 1339824 bytes
Variable Size 641732176 bytes
Database Buffers 201326592 bytes
Redo Buffers 5132288 bytes
Database mounted.
SYS@ORA11GR2>alter database open resetlogs;
Database altered.
SYS@ORA11GR2>
十、小结
如果使用了闪回数据库,往往都是在不知道具体时间的情况下,为了损失更小,我们只能一次又一次的read only打开数据库来验证结果;
一般情况下,开启闪回数据库的生产库很少,毕竟还是比较耗资源的(特别是DML操作比较频繁的数据库);
还有就是,如果我们使用了闪回功能,那么归档日志都重新开始了,我们之前的备份就失效了,在使用了闪回数据库后,记得做一次数据库的全备。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/685769/viewspace-749413/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/685769/viewspace-749413/