对Spfile之参数错误修改之后的解决办法(FAQ)

原创 2003年12月11日 11:34:00


众所周知,在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>

对Spfile之参数错误修改之后的解决办法(FAQ) ZZ

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

对Spfile之参数错误修改的解决办法

对初始化参数的管理Spfile.这个参数是个二进制文件,手工对其进行编辑会出错.可以采用alter system set ......的命令方式来对其进行修改  不妙的是,有的时候,错误的修改了参数之...
  • gangge27
  • gangge27
  • 2008年04月29日 14:23
  • 425

[oracle]初始化参数文件spfile、pfile及修改参数的两种方式

oracle数据库在启动过程中要读取初始化参数文件以确定一系列参数,例如数据库名pfile称、SGA大小、最大连接数等等,pfile就是这样的一个初始化参数文件,文本文件,可以直接打开编辑,数据库启动...
  • joyeu
  • joyeu
  • 2013年08月27日 15:12
  • 3470

oracle spfile参数设置错误的处理方法

今天没有注意所用的数据库是建立在32位的Windows上的,看到内存有8G,就马上将Oracle的SGA改为5G了,结查重起Oracle时马上报 out of memory的错。 错误操作如下: ...
  • flexitime
  • flexitime
  • 2015年04月09日 23:25
  • 2291

pfile spfile静态和动态修改配置参数

由于时间的关系,就不一一说明啦, SQL> conn /as sysdba 已连接。 SQL> shutdown immediate 数据库已经关闭。 已经卸载数据库。 ORACLE 例程...
  • zxq1138634642
  • zxq1138634642
  • 2013年10月07日 19:54
  • 635

ORA-16179: 不允许使用 SPFILE 对 "log_archive_dest_1" 进行增量更改

关键字写错造成的ORA-16179 SQL> alter database open; 数据库已更改。 SQL> alter system set log_archive_des...
  • lk_db
  • lk_db
  • 2017年12月03日 18:08
  • 130

RAC修改数据库的spfile位置

RAC修改spfile位置 [root@rac1 ~]# su - oracle [oracle@rac1 ~]$ sqlplus / as sysdba SQL*Plus: Release 1...
  • Evils798
  • Evils798
  • 2014年01月08日 22:53
  • 3141

更改ASM实例的spfile路径方法

经测试,在ASM实例中,执行 createspfile from pfile;重新创建 spfile 文件时,会报如下错误: SQL> createspfile='+CRS/rac-cluster/...
  • Samdy_Chan
  • Samdy_Chan
  • 2016年09月23日 18:26
  • 1300

Oracle修改spfile文件的路径

问题背景:今天同事在做DB双机切换的时候发现oracle的spfile文件作为+DG_DATA 下的一个资源,本意是在+DG_ORA下                    后来发现spfile的路...
  • yjbqzsf
  • yjbqzsf
  • 2013年04月02日 10:27
  • 2147

浅析RAC下SPFILE文件修改之整理三篇文章

关于RAC下spfile浅析_整理于_2014.4.17 第一篇:RAC下SPFILE文件修改 在RAC下spfile位置的修改与单节点环境不完全一致,有些地方需要特别注意,否则可能修改会失败。   ...
  • huangyanlong
  • huangyanlong
  • 2014年06月23日 20:47
  • 1684
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:对Spfile之参数错误修改之后的解决办法(FAQ)
举报原因:
原因补充:

(最多只允许输入30个字)