参考https://blog.csdn.net/u014331650/article/details/120119016该博客解决的问题
有时候,我们会因为某些原因(例如修改最大的内存使用)去修改Oracle数据库的初始化参数,但如果修改错误,重启之后就会导致数据库无法启动。
例如,原本的参数sga_max_size=3G、sga_target=2G,但某天修改成sga_max_size=1G、sga_target=2G,这样就会导致数据库启动的时候提示sga_target大于sga_max_size,无法启动。此时我们就需要修改初始化参数,但由于数据库无法启动到任何阶段,没有办法通过alter system修改,只能通过修改数据库参数文件。
默认Oracle是使用spfile启动,这个文件对于数据库管理员来说是不能直接修改的,属于二进制类型,我们能修改的是init.ora文件,该文件属于文本类型,所以我们需要先进行参数文件的转换。步骤如下:
假设我们的sid是orcl
找到spfile文件位置,并定位到改目录下
默认位置:
linux:$ORACLE_HOME/dbs/spfileorcl.ora
windows:%ORACLE_HOME%\database\spfileorcl.ora
cd $ORACLE_HOME/dbs
登录sqlplus
sqlplus / as sysdba
1、执行create pfile from spfile;
生成的initorcl.ora就属于文本类型的初始化参数文件(位置在:$ORACLE_HOME/dbs/)
————————————————
2、更正initorcl.ora里面错误的参数(vim修改参数为设置之前的)
sga_max_size=3G
sga_target=2G
3、再次登录数据库执行启动:startup pfile='/u01/app/oracle/11g/dbs/initorcl.ora';
能够正常启动并确认参数没有错误
4、最后再执行create spfile from pfile
执行前请注意备份spfileorcl.ora!!!
执行前请注意备份spfileorcl.ora!!!
执行前请注意备份spfileorcl.ora!!!
原文链接:https://blog.csdn.net/u014331650/article/details/120119016