您的位置:首页 > 数据库

调整sga大小导致数据库起不来的问题修改

2012-02-22 14:31 483 查看
触发器和函数使用了游标,结果出现“Oracle ORA-06502: PL/SQL: 数字或值错误 : 字符串缓冲区太小”错误,需要将sga值设置得大一些,并且清空sga。

使用

sql>alter system set db_cache_siza=****** scope=spfile;

正常执行。

结果重启发现,oracle起不来了,出现ora-00384错误,因为memory_target=sga+pga,但是memory_target<sga,就会出问题,oracle居然不提示参数错误。

此时需要

c>sqlplus /nolog

sql>connect / as sysdba

sql>create pfile='/home/oracle/initora11g.ora' from spfile;--- 不一定叫这个名字,找安装文件夹,然后找最近修改的那个ora就行了

File created.

SQL> host echo "memory_target=367001600" >> /home/oracle/initora11g.ora---我在这一步是用notepad手工修改的memory_target的值

SQL> startup pfile=/home/oracle/initora11g.ora

ORACLE instance started.Total System Global Area 267825152 bytesFixed Size 1299316 bytesVariable Size 176163980 bytesDatabase Buffers 88080384 bytesRedo Buffers 2281472 bytesDatabase mounted.Database opened.

SQL> create spfile from pfile='/home/oracle/initora11g.ora'

File created.

////////////

还有一个原因如下:

远程发送过来的数据的定义为char(3),接口表为char(1),修改了该接口表的字段长度定义,但相关的sp的相应字段定义没有修改,导致出现错误,彻底修改后即可。

另:数据类型也要检查,一定要一致,否则出错。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: