常規恢復 完全恢復 丟失spfile

2021-10-03 06:31:26 字數 4320 閱讀 4643

引數檔案丟失或損壞

spfile一般在$oracle_home/dbs(linux)目錄,如果你丟失了spfile並不會引起例項立刻停掉,你的例項可以繼續操作。

儘管當你restore spfile的時候需要關閉重啟例項,但是可以通過多種方式進行恢復

注意事項:

1.在恢復之前先檢視oracle_home/dbs下 initghyyk.ora內容: spfile=』+data/ghyyk/spfileghyyk.ora』

一般在rac環境中會這樣使用,把spfile的路徑寫在initsid.ora 中,確保放在共享儲存上。

2.spfile啟動順序為:spfilesid.ora》 spfile.ora 》initsid.ora》 報錯

3.只有有db_name才可以使用autobackup,使用rman啟動到nomount必須指定絕對路徑

4.create pfile from spfile;

create pfile=』/home/oracle/oradata/init.sql』 from spfile;

create pfile from memorey;

5.startup nomount pfile=』/home/oracle/oradata/init.sql』;

6.只有啟動到mount狀態才能使用autobackup

7.檢視spfile的rman備份,可以檢視備份指令碼來確定spfile的備份位置

8.建議使用指定備份路徑來恢復,不要使用autobackup,不能動控制檔案,因為必須要開到mount狀態

9.推薦使用前兩種方法(使用alert方法恢復,如果資料庫長時間執行,可能會導致檔案路徑等資訊不準確)

方法一:使用rman啟動恢復spfile

(在不知道資料庫名和dbid的情況下使用)

使用rman自動建立dummy庫啟動到nomount進行恢復

丟失spfile,啟動報錯

sys@ghyyk> startup

ora-01078: failure in processing system parameters

ora-01565: error in identifying file 『+data/ghyyk/spfileghyyk.ora』

ora-17503: ksfdopn:2 failed to open file +data/ghyyk/spfileghyyk.ora

ora-15056: additional error message

ora-17503: ksfdopn:dgopenfile05 failed to open file +data/ghyyk/spfileghyyk.ora

ora-17503: ksfdopn:2 failed to open file +data/ghyyk/spfileghyyk.ora

ora-15173: entry 『spfileghyyk.ora』 does not exist in directory 『ghyyk』

ora-06512: at line 4

現在的資料庫處於not started 狀態(不是nomount狀態)

[oracle@ghyyk ~]$ rman target /

recovery manager: release 11.2.0.1.0 - production on wed feb 26 14:08:49 2020

connected to target database (not started)

rman> startup nomount;

startup failed: ora-01078: failure in processing system parameters

ora-01565: error in identifying file 『+data/ghyyk/spfileghyyk.ora』

ora-17503: ksfdopn:2 failed to open file +data/ghyyk/spfileghyyk.ora

ora-15056: additional error message

ora-17503: ksfdopn:dgopenfile05 failed to open file +data/ghyyk/spfileghyyk.ora

ora-17503: ksfdopn:2 failed to open file +data/ghyyk/spfileghyyk.ora

ora-15173: entry 『spfileghyyk.ora』 does not exist in directory 『ghyyk』

ora-06512: at line 4

starting oracle instance without parameter file for retrieval of spfile

oracle instance started

total system global area 158662656 bytes

fixed size 2211448 bytes

variable size 88080776 bytes

database buffers 62914560 bytes

redo buffers 5455872 bytes

使用rman啟動到nomount,一定是用rman啟動,rman會自動分配乙個dummy的庫先啟動資料庫到nomount

rman> restore spfile from 『/backup/rman/autobackup/controlfilec-4098581401-20200226-04』;

(注意!! 使用rman啟動恢復spfile的方法,只能指定spfile的備份路徑,不能使用autobackup,因為只有在mount下才能使用)

sys@ghyyk> shutdown abort;

oracle instance shut down.

sys@ghyyk> startup

oracle instance started.

total system global area 830930944 bytes

fixed size 2217912 bytes

variable size 683673672 bytes

database buffers 142606336 bytes

redo buffers 2433024 bytes

database mounted.

database opened.

sys@prod> select file#,checkpoint_change# from vkatex parse error: expected 'eof', got '#' at position 32: …od> select file#̲,checkpoint_cha…datafile_header;

方法二:手工建立pfile恢復spfile

(你必須要設定db_name)

1)vi編輯初始化引數檔案,指定db_name, control_files,compatible

db_name=『ghyyk』

2)先啟動到nomount狀態使rman可以使用(rman必須在nomount狀態下才能使用)

3)rman恢復spfile檔案

rman> restore spfile from 『/backup/rman/autobackup/controlfilec-4098581401-20200226-04』;

4)關庫重新用恢復的spfile檔案啟動資料庫

sql> shutdown abort

sql> startup

sys@prod> select file#,checkpoint_change# from vkatex parse error: expected 'eof', got '#' at position 32: …od> select file#̲,checkpoint_cha…datafile_header;

方法三:通過alert_sid.log 編寫init.ora恢復spfile

system parameters with non-default values:

processes = 150

##spfile = 「+data/ghyyk/spfileghyyk.ora」

memory_target = 796m

2.使用編寫的init.ora,來啟動database

startup nomout pfile=』/home/oracle/init.ora』;

3.restore spfile from autobackup;

4.shutdown abort;

5.startup;

RMAN備份與恢復 完全恢復與不完全恢復

名詞解釋 顧名思義,完全恢復就是指資料沒有丟失的恢復了。不完全恢復是指恢復後有部分資料丟失。它們是資料庫的兩種恢復方式。完全恢復 利用重做日誌或增量備份將資料塊恢復到最接近當前時間的時間點。之所以叫做完整恢復是由於oracle應用了歸檔日誌和聯機重做日誌中所有的修改。不完全恢復 利用備份產生乙個非當...

spfile丟失後恢復

spfile丟失灰復 1.spfile的自動備份 在rman命令列,通過以下命令可以啟用控制檔案的自動備份 configure controlfile autobackup on.在rman中,備份controlfile時會一起backup spfile.當執行了alter system之類修改sp...

rman恢復案例 丟失全部控制檔案的恢復

rman shutdown abort oracle 例程已關閉 rman host microsoft windows xp 版本5.1.2600 c c del d oracle92 test1 control ctl c dir d oracle92 test1 control ctl 驅動器...