重庆思庄Oracle、Redhat认证学习论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 4554|回复: 0
打印 上一主题 下一主题

spfile在共享存储上启动数据库实例的要点及解决办法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-5-31 11:57:55 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

问题描述

这里希望提醒大家的是:在RAC环境中轻易不要使用“create pfile from spfile;”命令创建PFILE。
因为在RAC环境,默认情况下的SPFILE会放到共享存储上(裸设备或ASM磁盘组上),RAC的每台主机上是使用PFILE指向SPFILE的方法来完成SPFILE的定位的。
一旦使用“create pfile from spfile;”命令创建PFILE后,新生成的PFILE将覆盖原有dbs目录下的PFILE,此后数据库实例启动时读取的将不再是共享存储上的SPFILE,转而读取本地的PFILE文件的内容。

1.默认情况下$ORACLE_HOME/dbs目录下的PFILE initracdb.ora中只有一行记录,记录着SPFILE的路径指向。
/oracle/app/oracle/product/10.2.0/db_1/dbs$ cat initracdb1.ora
spfile=+DATA/racdb/spfileracdb.ora

2.此时可以从数据库参数得到目前使用的是SPFILE启动的数据库
SQL> show parameter spfile
NAME            TYPE        VALUE
--------------- ----------- ------------------------------
spfile          string      +DATA/racdb/spfileracdb.ora

3.此时如果使用“create pfile from spfile;”命令创建PFILE,原有PFIEL中的SPFILE指向将被具体的数据库参数所取代。
当数据库再次启动时,因为无法找到SPFILE的位置,将使用PFILE文件中记录的具体参数值完成数据库的启动,这样将会给数据库的管理带来比较大的影响,不再享受到SPFILE参数的便捷。

4.小结
本文描述的是一个常识性的问题,希望大家在对RAC数据库进行维护和管理的过程中不要因此给自己带来不必要的麻烦。
如果出现了这样的问题该如何处理呢?方法比较简单,将PFILE的内容恢复为具有SPFILE指向的内容即可,也许在具体场景中需要重新创建SPFILE。

 
解决办法
创建spfile
SQL>create spfile=’/oradata/oracle/spfileoracle.ora'from pfile=’/home/oracle/initoracle.ora’;
以上spfile位置是没有限制的,而且最好不要把spfile放入到默认位置下
接下来如果在共享存储中的双机或集群环境下直接使用startup启动数据库实例
那么就要做一下步骤了:
在oracle用户下进入$ORACLE_HOME找到dbs如果没有手动创建
[root@localhost dbs]# su - oracle
[oracle@localhost ~]$ cd $ORACLE_HOME/dbs
[oracle@localhost dbs]$ ll
total 60
-rwxrwxr-x 1 oracle dba     1544 May 28 09:06 hc_oracle.dat
-rwxrwxr-x 1 oracle dba     8385 Sep 11  1998 init.ora
-rwxrwxr-x 1 oracle dba    12920 May  3  2001 initdw.ora
-rwxrwxr-x 1 oracle dba       35 May 31 03:47 initoracle.ora
-rw-rw---- 1 oracle oracle    24 May 31 02:53 lkORACLE
[oracle@localhost dbs]$ cat initoracle.ora
spfile='/oracle/spfileoracle.ora'

[oracle@localhost dbs]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Fri May 31 03:47:47 2013

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

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  289406976 bytes
Fixed Size                  1218992 bytes
Variable Size              92276304 bytes
Database Buffers          188743680 bytes
Redo Buffers                7168000 bytes
Database mounted.
Database opened.

搞定!!

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|重庆思庄Oracle、Redhat认证学习论坛 ( 渝ICP备12004239号-4 )

GMT+8, 2024-11-16 16:43 , Processed in 0.088871 second(s), 20 queries .

重庆思庄学习中心论坛-重庆思庄科技有限公司论坛

© 2001-2020

快速回复 返回顶部 返回列表