创建默认SPFILE需谨慎

使用 PFILE可以正常启动数据库,利用这个 PFILE创建 SPFILE后,数据库无法启动。

其实造成问题的根源很简单,Oracle启动处理PFILE的机制和创建SPFILE时候的机制不一样。

下面重现一下问题:

[oracle@yangtk ~]$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on Thu Jan 10 13:20:10 2008

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 267825152 bytes
Fixed Size 1299316 bytes
Variable Size 176163980 bytes
Database Buffers 88080384 bytes
Redo Buffers 2281472 bytes
Database mounted.
Database opened.
SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string /data/oracle/product/11.1/dbs/
spfileora11g.ora
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

下面创建一个可以使Oracle正常启动的PFILE

SQL> host
[oracle@yangtk ~]$ echo "spfile=/data/oracle/product/11.1/dbs/spfileora11g.ora" >> initora11g.ora
[oracle@yangtk ~]$ exit
exit

SQL> startup pfile=initora11g.ora
ORACLE instance started.

Total System Global Area 267825152 bytes
Fixed Size 1299316 bytes
Variable Size 176163980 bytes
Database Buffers 88080384 bytes
Redo Buffers 2281472 bytes
Database mounted.
Database opened.
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.

下面通过CREATE SPFILE FROM PFILE的方式根据刚刚建立的pfile创建默认的SPFILE文件:

SQL> create spfile from pfile='/home/oracle/initora11g.ora';

File created.

SQL> startup

Oracle永远处于startup的状态,数据库的实例无法启动。

中止Oracle启动进程,检查最后创建的SPFILE文件:

[oracle@yangtk ~]$ strings /data/oracle/product/11.1/dbs/spfileora11g.ora
*.spfile='/data/oracle/product/11.1/dbs/spfileora11g.ora'

文件中仅包含一行记录,且这个参数指向当前文件本身,Oracle在试图读取参数文件时碰到了死循环,因此启动一直没有反应。

从这里也可以看到启动和CREATE SPFILE时对PFILE处理的区别:启动的时候,如果参数文件中指定SPFILE的位置,则Oracle会根据配置找到相应的SPFILE,读取其中的配置;而对于CREATE SPFILE语句,仅仅是将PFILE中所有的内容转化为SPFILE中二进制的内容,不会根据参数值的设置寻找其他文件。

在创建SPFILE的时候,不要仅仅凭着这个PFILE能否启动数据库这个条件,还要检查PFILE的内容,否则有可能造成初始化参数设置丢失的情况。

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8119050/viewspace-1007155/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8119050/viewspace-1007155/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值