回覆列表
-
1 # 優宜佳科技看世界
-
2 # 林丶子丶
用oracle/product/10.2.0/admin/smsvr/pfile下面的init.ora.972009123025檔案替換oracle/product/10.2.0/db_1/dbs下面的SPFILESMSVR.ORA檔案即可
1 關閉實列
sqlplus /nolog
conn /as sysdba
shutdown immediate
2 先修改 oracle/product/10.2.0/admin/smsvr/pfile下面的init.ora.972009123025
4 建立SPFILE SQL> CREATE SPFILE FROM PFILE="e:\oracle\product\10.2.0\admin\smsvr\pfile\init.ora.972009123025";
5 重新啟動實列
答案:在資料庫還沒有關閉的情況下,可以使用如下的SQL從記憶體中恢復資料庫的引數:
create spfile from memory;
create spfile="/home/oracle/spfileOCPLHR1.ora" from memory;
create pfile from memory;
create spfile from pfile;
除非必要,應該將以下劃線開頭的隱含引數刪掉:
grep -v "^(_|#)." initlhrdb.ora > initlhrdb.ora2
如果資料庫已經關閉,但是存在SPFILE的RMAN備份,那麼可以使用如下的方式進行恢復:
l 如果知道資料庫的DBID,那麼可以按照如下步驟進行恢復:
startup nomount
set dbid 9815108;
restore spfile from autobackup;--已連線到了catalog恢復目錄資料庫
shutdown immediate
set dbid 9815108;
startup;
l 如果不知道資料庫的DBID,那麼可以按照如下步驟進行恢復:
① startup nomount;
② restore spfile from "備份檔案";
④ startup;
l 如果沒有關於SPFILE的RMAN備份,那麼可以從告警日誌中獲取資料庫啟動所需要的引數。
& 說明:
有關SPFILE的恢復可以參考我的BLOG:http://blog.itpub.net/26736162/viewspace-2152507/
4.5.2 spfile 丟失
4.5.2.1 資料庫沒有掛掉
create spfile from memory;
create spfile="/home/oracle/spfileOCPLHR1.ora" from memory;
create pfile from memory;
create spfile from pfile;
除非必要,應該將以下劃線開頭的隱含引數刪掉:
grep -v "^(_|#)." initlhrdb.ora > initlhrdb.o