Oracle动态修改系统变量?前提是spfile启动数据库!

JokerFei 2019-06-01

概述

最近在做数据库闪回区调整的时候发现报了一个spfile的错,生产环境都能报这个问题?下面一起看看吧~


报错

相关命令:

SQL> alter system set db_recovery_file_dest_size=10G scope=both; 
alter system set db_recovery_file_dest_size=10G scope=both
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE is in use

可以看到提示没有spfile

Oracle动态修改系统变量?前提是spfile启动数据库!


解决过程

1、确认数据库是以spfile还是pfile启动的

Oracle动态修改系统变量?前提是spfile启动数据库!

没有值就是pfile启动,如果有就证明是spfile启动。

2、切换成spfile

要动态修改一定要用spfile启动。如果现在是用pfile启动,可以这样切换成spfile启动:

SQL> create spfile from pfile;
SQL> shutdown immediate;
SQL> startup;

Oracle动态修改系统变量?前提是spfile启动数据库!

重启后问题解决。


这个问题解决还是比较容易的,问题是居然是生产环境用的pfile启动,应该是之前操作的同事修改相关值后没有修改回来,有点疏忽。后面会分享更多devops和DBA方面的内容,感兴趣的朋友可以关注一下~

Oracle动态修改系统变量?前提是spfile启动数据库!

相关推荐