从Oracle 11gR2开始,GI集成了ASM,OCR/VOTEDISK也存放在ASM磁盘组了(11gR2以前需要存放于裸设备中),同时ASM的功能较10g也有很大增强。
我们先引入一个问题:
11gR2中,OCR/VOTEDISK存放在ASM磁盘组,这也就意味着在GI能够启动的前提是能够顺利启动ASM实例并且能够将相应磁盘组MOUNT起来;而ASM的spfile却放在ASM磁盘组里,这也同样意味着要先启动ASM实例并且能读到参数文件。那如何解决这个问题呢? 11gR2中引入了pgnp profile,用于存放ASM参数文件路径,这允许oracle在ASM实例启动以前读到参数文件。
11gR2的RAC环境中,ASM的参数文件存放于ASM磁盘组里面.ASM实例启动时候,寻找参数文件的顺序如下,直接找到为止:
1. Grid Plug and Play (GPnP) profile
2. spfile+ASM<node_number>.ora
3. init+ASM<node_number>.ora
因此,11gR2中可以没有pfile,可以将ASM参数保存在gpnp profile中,在管理上省下了很多工作.
11gR2RAC环境中,ASM的参数文件支持备份(spbackup),拷贝(spcopy),移动(spmove),查询gpnp profile(spget),设置(spset)等操作
特别需要注意一点,ASM的参数文件最好放在ASM磁组里,同时确保每个集群成员的gpnp都为同一个路径
<span style="color:#333333;">[grid@vmac1 ~]$ asmcmd
ASMCMD> ls -l
State Type Rebal Name
MOUNTED NORMAL N DATA/
MOUNTED NORMAL N SYSTEMDG/
ASMCMD> pwd
+
ASMCMD> cd SYSTEMDG/
ASMCMD> pwd
+SYSTEMDG
ASMCMD> ls -l
Type Redund Striped Time Sys Name
Y vmac-cluster/
ASMCMD> cd vmac-cluster/
ASMCMD> ls -l
Type Redund Striped Time Sys Name
Y ASMPARAMETERFILE/
Y OCRFILE/
ASMCMD> cd ASMPARAMETERFILE/
ASMCMD> ls -l
Type Redund Striped Time Sys Name
</span><span style="color:#ff0000;">ASMPARAMETERFILE MIRROR COARSE MAR 02 23:00:00 Y REGISTRY.253.873328657 // ASM spfile文件</span><span style="color:#333333;">
ASMCMD> spcopy REGISTRY.253.873328657 spcopy.ora
ASMCMD> ls -l
Type Redund Striped Time Sys Name
ASMPARAMETERFILE MIRROR COARSE MAR 02 23:00:00 Y REGISTRY.253.873328657
ASMCMD> spget
+SYSTEMDG/vmac-cluster/asmparameterfile/registry.253.873328657
ASMCMD> spcopy REGISTRY.253.873328657 /home/grid/spcopy.ora
ASMCMD> ls -l
Type Redund Striped Time Sys Name
ASMPARAMETERFILE MIRROR COARSE MAR 02 23:00:00 Y REGISTRY.253.873328657</span>
<span style="color:#333333;">[grid@vmac1 ~]$ pwd
/home/grid
[grid@vmac1 ~]$ ls -l
total 8
drwxr-xr-x 3 grid oinstall 4096 Mar 2 22:10 oradiag_grid
</span><span style="color:#ff0000;">-rw-r----- 1 grid oinstall 1536 Mar 25 02:32 spcopy.ora </span><span style="color:#333333;">
ASMCMD> spmove REGISTRY.253.873328657 old_ora.bak </span><span style="color:#ff0000;">Retrieve the location of the spfile from the gPnP profile</span><span style="color:#333333;">
ORA-15032: not all alterations performed
ORA-15028: ASM file '+SYSTEMDG/vmac-cluster/ASMPARAMETERFILE/REGISTRY.253.873328657' not dropped; currently being accessed (DBD ERROR: OCIStmtExecute)
ASMCMD> spcopy REGISTRY.253.873328657 spcopy.ora
ORA-15056: additional error message
ORA-27038: created file already exists
Additional information: 1
ORA-06512: at line 7 (DBD ERROR: OCIStmtExecute)
ASMCMD> ls -l
Type Redund Striped Time Sys Name
ASMPARAMETERFILE MIRROR COARSE MAR 02 23:00:00 Y REGISTRY.253.873328657
ASMCMD> spget //使用</span><span style="color: rgb(51, 51, 51); line-height: 22.3999996185303px; font-family: tahoma, 宋体;">spmove 命令后,spget的结果发生了变化</span><span style="color:#333333;"></span><pre name="code" class="html" style="font-size: 14px; line-height: 22.3999996185303px; text-align: justify;"><span style="font-family: tahoma, 宋体; line-height: 22.3999996185303px;">old_ora.bak</span>
ASMCMD> shutdown abort
ORA-15097: cannot SHUTDOWN ASM instance with connected client
ASMCMD> shutdown --abort
ASM instance shutdown
Connected to an idle instance.
ASMCMD> startup
ASM instance started
Total System Global Area 283930624 bytes
Fixed Size 2212656 bytes
Variable Size 256552144 bytes
ASM Cache 25165824 bytes
ASM diskgroups mounted
ASM diskgroups volume enabled
<span style="color:#333333;">ASMCMD> spget
/g01/11ggrid/app/11.2.0/grid/dbs/old_ora.bak </span><span style="color:#ff0000;">//实例重启后,spget的结果发生了变化</span><span style="color:#333333;">
</span>
<span style="color:#ff0000;">/g01/11ggrid/app/11.2.0/grid/ 是$GRID_HOME,意味着spcopy spmove产生的文件存放在$GRID_HOME/dbs目录下</span>