oracle修改SGA後無法啟動的臨時解決方案

來源:互聯網
上載者:User

做oracle的最佳化,使用Console中開啟資料庫的配置,發現 由於裡面有的值為零,於是我按照它的建議修改了對應的值。結果重啟後oracle啟動不起來了。

使用Console串連提示: 無法解析串連描述符中指定的SID。

使用pl/sql串連提示:ORA-12505:TNS:監聽程式當前無法識別串連描述符中所給出的SID

1、 若資料庫機器上沒有裝Console或者沒有使用Console配置網路服務名.

則可以通過命令sqlplus sys/sys as sysdba 登入到伺服器空閑進程。接著執行步驟4。

2、如果配置了網路服務名,則

在路徑D:\oracle\product\10.2.0\db_1\network\admin\listener.o
ra下 找到listener.ora。

原來listener.ora內容:

# listener.ora Network Configuration File:  D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
)

 

 

改成(紅色部分為增加部分):

# listener.ora Network Configuration File:  D:\oracle\product\10.2.0\db_1\network\admin\listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = XXX(網路服務名))
(ORACLE_HOME = D:\oracle\product\10.2.0\db_1)
(SID_NAME = XXX(網路服務名)))
)
)

LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1568))
)
)

 

 

修改完 listener.ora後

使用console串連提示“資料庫已關閉”。

使用pl/sql串連提示

ORA-27101 Shared memory realm does not exist
ORA-01034 ORACLE not available

查看db1檔案夾下的alert_XXX(網路服務名).log。

裡面記錄 :Cannot set sga_target with db_block_buffers set

3、使用dos端登入oracle

sqlplus sys/sys@XXX(網路服務名). as sysdba
能夠登陸
提示已經串連到空閑常式

4、找 pfile,在 /.../admin/XXX(服務名)/pfile 下,init.ora.XXXXXXX(數字串)

5、執行命令

SQL> startup pfile='pfile 路徑'
通過指定的 pfile 啟動資料庫執行個體

結果

6、執行命令

SQL> create spfile from pfile='pfile 路徑';(一定要有分號!)

建立成功會提示: 檔案已建立。

資料庫可以登入了,查看常式/配置/記憶體 ,恢複了原樣。

對於32 BIT的Windows系統,有SGA 1.7G限制
某些OS系統本身也有一些記憶體參數限制

修改 SGA 檔案:

SGA_MAX_SIZE是調優oracle9i非常重要的參數,但也是並不是調的越大越好。相反,oracle9i對SGA_MAX_SIZE的最大值有一個限制:1.7G,超過該值就會造成執行個體無法啟動,系統報以下資訊:

   1.當你控制台中設定完執行個體SGA最大值,點擊“應用”後,oracle在“正在啟動資料庫”的過程中,提示:ORA-27102:out of memory,啟動失敗   2.當你第二次手動啟動執行個體時,系統會提示:ORA-27100:shared memory realm already exists,最終還是啟動失敗。    解決該問題的思路:想辦法把SGA_MAX_SIZE的值修改到1.7G以下,然後再啟動    解決該問題需要用到從oracle9i開始才擁有的特性:spfile。   spfile是一個二進位檔案,可以通過pfile來建立,而且可以通過rman備份。它管理的是初始化參數;   spfile和pfile不同之處在於:   1.在oracle9i之前使用pfile儲存初始化參數設定,當oracle執行個體啟動時去讀取這些參數,任何參數的修改都必須重啟執行個體才會生效。    2.使用spfile來管理初始化參數,可以使用ALTER SYSTEM或者ALTER SESSION來動態修改那些可動態修改的參數,不必重啟執行個體立即生效。    3.除了第一次啟動資料庫時,oracle讀取的是pfile,然後根據pfile來建立spfile,從此啟動我們不在需要pfile。    4.pfile是文字檔,可以通過文字編輯器來修改,而spfile是二進位檔案,用文字編輯器無法正常編輯。可以修改文字格式設定的pfile之後,用“create spfile from pfile”命令將文本產生二進位的spfile    好,大概瞭解了spfile和pfile之後,我們的思路應該很清晰了,下面是解決方案:   1.手動把執行個體的服務關閉(在服務裡找到“OracleServiceSID”服務,右擊選擇“停止”)    2.開啟【程式】-【Oracle - OraHome92】-【Configuration and Migration Tools】-【Administration Assistant for Windows NT】    3.在該頁面中開啟樹形結構,找到執行個體結點,右擊執行個體結點選擇“啟動/關閉選項”,取消“服務啟動時啟動曆程”選項。    4.右擊執行個體結點,點擊“啟動服務”。    5.運行中敲入“cmd”,進入sqlplus,然後通過命令建立可以修改的pfile文字檔:C:\Documents and Settings\Administrator>sqlplus /nologSQL*Plus: Release 9.2.0.1.0 - Production on 星期四 9月 24 22:43:20 2009Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.SQL> conn /as sysdba
已串連到空閑常式。
SQL> create pfile='d:\zgznew.ora' from spfile;檔案已建立。      6.然後用文字編輯器開啟zgznew.ora,找到SGA_MAX_SIZE參數,並將它修改到1.7G以下,注意,參數值的單位是位元組。修改好之後儲存,然後再通過命令建立spfile二進位檔案:SQL> create spfile from pfile='d:\zgznew.ora' ;檔案已建立。     7.此時再用startup命令啟動執行個體就可以成功了:SQL> startup
ORACLE 常式已經啟動。Total System Global Area  529079780 bytes
Fixed Size                   454116 bytes
Variable Size             503316480 bytes
Database Buffers           25165824 bytes
Redo Buffers                 143360 bytes
資料庫裝載完畢。
資料庫已經開啟。
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.