联系:手机/微信(+86 17813235971) QQ(107644445)
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
今天朋友的的rac,因为被同事做数据库升级,分别在两个节点的本地创建了spfile,然后使用这个spfile启动了数据库,因为他不是非常懂oracle,所以向我求救,我改他的建议是:
1、利用备份的原来的pfile文件创建在asm中的spfile,规则是:+ASM/SID/spfileSID
2、dbs目录下创建一个本地的initsid.ora,然后在里面加一个spfile=’+ASM pfile path’(两个节点同样操作,注意sid不同)
3、分别重启数据库
出现该问题的原因分析:
做数据库升级的朋友的同事也不懂rac的spfile的相关规则,应该是在重启数据库的时候,提示spfile不存在,然后自己手工创建利用pfile创建的spfile到dbs下面,然后朋友十一后检测数据库,发现spfile都放置在本地了。
1、通常读取参数文件顺序
我们知道,如果不指定参数文件,oracle是按照这个顺序查找文件来启动数据库的:
spfileSID.ora
spfile.ora
initSID.ora
init.ora
如果这些文件都没有找到,启动会失败。
2、RAC中关于spfile的启动探讨
[rac@cent1 dbs]$ echo $ORACLE_SID RACDB1 [rac@cent1 dbs]$ touch spfileRACDB1.ora <==手工创建一个空白的spfile [rac@cent1 dbs]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Thu Apr 29 13:45:50 2010 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options SQL> shutdown immediate Database closed. Database dismounted. ORACLE instance shut down. SQL> startup ORA-27091: unable to queue I/O <== 用sqlplus启动数据库时会报错 ORA-27069: attempt to do I/O beyond the range of the file Additional information: 1 Additional information: 1 SQL> SQL> exit Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options [rac@cent1 dbs]$ crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora....B1.inst application OFFLINE OFFLINE ora....B2.inst application ONLINE ONLINE cent2 ora.RACDB.db application ONLINE ONLINE cent1 ora....SM1.asm application ONLINE ONLINE cent1 ora....T1.lsnr application ONLINE ONLINE cent1 ora.cent1.gsd application ONLINE ONLINE cent1 ora.cent1.ons application ONLINE ONLINE cent1 ora.cent1.vip application ONLINE ONLINE cent1 ora....SM2.asm application ONLINE ONLINE cent2 ora....T2.lsnr application ONLINE ONLINE cent2 ora.cent2.gsd application ONLINE ONLINE cent2 ora.cent2.ons application ONLINE ONLINE cent2 ora.cent2.vip application ONLINE ONLINE cent2 [rac@cent1 dbs]$ srvctl start instance -i racdb1 -d racdb <== 用srvctl启动成功 [rac@cent1 dbs]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.4.0 - Production on Thu Apr 29 13:47:25 2010 Copyright (c) 1982, 2007, Oracle. All Rights Reserved. Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options SQL> select instance_name, status from v$instance; INSTANCE_NAME STATUS ---------------- ------------ RACDB1 OPEN --说明srvctl不是用那个顺序去查找参数文件
3、查看srvctl读取spfile位置
[rac@cent1 dbs]$ srvctl config database -d racdb -a cent1 RACDB1 /rac/product/10.2.0/db cent2 RACDB2 /rac/product/10.2.0/db DB_NAME: RACDB ORACLE_HOME: /rac/product/10.2.0/db SPFILE: +DATA/RACDB/spfileRACDB.ora DOMAIN: WORLD DB_ROLE: null START_OPTIONS: null POLICY: AUTOMATIC ENABLE FLAG: DB ENABLED
4、修改CRS中关于spfile位置
[rac@cent1 dbs]$ srvctl modify database -d racdb -p ' +DATA/RACDB/spfileRACDB1.ora'
非常感谢你的帮助,你博客都是好东东,的好好看看。