Oracle数据库闪回FLASHBACK命令总结

来源:互联网 发布:linux开机启动应用脚本 编辑:程序博客网 时间:2024/05/23 19:17
Oracle数据库闪回FLASHBACK命令总结

一、闪回查询:
1. 方法一
select current_scn from v$database;
current_scn为894072
适当的缩小scn的值,可以查到以往的数据
select * from t1 as of scn 894000;
2. 方法二
假设被删除了数据的表是table_name,通过as of timestamp构造表被删除前某个时刻的状态 
create table table_name_bak as select * from table_name as of  timestamp to_timestamp('20130307 12:00:00','yyyymmdd hh24:mi:ss');
insert into table_name select * from table_name_bak where 符合被delete条件的数据



二、闪回表
ALTER TABLE JTCARD.TEST DISABLE/enable ROW MOVEMENT;
FLASHBACK TABLE employees_demo TO TIMESTAMP (SYSTIMESTAMP - INTERVAL '1' minute);



三、闪回drop:
FLASHBACK TABLE <table_name> TO BEFORE DROP [RENAME TO <new_name>];



四、闪回数据库:
配置闪回数据库
SQL> SHUTDOWN IMMEDIATE;
SQL> STARTUP MOUNT EXCLUSIVE;
SQL> ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=2880 SCOPE=BOTH;
SQL> ALTER DATABASE FLASHBACK ON;
SQL> ALTER DATABASE OPEN;
使用示例:
RMAN> FLASHBACK DATABASE TO TIME = "TO_DATE('2004-05-27 16:00:00','YYYY-MM-DD HH24:MI:SS')";
RMAN> FLASHBACK DATABASE TO SCN=23565;
RMAN> FLASHBACK DATABASE TO SEQUENCE=223 THREAD=1;


SQL> FLASHBACK DATABASE TO TIMESTAMP(SYSDATE-1/24); 
SQL> FLASHBACK DATABASE TO SCN 53943;
SQL> FLASHBACK DATABASE TO RESTORE POINT b4_load;


闪回数据库操作完成后,必须使用以下一种方法打开数据库: 
1. 在只读模式下验证是否使用了正确的目标时间或 SCN 
2. 使用 RESETLOGS 参数才允许进行更新 




===========10g 清空recyclebin方法======================
按用户
purge recyclebin;
purge table "BIN$....";


清除所有
PURGE DBA_RECYCLEBIN 
=======================================================


===========查询回收站==================================
SELECT owner, original_name, object_name, 
       type, ts_name, droptime, related, space
FROM dba_recyclebin
WHERE can_undrop = 'YES';


SELECT original_name, object_name, 
       type, ts_name, droptime, related, space
FROM user_recyclebin
WHERE can_undrop = 'YES';


SQL> SHOW RECYCLEBIN
=======================================================
0 0
原创粉丝点击