今天一台Linux伺服器擴充了一下記憶體,達到4G,開發的人自己修改了一下SGA結果資料庫無法啟動了.
啟動不了時,出的錯誤是這個樣子的:
[Oracle@neirong oracle]$ sqlplus "/ as sysdba"
SQL*Plus: Release 9.2.0.4.0 - Production on Fri Nov 25 15:43:26 2005
Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.
Connected to an idle instance.
SQL> startup
ORA-27123: unable to attach to shared memory segment
Linux Error: 22: Invalid argument
Additional information: 1
Additional information: 458753
SQL> exit
Disconnected
在32位平台上,預設的SGA最大隻能擴充到1.7G,如果需要支援更大的記憶體,就需要降低mapped_base,重新Link Oracle軟體.
俺的平台為:
[oracle@neirong bdump]$ cat /etc/RedHat-release
Red Hat Enterprise Linux AS release 3 (Taroon Update 2)
簡單操作如下:
cd $ORACLE_HOME/rdbms/lib
cp ksms.s ksms.s.bak ( if u have a ksms.s file)
genksms -s 0x12000000 > ksms.s
make -f ins_rdbms.mk ksms.o
make -f ins_rdbms.mk ioracle
此處先備份ksms.s檔案,如果編譯過程中出現錯誤,保證操作可以被恢複:
恢複步驟大致如下:
cd $ORACLE_HOME/rdbms/lib
cp ksms.s.bak ksms.s (if u have backup ksms.s file)
genksms > ksms.s
make -f ins_rdbms.mk ksms.o
make -f ins_rdbms.mk ioracle