RAC 11G ASM下修改spfile文件

背景:

RAC 11g 数据库启动报错

[oracle@rac1 ~]$ srvctl start database -d rac1db
PRCR-1079 : Failed to start resource ora.rac1db.db
ORA-01078: failure in processing system parameters
CRS-2674: Start of 'ora.rac1db.db' on 'rac1' failed
ORA-01078: failure in processing system parameters
CRS-2674: Start of 'ora.rac1db.db' on 'rac2' failed
CRS-2632: There are no more servers to try to place resource 'ora.rac1db.db' on that would satisfy its placement policy

[root@rac1 ~]# su - grid
[grid@rac1 ~]$ ls
arch  oradiag_grid
[grid@rac1 ~]$ crsctl status resource ora.rac1db.db -f
NAME=ora.rac1db.db
TYPE=ora.database.type
STATE=OFFLINE
TARGET=ONLINE
ACL=owner:oracle:rwx,pgrp:oinstall:rwx,other::r--
ACTION_FAILURE_TEMPLATE=
ACTION_SCRIPT=
ACTIVE_PLACEMENT=1
AGENT_FILENAME=%CRS_HOME%/bin/oraagent%CRS_EXE_SUFFIX%
AUTO_START=restore
CARDINALITY=2
CARDINALITY_ID=0
CHECK_INTERVAL=1
CHECK_TIMEOUT=600
CLUSTER_DATABASE=true
CREATION_SEED=29
CURRENT_RCOUNT=0
DB_UNIQUE_NAME=rac1db
DEFAULT_TEMPLATE=PROPERTY(RESOURCE_CLASS=database) PROPERTY(DB_UNIQUE_NAME= CONCAT(PARSE(%NAME%, ., 2), %USR_ORA_DOMAIN%, .)) ELEMENT(INSTANCE_NAME= %GEN_USR_ORA_INST_NAME%)
DEGREE=1
DESCRIPTION=Oracle Database resource
ENABLED=1
FAILOVER_DELAY=0
FAILURE_COUNT=0
FAILURE_HISTORY=
FAILURE_INTERVAL=60
FAILURE_THRESHOLD=1
GEN_AUDIT_FILE_DEST=/u01/oracle/admin/rac1db/adump
GEN_USR_ORA_INST_NAME=
GEN_USR_ORA_INST_NAME@SERVERNAME(rac1)=rac1db1
GEN_USR_ORA_INST_NAME@SERVERNAME(rac2)=rac1db2
HOSTING_MEMBERS=
ID=ora.rac1db.db
INCARNATION=0
INSTANCE_FAILOVER=0
LAST_FAULT=0
LAST_RESTART=0
LAST_SERVER=
LOAD=1
LOGGING_LEVEL=1
MANAGEMENT_POLICY=AUTOMATIC
NLS_LANG=
NOT_RESTARTING_TEMPLATE=
OFFLINE_CHECK_INTERVAL=0
ORACLE_HOME=/home/oracle/db
PLACEMENT=restricted
PROFILE_CHANGE_TEMPLATE=
RESTART_ATTEMPTS=2
ROLE=PRIMARY
SCRIPT_TIMEOUT=60
SERVER_POOLS=ora.rac1db
SPFILE=+DATA/rac1db/spfilerac1db.ora
START_DEPENDENCIES=hard(ora.DATA.dg) weak(type:ora.listener.type,global:type:ora.scan_listener.type,uniform.:ora.ons,uniform.:ora.eons) pullup(ora.DATA.dg)
START_TIMEOUT=600
STATE_CHANGE_TEMPLATE=
STATE_CHANGE_VERS=0
STATE_DETAILS=
STOP_DEPENDENCIES=hard(intermediate:ora.asm,shutdown:ora.DATA.dg)
STOP_TIMEOUT=600
UPTIME_THRESHOLD=1h
USR_ORA_DB_NAME=rac1db
USR_ORA_DOMAIN=
USR_ORA_ENV=
USR_ORA_FLAGS=
USR_ORA_INST_NAME=
USR_ORA_INST_NAME@SERVERNAME(rac1)=rac1db1
USR_ORA_INST_NAME@SERVERNAME(rac2)=rac1db2
USR_ORA_OPEN_MODE=open
USR_ORA_OPI=false
USR_ORA_STOP_MODE=immediate
VERSION=11.2.0.1.0

查看  SPFILE=+DATA/rac1db/spfilerac1db.ora 发现 ASMCMD下面没有这个文件别名,需要重新创建


ASMCMD> ls
ARCHIVELOG/
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
TEMPFILE/
ASMCMD> pwd
+DATA/rac1db
ASMCMD> cd para*
ASMCMD> ls
spfile.336.807807355
ASMCMD> pwd
+DATA/rac1db/PARAMETERFILE

创建别名

ASMCMD> mkalias '+DATA/rac1db/PARAMETERFILE/spfile.336.807807355' '+DATA/rac1db/spfilerac1db.ora'
ASMCMD> ls
ARCHIVELOG/
CONTROLFILE/
DATAFILE/
ONLINELOG/
PARAMETERFILE/
TEMPFILE/
spfilerac1db.ora
ASMCMD> ls -l
Type           Redund  Striped  Time             Sys  Name
                                                 Y    ARCHIVELOG/
                                                 Y    CONTROLFILE/
                                                 Y    DATAFILE/
                                                 Y    ONLINELOG/
                                                 Y    PARAMETERFILE/
                                                 Y    TEMPFILE/
                                                 N    spfilerac1db.ora => +DATA/RAC1DB/PARAMETERFILE/spfile.336.807807355
ASMCMD> exit

启动数据库

[oracle@rac2 dbs]$ srvctl start database -d rac1db
[oracle@rac2 dbs]$

 

[oracle@rac2 dbs]$ /u01/grid/bin/crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora.DATA.dg    ora....up.type ONLINE    ONLINE    rac1       
ora....ER.lsnr ora....er.type ONLINE    ONLINE    rac1       
ora....N1.lsnr ora....er.type ONLINE    ONLINE    rac1       
ora.asm        ora.asm.type   ONLINE    ONLINE    rac1       
ora.eons       ora.eons.type  ONLINE    ONLINE    rac1       
ora.gsd        ora.gsd.type   OFFLINE   OFFLINE              
ora....network ora....rk.type ONLINE    ONLINE    rac1       
ora.oc4j       ora.oc4j.type  OFFLINE   OFFLINE              
ora.ons        ora.ons.type   ONLINE    ONLINE    rac1       
ora....SM1.asm application    ONLINE    ONLINE    rac1       
ora....C1.lsnr application    ONLINE    ONLINE    rac1       
ora.rac1.gsd   application    OFFLINE   OFFLINE              
ora.rac1.ons   application    ONLINE    ONLINE    rac1       
ora.rac1.vip   ora....t1.type ONLINE    ONLINE    rac1       
ora.rac1db.db  ora....se.type ONLINE    ONLINE    rac1       
ora....SM2.asm application    ONLINE    ONLINE    rac2       
ora....C2.lsnr application    ONLINE    ONLINE    rac2       
ora.rac2.gsd   application    OFFLINE   OFFLINE              
ora.rac2.ons   application    ONLINE    ONLINE    rac2       
ora.rac2.vip   ora....t1.type ONLINE    ONLINE    rac2       
ora.racdb.db   ora....se.type OFFLINE   OFFLINE              
ora.scan1.vip  ora....ip.type ONLINE    ONLINE    rac1       
[oracle@rac2 dbs]$

启动成功

 

目的:修改SPFILE内容

1.先生成pfile,请指定目录,防止覆盖默认目录eg./u01/tmp.ora

2.修改完成后,重新生成spfile

create spfile='+dg1' from pfile='/u01/tmp.ora' --其中+dg1是ASM的一个磁盘组

3.修改指向SPFILE

SQL> show parameter spfile

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DG1/devdb/spfiledevdb.ora

4.进入asmcmd命令界面看下上面这个SPFILE文件

ASMCMD> ls -tl
Type Redund Striped Time Sys Name
Y TEMPFILE/
Y PARAMETERFILE/
Y ONLINELOG/
Y DATAFILE/
Y CONTROLFILE/
Y ARCHIVELOG/
N spfiledevdb.ora => +DG1/DEVDB/PARAMETERFILE/spfile.275.791775033 --可以看到是个别名


ASMCMD> pwd
+dg1/devdb/parameterfile
ASMCMD> ls
spfile.268.789967617
spfile.275.791775033
spfile.276.791775083
ASMCMD> ls -tl
Type Redund Striped Time Sys Name
PARAMETERFILE MIRROR COARSE AUG 20 01:00:00 Y spfile.276.791775083 --新生成SPFILE
PARAMETERFILE MIRROR COARSE AUG 20 01:00:00 Y spfile.275.791775033
PARAMETERFILE MIRROR COARSE AUG 20 01:00:00 Y spfile.268.789967617


5.先删除别名

ASMCMD> rmalias spfiledevdb.ora

6.重新创建别名

ASM在mount状态下

alter diskgroup dg1 add alias '+dg1/devdb/spfiledevdb.ora' for '+dg1/devdb/parameterfile/spfile.276.791775083 ';

或者

ASMCMD模式下

mkalias '+dg1/devdb/parameterfile/spfile.282.794797403' '+dg1/devdb/spfiledevdb.ora'

7.提示错误

ORA-15005: name "+dg1/devdb/spfiledevdb.ora" is already used by an existing

--解决关闭数据库或将ASM实例MOUNT再修改,也有可能是名字冲突引起,先删除别名--此项未详细验证;

ASMCMD命令参考

命令描述
cd改变当前目录到指定的目录
du显示指定目录及其子目录中ASM文件占用的磁盘空间
exit退出ASMCMD.
find在指定目录下列出包含指定名称(使用通配符)的路径.
help显示ASMCMD命令的语法和描述.
ls列出ASM目录的内容,指定文件的属性
lsct列出关于当前ASM客户端信息
lsdg列出所有磁盘组及其属性.
mkalias为系统生成的文件创建一个别名.
mkdir创建ASM目录.
pwd显示当前路径.
rm删除指定ASM文件或路径.
rmalias删除指定别名.

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

转载于:http://blog.itpub.net/24558279/viewspace-754370/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值