Oracle ASM spfile in a disk group

从ASM 11.2开始,ASM spfile可以被存储在ASM磁盘组中。的确,在新ASM安装时,OUI会将ASM spfile存储在磁盘组中。这对于Oracle Restart(单实例环境)与RAC环境是一样的。在安装时第一个创建的磁盘组就是存储spfile的缺省位置,但这不是必须的。spfile仍然可以存储在文件系统中,比如$ORACLE_HOME/dbs目录。

ASMCMD命令的新功能
 为了支持这个功能,ASMCMD增加了新的命令来备份,复制与迁移ASM spfile。这些命令是:
 .spbackup:将一个ASM spfile备份到一个备份文件中。这个备份文件不是一种特定文件类型并且不会被标识为一个spfile。

.spcopy:将一个ASM spfile文件从原目录复制到目标目录中

.spmove:将一个ASM spfile文件从原目录迁移到目标目录中并且自动更新GPnP profile。

SQL命令create pfile from spfile与create spfile from pfile对于存储在磁盘组中的ASM spfile仍然有效。

存储在磁盘组中的ASM spfile
在我的环境中,ASM spfile存储在磁盘组crsdg中
[grid@jyrac1 trace]$ asmcmd find --type ASMPARAMETERFILE +CRSDG "*"
+CRSDG/jyrac-cluster/asmparameterfile/REGISTRY.253.928747387


从上面的结果可以看到,ASM spfile存储在特定的目录中,并且它的ASM文件号为253,ASM spfile以一个注册文件存储在磁盘组中,并且它的ASM元数据文件号总是253

可以使用sqlplus来查看
SQL> show parameter spfile

NAME                                TYPE                  VALUE
------------------------------------ ---------------------- ------------------------------
spfile                              string                +CRSDG/jyrac-cluster/asmparame
                                                            terfile/REGISTRY.253.928747387


备份ASM spfile文件
[grid@jyrac1 trace]$ asmcmd spbackup +CRSDG/jyrac-cluster/asmparameterfile/REGISTRY.253.928747387 /home/grid/asmspfile.backup


查看备份ASM spfile文件的内容
[grid@jyrac1 ~]$ strings asmspfile.backup
+ASM1.__oracle_base='/u01/app/grid'#ORACLE_BASE set from in memory value
+ASM2.asm_diskgroups='ARCHDG','DATADG'#Manual Dismount
+ASM1.asm_diskgroups='ARCHDG','DATADG','ACFS'#Manual Mount
*.asm_power_limit=1
*.diagnostic_dest='/u01/app/grid'
*.instance_type='asm'
*.large_pool_size=12M
*.remote_login_passwordfile='EXCLUSIVE'


可以看到这是ASM spfile的一个副本,它包含了参数与相关注释

ASM spfile查找顺序
 因为ASM实例在启动时需要读取spfile文件,如果spfile所在磁盘组不能mount,那么ASM不仅不知道spfile存储在那个磁盘组,而且也不知道ASM spfile查找字符串的值。当Oracle ASM实例搜索一个初始化参数文件时,它的搜索顺序为:
1.在Grid Plug and Play(GPnp) profile中指定的初始化参数文件目录
2.如果在GPnP profile中没有指定,那么搜索顺序将变为:
2.1.Oracle ASM实例home目录中的spfile(比如:$ORACLE_HOME/dbs/spfile+ASM.ora)
 2.2.Oracle ASM实例home目录中的pfile

这里并没有告诉关于ASM查找顺序字符串的任何信息,但至少告诉我们了spfile与GPnp profile。下面是来自Exadata环境中的值:
[root@jyrac2 ~]# find / -name profile.xml
/u01/app/product/11.2.0/crs/gpnp/jyrac2/profiles/peer/profile.xml
/u01/app/product/11.2.0/crs/gpnp/profiles/peer/profile.xml
[grid@jyrac2 peer]$ gpnptool getpval -p=profile.xml -?

Oracle GPnP Tool
    getpval  Get value(s) from GPnP Profile
Usage:
 "gpnptool getpval ", where switches are:
    -prf                  Profile Tag: , optional
    -[id:]prf_cn          Profile Tag: ">, optional
    -[id:]prf_pa          Profile Tag: ">, optional
    -[id:]prf_sq          Profile Tag: ">, optional
    -[id:]prf_cid        Profile Tag: ">, optional
    -[pid:]nets          Profile Tag:  children of , optional
    -[pid:]haip          Profile Tag:  children of , optional
    -[id:]haip_ma        Profile Tag: ">, optional
    -[id:]haip_bm        Profile Tag: ">, optional
    -[id:]haip_s          Profile Tag: ">, optional
    -[pid:]hnet          Profile Tag:  children of , optional
    -[id:]hnet_nm        Profile Tag: ">, optional
    -[pid:]net            Profile Tag:  children of , optional
    -[id:]net_ip          Profile Tag: ">, optional
    -[id:]net_use        Profile Tag: ">, optional
    -[id:]net_nt          Profile Tag: ">, optional
    -[id:]net_aip        Profile Tag: ">, optional
    -[id:]net_ada        Profile Tag: ">, optional
    -[pid:]asm            Profile Tag:  children of , optional
    -[id:]asm_dis        Profile Tag: ">, optional
    -[id:]asm_spf        Profile Tag: ">, optional
    -[id:]asm_uid        Profile Tag: ">, optional
    -[pid:]css            Profile Tag:  children of , optional
    -[id:]css_dis        Profile Tag: ">, optional
    -[id:]css_ld          Profile Tag: ">, optional
    -[id:]css_cin        Profile Tag: ">, optional
    -[id:]css_cuv        Profile Tag: ">, optional
    -[pid:]ocr            Profile Tag:  children of , optional
    -[id:]ocr_oid        Profile Tag: ">, optional
    -rmws                Remove whitespace from xml, optional
    -fmt[=0,2]            Format profile. Value is ident level,step, optional
    -p[=profile.xml]      GPnP profile name
    -o[=gpnptool.out]    Output result to a file, optional
    -o-                  Output result to stdout
    -ovr                  Overwrite output file, if exists, optional
    -t[=3]                Trace level (min..max=0..7), optional
    -f=              Command file name, optional
    -?                    Print verb help and exit


[grid@jyrac2 peer]$ gpnptool getpval -p=profile.xml -asm_dis -o-

[grid@jyrac2 peer]$ gpnptool getpval -p=profile.xml -asm_spf -o-
+CRSDG/jyrac-cluster/asmparameterfile/spfileasm.ora

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/04aa464da2bb531af311661e35d0221f.html