记录一次ORACLE故障修复记录

一、故障描述:

同事修改ORACLE数据库的参数,修改完毕并保存spfile后重启数据库报错:ORA-00093 : pga_aggregate_limit must be between 8000M and 100000G

二、故障排除思路

找到pfile,修改报错的参数的参数值,如果没有找到pfile的话,就登录到数据库里(不用管数据库起没起来),执行一下命令创建pfile文件。

create pfile='xxxxxx' from spfie;  # xxxxx是新建的pfile绝对路径

然后修改pfile,利用pfile启动数据库

startup pfile='xxxxx';

利用pfile创建spfile

create spfile from pfile;

重启数据库就可以了。

shutdown immediate;
startup;

之所以这么做是因为 spfile是二进制文件,不可以直接修改的,但是pfile可以修改,所以我们可以迂回作战,利用现在的spfile生成pfile,修改pfile,然后用修改过的pfile再生成spfile。

三、遇到的问题

没有在$ORACLE_HOME/dbs/下找到数据库对应的pfile,spfile的位置是在ASM磁盘组里。其实这种情况按照上面的方法也能修复,不过到了最后一步,创建完新的spfile后重启数据库发现数据库使用的还是原来的spfile,因为这个数据库是RAC集群数据库,所以使用集群命令查看spfile路径。发现spfile路径还是原来的路径

srvcrl config database -db xxx;

这就需要修改spfile路径,使用以下集群命令

srvctl modify database -db xxx -spfile 'xxxxxxx';

这时又报错CRS-0245,用户权限不够

既然如此,那就用root用户来执行命令,注意,此时需要使用集群命令的绝对路径,不然很可能会提示找不到srvctl命令

/xxx/xxx/xxx/xxx/bin srvctl modify database -db xxx -spfile 'xxxxx'

此时就可以了。

四、尚未解决的问题

ORACLE提供了在数据库里修改spfile位置的命令

SQL> alter system set spfile='xxxxxxx'

但是当我去执行时报错:

ORA-32017: failure in updating SPFILE
ORA-32019: The parameter SPFILE cannot be updated in the server parameter file

我在网上也找不到如何解决,如果有进来的大佬知道如何解决,请指点一下小弟,我如果之后找到了解决方法,也会更新到这里的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值