Oracle資料庫使用ODU進行資料恢復時的場景

2022-04-08 04:29:22 字數 1305 閱讀 7963

由於odu命令比較多,特別是關鍵的unload命令比較複雜,本文將簡單介紹幾種場景下使用odu進行資料恢復時,使用的命令序列。

場景1. 資料庫不能啟動,但是system表空間中的資料字典是完整的。

生成資料字典:unload dict

列出使用者: list user

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

恢復表: unload table username.tablename

也可以按使用者恢復: unload user username

場景2. 表被truncate。

offline表所在的表空間

生成資料字典: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表所在的表空間

生成資料字典: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

生成資料字典:unload dict

恢復表: unload table username.tablename

openfire使用oracle資料庫

openfire本身支援oracle資料庫,也提供了相關sql,這裡主要解決的問題是,openfire雖然提供了這些,但是本身沒有提供oracle的jdbc驅動,這是由於oracle的版權問題造成的,解決方法是 d develop workspace idea openfire target ope...

Oracle記憶體資料庫使用

摘要 查詢是否為記憶體表,enabled 記憶體表 disabled 非記憶體表 普通當前使用者執行 t.table name,t.inmemory,t.inmemory priority,t.inmemory distribute,t.t.table name,t.inmemory,t.inmem...

Oracle資料庫基本使用

oracle建立使用者 角色 授權 建表 oracle資料庫的許可權系統分為系統許可權與物件許可權。系統許可權 database system privilege 可以讓使用者執行特定的命令集。例如,create table許可權允許使用者建立表,grant any privilege 許可權允許使...