在使用SPFILE之后,可能会遇到一些不同以往的错误。比如修改了错误的参数导致数据库无法启动,手工修改SPFILE导致参数文件损坏。
了解参数的优先级和生效原则,就可以就此修改和绕过错误:
实例级别的参数级别高于数据库层面的参数。即只有当实例级别未做设置时,在数据库级别的同一参数才会生效。
级别相同,那么后面出现的参数生效。
下面介绍参数修改错误常见问题的处理办法。比如修改SGA_MAX_SIZE超过系统最大内存数量:
SQL> alter system set sga_max_size=5G scope=spfile; System altered.
那么下次启动,内存不足,数据库是无法启动的,数据库出现ORA-27102号错误:
SQL> shutdown immediate; Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORA-27102: out of memory
如果是在Linux/UNIX上,可以在实例未启动时连接,创建PFILE,然后手工修改PFILE,用PFILE启动数据库即可。
[oracle@jumper oracle]$ SQLplus "/ as sysdba" Connected to an idle instance. SQL> create pfile from spfile; File created.
也可以编辑一个参数文件,位置在$ORACLE_HOM/dbs(Windows为database目录)下,包含如下两行。
[oracle@test126 dbs]$ cat initeygle.ora SPFILE='/opt/oracle/product/10.2.0/dbs/spfileeygle.ora' sga_max_size=1073741824
第一行指向SPFILE,第二行写上出错的参数,给一个正确的值。这个值在实例启动时会覆盖之前错误的设置,然后就可以使用这个文件启动数据库实例了。
SQL> startup pfile=$ORACLE_HOME/dbs/initeygle.ora ORACLE instance started. Database mounted. Database opened.
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。