今天没有注意所用的数据库是建立在32位的Windows上的,看到内存有8G,就马上将Oracle的SGA改为5G了,结查重起Oracle时马上报 out of memory的错。
错误操作如下:
SQL> alter system set sga_max_size=5G scope=spfile;
System altered.
启动时,内存不足,数据库是无法启动的:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-27102: out of memory
解决的办法:在机器上创建一个文件,例如叫 mypfile.txt,编辑这个文件,内容如下:
SPFILE='d:\oracle\product\10.2.0\dbs\spfileorcl.ora'
sga_max_size=1073741824
注:
1.spfile的位置应按实际位置;
2.上面的sga值为1G,请根据实际修改。
3.此方法其实就是通过mypfile.txt指定加载原来spfile的内容,同时在文件后面把spfile中存在的错误修正过来。
接着:
sqlplus / as sysdba
SQL>startup pfile=c:\mypfile.txt
待Oracle起来后,再重新修正spfile的内容:
SQL> alter system set sga_max_size=2G scope=spfile;
上面的操作是在Windows下,Linux下也是一样的。