登录模块加载中...
会员投稿 投稿指南 今天是:
打印本页 | 关闭窗口 | 双击滚屏 您的位置首页>>网页制作学习园地>>数据库类>>ORACLE>>oracle9i修改sga_max_size引起问题的解决
oracle9i修改sga_max_size引起问题的解决
来源: ‖ 作者: ‖ 点击: ‖ 时间:12-10-16 15:55:08 ‖ 【 】‖ 我要投稿
为了改善oracle性能,尝试修改某些参数,结果修改sga_max_size=2G
   
    后数据库启动失败(后来才知道最大值不能超过1.7G),再启动的时候报:
   
    ORA-27123: unable to attach to shared memory segment
   
    Linux Error: 22: Invalid argument
   
    这时候用sysdba登录,已经不能修改参数了。经过疯狂Google后,用以下方法解决:
   
    1、用另外的pflie启动数据库
   
    Sql代码
   
    startup pfile='${ORACLE_BASE}/admin/***(sid)/pfile/init***(sid)。ora'
   
    pfile文件去上面那个目录找找,一般会有,没有的话去别的机器上面拷一个回来,没有,我就不知道该怎么搞了,你也别看下去了。
   
    2、生成spfile.这个时候数据库是正常跑起来了,但是还改不了参数的,会报一下错误:
   
    Sql代码
   
    ORA-32001: write to SPFILE requested but no SPFILE specified at startup
   
    正常用startup启动也还是不行的,所以要先生成spfile.用这个命令:
   
    Sql代码
   
    create spfile from pfile='${ORACLE_BASE}/admin/***(sid)/pfile/init***(sid)。ora'
   
    3、关掉它,再起来。这步不知道是不是一定要的,习惯性喜欢重启(最有效的排障手段呀)。
   
    Sql代码
   
    shutdown immediate;
   
    startup;
4、现在正常了,改改参数吧,这次可别改错了。
   
    Sql代码
   
    alter system set sga_max_size=1500M scope=spfile;
   
    没问题,数据库可以继续跑。有问题只能说各有各的不幸,慢慢Google吧。
   
    据说pfile是不能直接编辑的,我编辑过没跑起来,当然我不确定是因为我编辑过所以不行了,但是推荐还是别改它了。
   
    搞数据库的新手,郁闷得很,但是这次还是学到一点点东西:
   
    1、数据库可以在startup的时候指定一个pfile(其实我不是很明白pfile是什么来的,不过我知道它很重要,下次一定备份一个能用的)。
   
    2、pfile可以通过spfile建一个。用下面的命令(路径自己指定):
   
    Sql代码
   
    create pfile='/opt/oracle/init.ora' from spfile;
   
    3、通过指定pfile启动数据库后,要切到spfile(不然你每次指定pfile启动吧,不过其实spfile是什么?)。用下面的命令:
   
    Sql代码
   
    create spfile from pfile='${ORACLE_BASE}/admin/***(sid)/pfile/init***(sid)。ora'
加入收藏:  加入收藏夹  | 发送给好友:  发送给好友
责任编辑:admin
相关文章列表
请文明参与讨论,禁止漫骂攻击。  
网友评论