文章出處
文章列表
SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < TO_DATE('2015-09-18', 'YYYY/MM/DD') select b.file_name 物理文件名, b.tablespace_name 表空間, b.bytes/1024/1024 大小M, (b.bytes-sum(nvl(a.bytes,0)))/1024/1024 已使用M, substr((b.bytes-sum(nvl(a.bytes,0)))/(b.bytes)*100,1,5) 利用率 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_name,b.file_name,b.bytes order by b.tablespace_name select name from v$tablespace; select file_name,bytes/1024/1024 from dba_data_files where tablespace_name like 'UNDOTBS1'; alter database UNDOTBS1 datafile '/home/app/oracle/oradata/HHDEV/datafile/o1_mf_undotbs1_bcgv649d_.dbf' resize 4000M; select * from web_org_sales flashback table web_org_sales to timestamp to_timestamp('2015-09-22 00:00:01','yyyy-mm-dd hh24:mi:ss') --閃回時間 alter table web_org_sales enable row movement; --設置表為行閃回 SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < TO_DATE('2015-09-19', 'YYYY/MM/DD'); --547577607 SELECT * FROM web_org_sales AS OF SCN '550594210'; alter system set undo_retention =216000; 背景:表A數據誤操作,被delete了,恢復。 --1.先備份A表當前數據。 --2.查詢某時間點前的SCN號碼 SELECT MAX(Scn) FROM Sys.Smon_Scn_Time WHERE Time_Dp < To_Date(某時間點, 'YYYYMMDD hh24:mi:ss'); --3.查看某時間點的A表數據 SELECT * FROM A AS OF SCN '步驟2的SCN號'; --4.如果查看數據是想要的數據,則恢復 SELECT row_movement FROM user_tables WHERE table_name = 'A'; --5.步驟4結果如果為DISABLE ,則執行下面這句話,否則跳過 ALTER TABLE A ENABLE ROW MOVEMENT; --6.執行 FLASHBACK TABLE A TO SCN '步驟2的SCN號'; --7.如果原來為enable則不用執行,否則執行 ALTER TABLE A DISABLE ROW MOVEMENT; --8.如果權限不夠,就換個DBA用戶進行上述操作 alter table Aenable row movement; --設置表為行閃回 flashback table A to timestamp to_timestamp('2015-03-17 00:00:01','yyyy-mm-dd hh24:mi:ss') --閃回時間 flashback table A to timestamp to_timestamp('2015-09-01 20:40:00','yyyy-mm-dd hh24:mi:ss') alter table A enable row movement; --設置表為行閃回 truncate table A; 使用truncate 表記錄無法閃回。
文章列表
全站熱搜