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

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

6ee5639a40442445944d63b514b2dd02.png

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-

By eygle on 2008-07-15 10:10 |

Comments (4) |

FAQ | 1974 |

4 Comments

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

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

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

windows下可以用

oradim edit, 把startmode改成manual

就可以进sqlplus, start pfile='...'了

你的方法也很巧妙

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值