spfile丟失後恢復

2021-06-18 01:46:36 字數 1572 閱讀 5739

spfile丟失灰復

1.spfile的自動備份

在rman命令列,通過以下命令可以啟用控制檔案的自動備份

configure controlfile autobackup on.

在rman中,備份controlfile時會一起backup spfile.當執行了alter system之類修改spfile命令的語句,可以在alter.log中看到oracle自動備份spfile

1)用以下語句檢視是否啟動自動備份

select * from v$rman_configuration

2)檢查已有的備份spfile可以通過v$backup_spfile

select * from v$backup_spfile

2.在有備份情況下丟失spfile

如果有了以上的備份後丟失了預設啟動的spfile,可以通過以下幾種方法啟動資料庫

1)在mount或者nomount情況下,直接在rman中輸入

restore spfile to 'spfile***.ora' from autobackup,即可恢復

2)在資料庫例項也沒有啟動的情況下有兩種做法

第一種是手工臨時編輯乙個pfile檔案(最少的spfile應該是只需要乙個dbname,我用過這種方法啟動失敗了),我的臨時pfile是在alterorcl.ora中拿出來的啟動引數

在編輯一下(注意在這步時,有幾個引數是從log中拿出來後要加引號括住它的引數值,還有最好刪掉db_domain為空的這行).後啟動startup pfile='***.ora' nomount

再進入rman中輸入restore spfile to 'spfile***.ora' from autobackup,關掉資料庫,再重啟動不需指定pfile直接用你resotre的spfile啟動資料庫

第二種,是直接在rman中啟動資料庫(注意在這會啟動例項但是是有錯的,在這步沒有讀parameter),然後去 select * from v$backup_spfile找到最近的spfile的位置及

名字,後在rman中輸入:restore spfile to 'spfile***.ora' from 需要恢復的spfile name.重啟動資料庫即可

3.無任何備份的情況下丟失spfile

1)沒有關掉數庫(因為資料庫執行其它spfile不會像controlfile一樣會鎖定)的話,用以下語句查詢出已經改變的引數值(即不是預設值)

spool /tmp/initemp.ora

select '*.'||name||' = '||value from v$parameter where isdefault ='false';

spool off;

對以下生成的臨時檔案編輯,後啟動資料時指定pfile引數啟動後生成spfile或者直接在空閒例項create spfile from pfile再用spfile啟動

2)直接去alter***.ora中找到最後一次啟動時讀的spfile引數,然後檢視這以後的修改的spfile引數,取出這兩部分加以編輯生成pfile,生成spfile,啟動資料庫即可

由於是昨天做的測試.所以有點模糊了,記下來以供以後參考.

常規恢復 完全恢復 丟失spfile

引數檔案丟失或損壞 spfile一般在 oracle home dbs linux 目錄,如果你丟失了spfile並不會引起例項立刻停掉,你的例項可以繼續操作。儘管當你restore spfile的時候需要關閉重啟例項,但是可以通過多種方式進行恢復 注意事項 1.在恢復之前先檢視oracle hom...

spfile的備份恢復

由todd bao oracle 11g 資料庫恢復技術 整理 實踐 平台 win 11.2.0.3 64bit 引數檔案有spfilesid.ora spfile.ora initsid.ora 是資料庫啟動到nomount的必要條件,unix系統下在 oracle home dbs目錄下,win...

RMAN的備份與恢復 SPFILE恢復

1 方法最簡單,但是已經背離了rman恢復學習的初衷 但是這種方面需要乙個前提就是你的pfile檔案還存在 c sharp view plain copy print?create spfile c oracle product 10.2.0 db 1 database spfileorcl.ora...