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

 触发器和函数使用了游标,结果出现“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的相应字段定义没有修改,导致出现错误,彻底修改后即可。

 

另:数据类型也要检查,一定要一致,否则出错。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值