c:/documents and settings/administrator>sqlplus /nolog
sql*plus: release 11.1.0.6.0 - production on 星期四 6月 30 14:21:20 2011
sql> conn / as sysdba
已連線。
sql> startup mount;
ora-01081: 無法啟動已在執行的 oracle - 請首先關閉它
sql> shutdown immediate;
ora-01109: 資料庫未開啟
已經解除安裝資料庫。
oracle 例程已經關閉。
重讀日誌檔案的恢復必須在sql plus上面進行
[c-sharp]view plain
copy
print?
sql> startup mount;
oracle 例程已經啟動。
total system global area 535662592 bytes
fixed size 1334380 bytes
variable size 331350932 bytes
database buffers 197132288 bytes
redo buffers 5844992 bytes
資料庫裝載完畢。
[c-sharp]view plain
copy
print?
sql> recover database until cancel;
完成介質恢復。
[c-sharp]view plain
copy
print?
sql> alter database open resetlogs;
資料庫已更改。
在sqlplus進行了 alter database open resetlogs操作後,因為日誌檔案已經被修改了,所以需要做乙個重新的全備份,不然仍沿用原來的備份檔案進行恢復會有問題的
預設狀態:alter database open(no resetlogs).而資料庫開啟時候,會比較控制檔案和資料檔案的scn是否一致,一致才會開啟,否則不開啟。
而在執行了資料庫的不完全恢復後,在開啟資料庫之前,這時候一般情況下,資料檔案的scn是小於控制檔案的scn的,因此需要以resetlogs開啟資料庫,目的就是reset scn,這樣兩者的scn一致,就可以開啟,否則打不開的。執行了resetlogs命令之後,資料庫的操作是:將沒歸檔的日誌都歸檔;然後將聯機日誌組都置為新的,序號從0開始。
問題解決:
先要弄清楚alterdatabase open resetlogs是什麼意思,為什麼要用resetlogs開啟資料庫,這個命令發出後oracle都做了什麼?
alterdatabase open resetlogs
是要開啟資料時,重置重做日誌,即將重做日誌的sequence置零,為什麼要重置重做日誌呢?
不完全恢復後,原來的onlineredo log裡面包含的是未做恢復前的資料,而這些資料對於恢復後的資料庫不再有效,所以資料庫會要求在open之前先對online redo log的sequence置零。
resetlogs命令表示乙個資料庫邏輯生存期的結束和另乙個資料庫邏輯生存期的開始,每次使用resetlogs命令的時候,scn不會被重置,不過oracle會重置日誌序列號,而且會重置聯機重做日誌內容。
RMAN的備份與恢復 SPFILE恢復
1 方法最簡單,但是已經背離了rman恢復學習的初衷 但是這種方面需要乙個前提就是你的pfile檔案還存在 c sharp view plain copy print?create spfile c oracle product 10.2.0 db 1 database spfileorcl.ora...
RMAN的備份與恢復(2) SPFILE恢復
1 方法最簡單,但是已經背離了rman恢復學習的初衷 但是這種方面需要乙個前提就是你的pfile檔案還存在 2 使用rman的方法步驟 1 shutdown immediate 2 startup nomount 3 set dbid 1274923109 4 restore spfile from...
RMAN備份與恢復(二) RMAN常用操作學習
1 連線目標資料庫 在rman中可以建立與目標資料庫或恢復目錄資料庫的連線。與目標資料庫連線時,使用者須具有sysdba系統許可權,以保證可以進行資料庫的備份 修復與恢復工作。可以在作業系統命令提示符下輸入以下命令,直連目標資料庫 rman target user password net serv...