程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle數據字典的恢復場景

Oracle數據字典的恢復場景

編輯:Oracle數據庫基礎

以下的文章主要介紹的是Oracle數據庫中的ODU幾種相關恢復場景,因為ODU實際應用命令比較多,尤其是unload命令,其實際應用是非常復雜的,以下的文章將簡單介紹幾種場景下使用ODU進行數據恢復時,使用的命令序列。

場景1. 數據庫不能啟動,但是SYSTEM表空間中的Oracle數據字典是完整的。

生成數據字典:unload dict

列出用戶: list user

列出用戶下的所有表: list table username

恢復表: unload table username.tablename

也可以按用戶恢復: unload user username

場景2. 表被TRUNCATE。

OFFLINE表所在的表空間

生成Oracle數據字典:unload dict

顯示表的段頭:desc username.tablename

找到實際的data object id: dump datafile file# block block#

掃描數據:scan extent

恢復表:unload table username.tablename object object_id

UPDATE:

從3.0.7版本開始,恢復Truncate表更方便,只需要執行下面的步驟:

OFFLINE表所在的表空間

生成Oracle數據字典:unload dict

掃描數據:scan extent

恢復表:unload table username.tablename object auto

場景3. 表被DROP。

OFFLINE表所在的表空間

使用logminer從日志裡面挖掘被drop掉的表其data object id,如果不能挖掘,按下面的場景4進行恢復。

掃描數據:scan extent

如果沒有表結構信息,需要自動來判斷:unload object data_object_id sample

恢復表:unload object data_object_id column coltype coltype…

場景4. 系統表空間損壞。

掃描數據:scan extent

搜索數據:unload object all sample

從結果文件sample.txt查找需要的數據

恢復需要的表:unload object data_object_id column coltype coltype…

場景5. 表中數據被DELETE。

將參數unload_deleted設置為YES

生成Oracle數據字典:unload dict

恢復表: unload table username.tablename

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved