众所周知,在Oracle9i中对初始化参数的管理引入了一个新的文件:Spfile.这个参数是个二进制文件,手工对其进行编辑会出错.可以采用alter system set ......的命令方式来对其进行修改.
不妙的是,有的时候,错误的修改了参数之后发现系统不能启动,而粗心的用户或者初级DBA可能还没有对该文件(或者参数文件的内容)进行备份.
这个时候如何解决呢?
下面是模拟出错的场景:
SQL> connect / as sysdba
已连接。
SQL> show parameter spfile
NAME TYPE VALUE
-------------------------------- ---------- --------------------
spfilestring %ORACLE_HOME%\DATABASE\SPFILE%ORACLE_SID%.ORA
#使用了Spfile
SQL> show parameter db_cache_size;
NAME TYPE VALUE
------------------------------------ ---------- ---------------
db_cache_size big integer 67108864
SQL> alter system set db_cache_size=671088640000000 scope=spfile;
系统已更改。
#我们在上一步把一个参数进行“错误的调整”
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup
ORA-27102: out of memory
OSD-00029: Message 29 not found; product=RDBMS; facility=SOSD
O/S-Error: (OS 8) ?洢???????????????
SQL>
#错误出现,不能启动数据库。
有的朋友可能看到过《9i新特点:SPFILE的使用》(参见下面的参考资料)这篇文章,其中有这样一句话:
你可以在PFILE链接到SPFILE文件,同时在PFILE中定义其他参数,如果参数重复设置,后读取的参数将取代先前的设置。
稍加注意这句话,发现正是解决我们目前问题的办法:
手工创建一个pfile 类型的文件,内容如下:
spfile='D:\ORACLE\ora92\database\SPFILEDEMO.ORA'
*.db_cache_size=67108864
在SPFILEDEMO.ORA文件中已经有一个db_cache_size 参数,后读取的参数将取代先前的设置。
OK。
现在用这个参数启动数据库:
SQL> STARTUP pfile='D:\ORACLE\ora92\database\initdemotest.ora'
ORACLE 例程已经启动。
Total System Global Area 160505408 bytes
Fixed Size 454208 bytes
Variable Size 92274688 bytes
Database Buffers 67108864 bytes
Redo Buffers 667648 bytes
数据库装载完毕。
数据库已经打开。
马上要做的事情就是备份spfile 的内容:
SQL> create pfile='D:\ORACLE\ora92\database\initdemo.ora' from spfile;
亡羊补牢,记得再修改初始化参数之前做好备份。
参考资料:
《9i新特点:SPFILE的使用》 (eygle大作,ITPub 电子杂志第四期)
下载地址:http://www.itpub.net/magazine/itpub200304.rar
《Oracle9i Database Administrator's Guide Release 2 (9.2)》
下载地址: http://tahiti.oracle.com
http://www.google.com
本文出处:
<a href="http://www.csdn.net/Develop/read_article.asp?id=22598">http://www.csdn.net/Develop/read_article.asp?id=22598</a>
分享到:
相关推荐
SPFILE参数错误
ORA-32001:write to spfile requested but no spfile is in use请求写入spfile,但没有使用spfile的解决方法 在输入以下语句中报了这样的错误: SQL>alter system set control_files=’/u01/app/oracle/oradata/prod/...
大家都知道在Oracle中pfile参数是可以手动更改的,但是spfile是二进制文件所以不可以手动更改,但我最近遇到了一个问题,修改参数错误,导致Oracle启动不了,一定要修改spfile该怎么办呢?下面通过这篇文章来一起看...
创建spfile并修改数据库连接数
oracle spfile/pfile详解; 深入spfile 及 pfile的区别
在oracle10g上创建spfile.doc 当spfile丢失时的解决方案
RAC中创建spfile的各种方法,有截图,说明,对新人帮助很大
PFILE属于静态文件,修改之后的参数需要重启Oracle服务器才能生效;SPFILE属于动态文件,参数修改后立即使之生效,且为二进制文件,更加的安全。
Oracle9i引入了具有延续性的初始化参数文件SPFILE(Server Parameter FILE),所谓延续性是指对初始化参数的在线修改可以直接作用到参数文件中,这样所有被修改的参数将永久生效。本文将为大家介绍Oracle中SPFILE...
針對oracle 的參數檔spfile&pfile的分析討論
因配置Process参数导致Oracle监听无法启动的问题解决办法
Oracle培训资料030710g11g参数SPFILE.ppt
【故障处理】修改SPFILE无权限.pdf【故障处理】修改SPFILE无权限.pdf
原创文档详细说明ORACLE10G参数文件PFILE与SPFILE, 超级详细
主要给大家介绍了关于在Oracle实例关闭时如何修改spfile参数的相关资料,文中通过示例代码介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编来一起学习学习吧。
NULL 博文链接:https://hidefromall.iteye.com/blog/371031
Oracle 9i SPFILE的使用
因为asm磁盘组路径的原因,不能直接对pfile-spfile进行创建,需要指定路径进行创建,不然就会报错.
Oracle9i引入了具有延续性的初始化参数文件SPFILE(Server Parameter FILE),所谓延续性是指对初始化参数的在线修改可以直接作用到参数文件中,这样所有被修改的参数将永久生效。本文详细讨论了SPFILE的优点及其新...