国产一级一区二区_segui88久久综合9999_97久久夜色精品国产_欧美色网一区二区

掃一掃
關注微信公眾號

解決Oracle數據庫日志文件丟失恢復問題
2010-07-05   網絡

一.丟失inactive日志文件組的恢復:

  由于inactive日志文件組表示已經完成了檢查點(dirty數據已經被寫入數據文件)。數據庫本身不會發生數據庫丟失,如果在這個時候相應的redo丟失/損壞,可以通過clear重建日志文件組恢復。

  通過命令:

  alter database clear logfile group n

  如果數據庫模式是archived的,則需要強制清除

  alter database clear unarchived logfile group n

  二.丟失active或current日志文件組的恢復:

  丟失情況分兩種:

  一個是正常關閉數據庫(如shutdown immediate)

  另一個是異常關閉數據庫(如shutdown abort)

  1.在損失當前日志時,數據庫是正常關閉狀態。

  由于shutdown immediate會執行全面的checkpoint,所以當前日志在實例恢復時可以不需要redo

  在Oracle 8i中我們完全可以通過alter database clear logfile group n來進行恢復.

  但是在Oracle 9i中,則可能無法對current的redo日志進行clear,需要通過recover database until cancel恢復后(必須要做的)

  用resetlogs選項打開。

  比如:

 


alter database clear logfile group n
recover database until cancel;
alter database open resetlogs;

  2.在損失當前日志時,數據庫是異常關閉的:

  這種情況下,由于沒有在執行全面檢查點時,數據庫就已經關閉了,那么Oracle在進行實例恢復的時候必須要求當前的日志,否則Oracle數據庫將無法open.

  這樣的情況下,我們通常需要從備份中恢復數據文件,通過應用歸檔日志進行向前推演。直到最后一個完好的日志文件,然后可以通過resetlogs啟動數據庫完成恢復。那么丟失的數據則是被損壞的日志文件中的數據。

  注意:_allow_resetlogs_corruption是Oracle中的一個隱含參數,如果系統實在不能resetlogs方式打開 的后只能出此下策,在pfile進行相應設置打開數據庫。該函數的含義是,允許在破壞一致性的情況下強制重置日志,打開數據庫。 _allow_resetlogs_corruption將使用所有數據文件最舊的SCN打開數據庫,所以通常來講需要保證SYSTEM表空間擁有最舊的 SCN。在強制打開數據庫之后,可能因為各種原因會有ora-600

熱詞搜索:

上一篇:深入討論SQL Server 表的主鍵問題
下一篇:數據庫管理工具phpSQLiteAdmin 2發布

分享到: 收藏
主站蜘蛛池模板: 涡阳县| 太湖县| 南丰县| 英德市| 彰武县| 嘉兴市| 阿拉善左旗| 白银市| 江山市| 德格县| 兴隆县| 遵义县| 西昌市| 临桂县| 琼中| 澄江县| 迭部县| 大兴区| 通道| 卓尼县| 长泰县| 宁德市| 吕梁市| 工布江达县| 古浪县| 色达县| 托里县| 广德县| 武乡县| 乌苏市| 额敏县| 千阳县| 阿拉尔市| 浦北县| 新野县| 沾化县| 康定县| 桦甸市| 鞍山市| 乐平市| 婺源县|