数据库

本类阅读TOP10

·SQL语句导入导出大全
·SQL Server日期计算
·SQL语句导入导出大全
·SQL to Excel 的应用
·Oracle中password file的作用及说明
·MS SQLServer OLEDB分布式事务无法启动的一般解决方案
·sqlserver2000数据库置疑的解决方法
·一个比较实用的大数据量分页存储过程
·如何在正运行 SQL Server 7.0 的服务器之间传输登录和密码
·SQL中两台服务器间使用连接服务器

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
对Spfile之参数错误修改之后的解决办法(FAQ)

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站


众所周知,在Oracle9i中对初始化参数的管理引入了一个新的文件:Spfile.这个参数是个二进制文件,手工对其进行编辑会出错.可以采用alter system set ......的命令方式来对其进行修改.

不妙的是,有的时候,错误的修改了参数之后发现系统不能启动,而粗心的用户或者初级DBA可能还没有对该文件(或者参数文件的内容)进行备份.

这个时候如何解决呢?

下面是模拟出错的场景:

SQL> connect / as sysdba
已连接。
SQL> show parameter spfile

NAME                             TYPE        VALUE
-------------------------------- ---------- --------------------
spfile                           string     %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>




相关文章

相关软件