`
yanghuidang
  • 浏览: 987408 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

阅读更多


众所周知,在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参数错误

    在SPFILE中设置的参数在数据库运行时可以被动态更改,但某些关键参数的修改仅能在重启数据库后生效。 #### 二、问题背景与分析 从提供的部分内容来看,出现的主要问题是与`log_archive_dest`相关的设置错误,具体...

    ORA-32001:请求写入spfile,但没有使用spfile的解决方法

    ORA-32001:write to spfile requested but no spfile is in use请求写入spfile,但没有使用spfile的解决方法 在输入以下语句中报了这样的错误: SQL&gt;alter system set control_files=’/u01/app/oracle/oradata/prod/...

    oracle 修改sga参数无法启动的解决办法

    Oracle 修改 SGA 参数无法启动的解决办法 Oracle 中的 SGA(System Global Area)是一块共享内存区域,是 Oracle 实例的核心组件之一。SGA 中存储了数据库的控制信息、用户会话信息、锁信息、缓存信息等。修改 SGA ...

    RAC中创建spfile

    需要注意的是,在对spfile进行操作时要小心谨慎,因为错误的操作可能会导致数据库实例无法启动或出现意外的配置错误。在进行这些操作之前,最好先在测试环境中验证操作步骤和结果。另外,随着技术的发展,建议查阅...

    Oracle参数文件PFILE和SPFILE介绍

    SPFILE的一个显著优势在于,对参数的修改可以立即生效,无需重启数据库实例。此外,由于其二进制格式,SPFILE更安全,不容易被误修改,且支持更多高级特性。 创建SPFILE通常通过以下命令完成: ```sql CREATE ...

    oracle spfile

    - **减少人为错误**: 修改参数完全通过命令行完成,减少了手动编辑文件可能引入的错误。 #### 四、SPFILE的创建与管理 1. **创建SPFILE**: - 缺省情况下,Oracle使用PFILE启动数据库。首次创建SPFILE需要使用现有...

    数据库创建spfile及修改最大连接数

    在Oracle数据库管理与优化的过程中,创建spfile(服务器参数文件)以及调整数据库的最大连接数是常见的需求之一。本文将详细解析如何通过命令行方式完成这些操作,并解释相关步骤的意义及其背后的原理。 #### 一、...

    在Oracle关闭情况下如何修改spfile的参数

    在遇到需要修改SPFILE参数,尤其是错误修改导致数据库无法启动的情况下,我们需要采用特定的方法来解决。 在本例中,问题起源于尝试设置SGA_MAX_SIZE参数为960M,但Oracle返回错误提示,指出SGA_MAX_SIZE不能超过...

    Oracle中SPFILE文件特点及其具体操作

    - 使用`ALTER SYSTEM SET PARAMETER=value`命令可以修改参数,通过`SCOPE`选项可以选择更改是在内存中生效(MEMORY)、保存到SPFILE(SPFILE)还是两者都生效(BOTH)。 - 对于动态参数,可添加`DEFERRED`关键字,...

    在oracle10g上创建spfile.doc

    与传统的初始化参数文件(PFILE,Plain FILE)相比,SPFILE具有许多优势,例如支持动态参数更改、自动内存管理等。当SPFILE丢失或损坏时,数据库可能无法正常启动,因此了解如何在Oracle 10g上创建SPFILE是解决此类...

    spfile&pfile

    - 修改:直接在`pfile`中修改参数值即可,但需确保删除`spfile`并重启数据库以应用新的参数设置。 - 应用:使用`CREATE SPFILE FROM PFILE`命令可以从`pfile`生成新的`spfile`。 #### 四、Spfile 与 Pfile 的关系...

    asm指定路径对pfile和spfile相互创建

    在Oracle数据库管理中,PFILE(初始化参数文件)和SPFILE(系统参数文件)是两种重要的配置文件。PFILE是以文本格式存储的初始化参数,而SPFILE是二进制格式,能够提供更快的访问速度和更高级的功能。当ASM...

    Oracle培训资料030710g11g参数SPFILE.ppt

    这减少了对PFILE的依赖,因为SPFILE的所有修改都可以通过命令行完成,无需手动编辑文本文件。而且,Oracle 10g引入了一些高级的参数管理功能,如自动内存管理等,这些特性都是基于SPFILE的。 在Oracle 11g中,增加...

    Oracle 9i SPFILE的使用

    这里的`SCOPE = BOTH`表示修改同时应用于当前实例和SPFILE,即修改后的参数值立即生效,并且将在下次数据库启动时仍然有效。 值得注意的是,SPFILE的修改不会像其他文件那样在运行期间保持锁定状态,这为管理员提供...

    【故障处理】修改SPFILE无权限.pdf

    SPFILE是Oracle数据库中的服务器参数文件,用于存储数据库的配置参数。SPFILE的修改权限问题通常与文件的属性和数据库用户的权限设置有关。以下是关于如何处理和解决修改SPFILE无权限故障的知识点。 故障处理: 当...

    因配置Process参数导致Oracle监听无法启动的问题解决办法

    本文主要讨论了由于配置 `Process` 参数不当导致Oracle监听器无法启动的问题及其解决方案。 `Process` 参数是Oracle数据库中一个至关重要的配置项,它定义了数据库实例在操作系统级别上可以同时运行的进程数。如果...

    oracle 205错误解决办法

    当尝试测试Oracle控制文件,例如添加新的ctl文件或修改系统属性后,如果这些更改导致了与现有数据库配置的不一致,就会出现ORA-00205错误。这通常意味着数据库的配置文件(如init&lt;sid&gt;.ora)和控制文件之间存在不...

    在Oracle实例关闭时如何修改spfile的参数详解

    本文将详细解释如何在Oracle实例关闭时修改SPFILE参数,并解决可能出现的问题。 首先,我们来看一个实际场景:在Oracle 11G环境中,使用ASM(Automatic Storage Management)作为存储管理,你需要调整SGA的大小。你...

    Oracle数据库SPFILE文件特点及具体操作

    这意味着系统管理员可以在线修改参数,这些更改会立即并永久地保存在SPFILE中,无需手动更新文件。这一特性极大地提高了系统管理的效率,确保了参数设置的持久性。 其次,RMAN(Recovery Manager)工具支持对SPFILE...

Global site tag (gtag.js) - Google Analytics