ORACEL flashback database
sql>select falshback_on from v$database // 查看数据库是否开启闪回功能 sql>shutdown immediate? //关闭数据库 sql>startup ?mount?? //以mount方式启动数据库 sql>alter databae archive // 使数据库在归档模式下运行 sql>alter database flashback on?? //打卡数据库闪回功能 sql>alter database open? //运行数据库 查看flashback的一些参数 show parameter file_dest show parameter flashback --------------------- 举例:(闪回数据库 使用 是 闪回日志) sql>create restore point b4 guarantee flashback database // 创建一个可靠还原点 sql>select * from tab;? (tab 视图显示当前用户所有的table ,view等一些objects的名称)。 tname??? tabtype?? clusterid dept?????? table emp?????? table bonus??? table sql>drop table emp purge; sql>conn /as sysdba sql>shutdown immediate sql>startup? mount sql>select??? tochar(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;??? //查询当前时间 2011-10-06 13:56:52 sql> flash database to timestamp to_timestamp('2011-10-06 13:55:00','yyyy-mm-dd hh24:mi:ss'); //闪回数据库到删除表之间的时间 sql>alter table read only (已只读方式打开数据库,这样是为了不影响 redo日志) sql>select count(*)? from emp; //此时在查询的时候,就可以发现刚才被删掉的emp,下面可以exp命令将emp数据导出 sql>exit [oracle$linux~]$ exp scott/tiger tables=emp? files=emp.dmp? //导出之后,重新进入数据库 [oracle$linux~]$ sqlplus / as sysdba sql>shutdown immediate sql>flash database to timestamp to_timestamp('2011-10-06 13:56:52','yyyy-mm-dd hh24:mi:ss'); sql>alter database open resetlogs; sql>desc scott.emp; 此时查看,还没有emp表,用 imp导入 [oracle$linux~]$ imp scott/tiger file=emp.dmp table=emp sql>desc scott.emp;? --》此时就可以查看到恢复的数据表emp了。 上面是通过时间闪回,也可以通过SCN点来闪回,利用上面建立的b4 sql>flashback database to restore point? b4; ---------------- sql>desc v$restor_point; //查看系统中建立的所有还原点 sql>select * for v$restore_point; 闪回数据库,因为需要关闭数据库实例,所以在 7*24小时运行的数据库中,并不实用。 ------------------------------------------------------
??
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |