在安装oracle 10g r2 数据库时,默认的SGA大小为584M,在执行大量的空间计算或者复杂的SQL计算时候,经常出现share_pool不能分配的问题,在网上找了些资料,说是因为SGA太小导致,于是乎找了一些按照网上的例子操作了一番,先将我的操作实战步骤记录如下:
1、打开DOS窗口,连接到oracle例程
sqlplus /nolog
conn system/mydb@mydb as sysdba;
2、 备份spfile
create pfile='d:\aa.ora' from spfile;
3、修改aa.ora文件
因为spfiel是二进制文件,不能修改,只能通过修改pfile,然后重新写入spfile
*.sga_max_size=1048576000
*.sga_target=1048576000
注:上面设置的为1000M;
将上面的数字设置为你服务器物理内存的50%,
4、shutdown immediate ;关闭现在运行的例程
5、退出当前连接,重新连接数据库
sqlplus /nolog
conn / as sysdba;
如果出现错误,则打开注册表,到如下路径进行如下操作
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1\
找到oracle_sid字符串(如果没有,自己新建),然后将oracle_sid的值修改为要连接的实例,如MYDB等
6、继续连接
sqlplus /nolog
conn / as sysdba;
7、连接成功后,执行如下语句:
create spfile from pfile='d:\aa.ora'
startup
8、操作成功!
以上操作在windows 2003 + oracle 10g r2上操作成功!