錯誤修改spfile檔案處理

2021-07-31 10:55:24 字數 1584 閱讀 7371

sql> connect / as sysdba;

已連線。

sql> show sga

total system global area  171966464 bytes

fixed size 

787988 bytes

variable size 

145488364 bytes

database buffers 

25165824 bytes

redo buffers 

524288 bytes

sql> alter system set sga_max_size=5g scope=spfile;

系統已更改。

sql> shutdown immediate

ora-01109: 資料庫未開啟

已經解除安裝資料庫。

oracle 例程已經關閉。

sql> startup

ora-27103: internal error

osd-00005: 附加錯誤資訊

sql> startup

ora-27100: shared memory realm already exists

sql> connect / as sysdba;

已連線到空閒例程。

sql> startup

ora-27100: shared memory realm already exists

sql> create pfile from spfile

2  ;

檔案已建立。

sql> startup pfile='d:\oracle\product\10.1.0\db_1\database\initmyoracle.ora';

ora-27100: shared memory realm already exists

這個錯誤的意思是例項共享記憶體的空間已經存在,但是實際上自己又沒有啟動資料為例項。

修改了pfile檔案,使用了正確設定的pfile還不不能正常啟動

這是windows服務及oracle的問題,oracle在windows啟動中如果由於sga_max_size的問題,例項不會啟動成功,但是仍然會有乙個錯誤的例項存,shutdown immediate及shutdown abort都關閉不了。由於預設安裝時,oracle在windows服務啟動時會自動啟動例項,所以每次啟動服務都會自動用預設的錯誤的spfile啟動例項,導至記憶體錯誤。

知道問題的原因後,解決的辦法就很簡單,解決的辦法以下兩種:

1.關閉服務,刪除資料庫的spfile檔案,用新的正確的pfile啟動後,再生成新的spfile;

2.設定資料庫在服務啟動時不自動啟動例項,再用正確的pfile啟動例項,然後再生成新的spfile。

如何設定資料庫在服務啟動時不自動啟動例項有以下兩種方法:

1.直接修改登錄檔hkey_local_machine\software\oracle\home0下的資料庫物件項ora_mydb_autostart值為false

2.使用oracle安裝的工具administration assistant for windows nt修改資料庫啟動關閉選項,如下圖所示。

修改spfile位置

雖然很多地方不建議這麼做,可是有ha oracle軟體建在本地盤的情況下,如果spfile放在dbs下,會導致每次修改spfile都要去手動copy到備機上,這是很麻煩的一件事情,所以我把spflie放在隨ha切換的儲存磁碟上。1 通過 oracle dbs下的pfile起庫 startup pfi...

一次對spfile錯誤的修改引發的問題

2009 11 27,在對oracle的學習過程中,嘗試修改spfile裡定義的初始化引數。直接開啟spfile檔案 solaris平台下 用vi命令修改了其中的部分引數,修改強制儲存後,資料庫無法啟動 出現如下錯誤 ora 01078 failure in processing system pa...

如何生成SPFILE檔案

1.spfile是oracle9i之後引入的,目的是提高系統安全性。在oracle8i下初始化引數檔案為文字檔案,可以使用文字編輯器進行編輯,當需要修改初始化引數時,需要在init.ora檔案中修改,再重新啟動資料庫例項。在oracle10g,引入了伺服器引數檔案 spfile 可以簡化初始化引數的...