国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

oracle 9i使用閃回查詢恢復數據庫誤刪問題

2024-08-29 13:58:28
字體:
來源:轉載
供稿:網友

本篇文章給大家介紹在oracle 9i中使用閃回查詢恢復數據庫誤刪問題,涉及到數據庫增刪改查的基本操作,對oracle數據庫閃回查詢感興趣的朋友可以一起學習下本篇文章

如果用戶誤刪/更新了數據后,作為用戶并沒有什么直接的方法來進行恢復,他們必須求助DBA來對數據庫進行恢復,到了Oracle9i,這一個難堪局面有所改善。Oracle 9i中提供了一項新的技術手段--閃回查詢,用戶使用閃回查詢可以及時取得誤操作前的數據,并可以針對錯誤進行相應的恢復措施,而這一切都無需DBA干預。

因為一時手賤,生產上的數據被我給delete掉了。

用的是delete語句,然后很迅速的還給commit了

下面這兩個語句:

 

 
  1. ALTER TABLE tablename ENABLE row movement ; 
  2. flashback table tablename to timestamp to_timestamp('2012-09-13 13:00:00','yyyy-mm-dd hh24:mi:ss'); 

------------------------------------------------------

記得大概是兩點半左右運行的delete---commit;

具體執行流程我們可從以下幾個示例圖中體會;

1.原表記錄

 

 
  1. $ sqlplus eygle/eygle 
  2. SQL*Plus: Release 10.1.0.2.0 - Production on Wed Mar 30 08:52:04 2005 
  3. Copyright (c) 1982, 2004, Oracle. All rights reserved. 
  4. Connected to: 
  5. Oracle Database 10g Enterprise Edition Release 10.1.0.2.0 - 64bit Production 
  6. With the Partitioning, OLAP and Data Mining options 
  7. SQL>select count(*) from t1; 
  8. COUNT(*) 
  9. ---------- 
  10. 9318 

2.誤刪除所有記錄

并且提交更改。

 

 
  1. SQL>delete from t1; 
  2. 9318 rows deleted. 
  3. SQL>commit; 
  4. Commit complete. 
  5. SQL>select count(*) from t1; 
  6. COUNT(*) 
  7. ---------- 

3.獲得當前SCN

如果能夠確切知道刪除之前SCN最好,如果不知道,可以進行閃回查詢嘗試.

 

 
  1. SQL>select dbms_flashback.get_system_change_number from dual; 
  2. GET_SYSTEM_CHANGE_NUMBER 
  3. ------------------------ 
  4. 10671006 
  5. SQL>select count(*) from t1 as of scn 10671000; 
  6. COUNT(*) 
  7. ---------- 
  8. SQL>select count(*) from t1 as of scn 10670000; 
  9. COUNT(*) 
  10. ---------- 
  11. 9318 

我們看到在SCN=10670000時,數據都在。

4.恢復數據.

 

 
  1. SQL>insert into t1 select * from t1 as of scn 10670000; 
  2. 9318 rows created. 
  3. SQL>commit; 
  4. Commit complete. 
  5. SQL>select count(*) from t1; 
  6. COUNT(*) 
  7. ---------- 
  8. 9318 

其它網友用的教程

進行數據庫操作,delete后面一定要加where”。今天無意中在網上看到了關于oracle誤刪除數據恢復的一條信息,發現的確很好使,下面就我的測試向大家匯報下。

 

 
  1. . select * from t_viradsl t //查詢t_viradsl中所有的數據,可以看到三條數據 
  2. delete t_viradsl //刪除t_viradsl中所有的數據,三條數據消失 
  3. . select * from t_viradsl t //無數據。 
  4. . insert into t_viradsl select * from t_viradsl as of timestamp to_Date('-- ::''yyyy-mm-dd hh:mi:ss'//已將誤刪除數據插入表中 
  5. . select * from t_viradsl t //又會看到三條數據。 

我們來分析下第四步,注意這句:

 

 
  1. select * from t_viradsl2 as of timestamp to_Date('2011-01-19 15:28:00''yyyy-mm-dd hh24:mi:ss'

什么意思呢, 找到t_viradsl2

在2011-01-19 15:28:00這個時間點的所有數據,既然

找到了,你想怎么操作都可以了。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 深圳市| 军事| 株洲市| 盖州市| 安丘市| 嘉峪关市| 资溪县| 梁山县| 油尖旺区| 建平县| 金门县| 陆良县| 泾川县| 察雅县| 汝阳县| 吴桥县| 清原| 扎兰屯市| 九龙县| 泽普县| 射阳县| 广饶县| 富蕴县| 屯昌县| 河东区| 鄯善县| 安西县| 旺苍县| 磴口县| 桐梓县| 米易县| 阿克苏市| 舞钢市| 博乐市| 正蓝旗| 张北县| 苏尼特右旗| 裕民县| 呼伦贝尔市| 北宁市| 唐山市|