/*
*时间:2009-04-07 Monday
*环境:Windows 2003 Oracle10g10.2.0.1.0
*标题:修改数据库的ORACLE的SGA和PGA的值
*/
1、在用客户端连接:
用plsql连接数据库时出现“ORA-12518:TNS:监听程序无法分发客户机连接”
2、查看了alert_SID.log日志:
Doing block recovery for file 3 block 35992
Sat Apr 04 07:35:14 2009
Errors in file e:\oracle\product\10.2.0\admin\xboms\bdump\xboms_pmon_3920.trc:
ORA-04030: 在尝试分配 8389132 字节 (pga heap,redo read buffer) 时进程内存不足
Sat Apr 04 07:35:23 2009
Process startup failed, error stack:
Sat Apr 04 07:35:23 2009
Errors in file e:\oracle\product\10.2.0\admin\xboms\bdump\xboms_psp0_3408.trc:
ORA-27300: OS 系统相关操作: spcdr:9261:4200 失败, 状态为: 997
ORA-27301: OS 故障消息: 重叠 I/O 操作在进行中。
ORA-27302: 错误发生在: skgpspawn
3、$ORACLE_HOME/network/log/listener.log日志:
03-4月 -2009 22:10:40 开始就报下面的错误:
04-4月 -2009 07:36:19 * ping * 0
04-4月 -2009 07:36:19 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=SYSTEM))(COMMAND=status)
(ARGUMENTS=64)(SERVICE=(ADDRESS=(PROTOCOL=TCP)(HOST=erp1)(PORT=1568)))(VERSION=169869568)) * status * 0
04-4月 -2009 07:36:28 * (CONNECT_DATA=(SID=XBOMS)(CID=(PROGRAM=E:\oracle\product\10.2.0\db_1\perl\5.8.3
\bin\MSWin32-x86-multi-thread\perl.exe)(HOST=ERP1)(USER=SYSTEM))) * (ADDRESS=(PROTOCOL=tcp)
(HOST=10.142.80.40)(PORT=2287)) * establish * XBOMS * 12518
TNS-12518: TNS: 监听程序无法分发客户机连接
TNS-12560: TNS: 协议适配器错误
TNS-00530: 协议适配器错误
32-bit Windows Error: 233: Unknown error
对数据库做个AWR(自动负载资料库)报告和ADDM(自动数据库诊断监听)报告,addm要求增加数据库的SGA
服务器的CPU是8个2.00GHz,8GB内存。发现系统给Oracle的内存太小
SQL> show parameter spfile;
SQL> show parameter sga
SQL> show parameter pga
spfile文件一般在windows的$ORACLE_HOME/dbs/目录下
SQL> create pfile from spfile;
刚创建的pfile文件一般在windows的$ORACLE_HOME/database/目录下,init$ORACLE_SID.ora
修改init$ORACLE_SID.ora文件中的*.pga_aggregate_target=62914560 (字节:60M*1024*1024)
和*.sga_target=209715200 (字节200M*1024*1024) 的值
然后
SQL> create spfile from pfile;
(有些windows系统生成的spfile文件在$ORACLE_HOME/database/目录下)
在关闭数据库之前最好备份一些数据库,如果SGA大小配置不当,会遇到各种不能打开数据的问题。
关闭数据库:
SQL>shutdown immediate
启动数据库
SQL>startup
检查sga和pga的值
SQL> show parameter sga
SQL> show parameter pga
修改成功!
注:
ORA-04030: 在尝试分配 8389132 字节 (pga heap,redo read buffer) 时进程内存不足
ORA-04030:out of process memory when trying to allocate string bytes
下面分析了ORA-04030的出现原因及简单解决方法
ORA-04030出现的基本都是过多的使用memory造成的
Oracle process使用的内存数量是有一定限制的:
对于32 BIT的Windows系统,有SGA 1.7G限制
某些OS系统本身也有一些内存参数限制
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12778571/viewspace-586517/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12778571/viewspace-586517/