目的:修改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 | 删除指定别名. |