eygle.com   eygle.com
eygle.com  
 

« 《深入浅出Oracle》一书修订进度 | Blog首页 | ORA-07445 数据库也会旧病复发 »

SPFILE参数修改错误的解决办法

作者:eygle |【转载时请以超链接形式标明文章和作者信息及本声明
链接:
昨天在火车站,一个朋友打电话过来,说他将SPFILE修改错了,数据库无法启动,问我怎么办。
我说你创建一个PFILE,改一下用PFILE启动,而他说数据库无法连接,是Windows的环境。

Ok,这类问题很多很多,我描述一下解决办法供参考。
假如我们修改了以下参数:
SQL> alter system set sga_max_size=5G scope=spfile;

System altered.

那么下次启动,如果内存不足,数据库是无法启动的:
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-27102: out of memory
在Unix、Linux上可以连接到数据库,创建pfile:
SQL> create pfile from spfile;

File created.
如果在Window上,你手上还没有任何可供参考的参数文件,那么很简单,用记事本(Notepad)编辑一个文件,包含如下两行:
[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.

Total System Global Area 1073741824 bytes
Fixed Size                  1223540 bytes
Variable Size            918553740 bytes
Database Buffers          146800640 bytes
Redo Buffers                7163904 bytes
Database mounted.
Database opened.

如果在Windows上,你只能通过服务起停数据库,那么Oracle缺省的还是会寻找SPFILE,一个办法是将SPFILE改名。
比如将spfileeygle.ora更改为spfileeygle2.ora,然后再pfile里引用这个参数文件,下次startup就不用指定pfile。
数据库可以自动找到这个参数文件,启动数据库。
[oracle@test126 dbs]$ mv spfileeygle.ora spfileeygle2.ora
[oracle@test126 dbs]$ cat initeygle.ora
SPFILE='/opt/oracle/product/10.2.0/dbs/spfileeygle2.ora'
sga_max_size=1073741824
数据库可以自动使用PFILE启动:
SQL> startup
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  1223540 bytes
Variable Size            918553740 bytes
Database Buffers          146800640 bytes
Redo Buffers                7163904 bytes
Database mounted.
Database opened.
SQL> show parameter spfile

NAME                                TYPE        VALUE
------------------------------------ ----------- ------------------------------
spfile                              string      /opt/oracle/product/10.2.0/dbs
                                                /spfileeygle2.ora

-The End-


历史上的今天...
      >> 2007-07-15文章:
             摄影习作-花之灵
      >> 2006-07-15文章:
             DBA Scripts:获取用户创建语句
------
这篇 【SPFILE参数修改错误的解决办法】来自 www.eygle.com | CSDN技术网摘| del.icio.us|365Key

By eygle on 2008-07-15 10:10 | Comments (4) | Posted to FAQ | Edit |Pageviews:

相关文章 随机文章
  • 如何更改控制文件自动备份的路径
  • DBA警示录:spfile是不能手工修改的
  • Oracle9i新特点-从自动备份中恢复spfile和控制文件
  • Oracle9i新特点-判断是否使用了spfile
  • Oracle9i新特点-在spfile中设置Event事件
  • 唯书有色,艳于西子 唯文有华,秀于百卉
    中秋佳节今又是 换了人间
    抵达广州 入住香格里拉大酒店
    《深入浅出Oracle》更名《深入解析Oracle》
    What's Mean "TCP: Treason uncloaked! Peer..shrinks window..Repaired."
    搜索本站:

    留言 (4)

    非常好,我每一次改spfile之前,先保存为 pfile。这样保险点。

    文章中:"加入我们修改了以下参数:" 应该为 “假如”

    Posted by: simple at July 15, 2008 5:22 PM

    通常都是一些新手才犯这样的错误,然后又都是比较着急的。

    Posted by: eygle at July 15, 2008 9:11 PM

    windows下可以用
    oradim edit, 把startmode改成manual
    就可以进sqlplus, start pfile='...'了

    你的方法也很巧妙

    Posted by: lala at July 16, 2008 11:15 PM

    问题在于,很多人通过服务来启动,服务启动不了,SQL*plus连不进去。

    Posted by: Julia at July 17, 2008 4:13 PM

    发表留言:



    Remember Me?
    (输入验证码后方可评论,谢谢支持)



    CopyRight © 2004 eygle.com, All rights reserved.