目的:修改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

删除指定别名.