ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 修改数据库的ORACLE的SGA和PGA的值

修改数据库的ORACLE的SGA和PGA的值

原创 Linux操作系统 作者:mengzhaoliang 时间:2009-04-07 18:54:53 0 删除 编辑

/*
*时间: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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
暂无介绍

注册时间:2008-01-30

  • 博文量
    335
  • 访问量
    2913615