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 可以簡化初始化引數的...