oracle 11g 中的spfile和pfile测试

Oracle 11g rac集群安装好之后在$ORACLE_HOME/dbs目录中并没有asm实例使用的pfile和spfile,那么他是存放在哪里呐。

一、查看

在11.2的ASM实例上,执行show parameter spfile:

[grid@rac1 ~]$ sqlplus / as sysasm

SQL> show parameter spfile

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

spfile string+DATA/asm/asmparameterfile/registry.253.704991445

可以看到spfile在ASM磁盘组里了。

和之前的版本不同,在$ORACLE_HOME/dbs目录下却没有pfile来定位spfile。

查看dbs目录下,仍然没有spfile

[grid@rac1 ~]$ ls $ORACLE_HOME/dbs

ab_+ASM.dat

hc_+ASM.dat

init.ora

orapw+ASM

peshm_+ASM_1

二、查看方法2

那么ASM实例如何得知它的spfile具体位置的呢?

答案是通过一个“本地注册表”。

Oracle的Grid Infastructure使用这样一个“本地注册表”来记录本地的所有可控资源。

“本地注册表”位置在/etc/oracle/olr.loc文件中,查看olrconfig_loc变量:

[grid@rac1 ~]$ cat /etc/oracle/olr.loc

olrconfig_loc=/u01/app/grid/product/11.2.0/grid/cdata/localhost/rac1.olr

crs_home=/u01/app/grid/product/11.2.0/grid

查看“本地注册表”的内容:

[grid@rac1 ~]$ ocrdump -local -xml

[grid@rac1 ~]$ grep -i spfile OCRDUMPFILE

三、查看方法3

$ srvctl config asm ASM home: /oracle/app/product/11.2.0 ASM listener: LISTENER Spfile: +DATADG/asm/asmparameterfile/registry.253.970045839 ##此文件并不存在 ASM diskgroup discovery string:

四、查看和修改方法4

su - grid

asmcmd

spget

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.ora

3. init+ASM.ora

请注意: 以上红色字体部分!!!

因此,11gR2中可以没有pfile,可以将ASM参数保存在gpnp profile中,在管理上省下了很多工作.

11gR2RAC环境中,ASM的参数文件支持备份(spbackup),拷贝(spcopy),移动(spmove),

查询gpnp profile(spget),设置(spset)等操作

特别需要注意一点,ASM的参数文件最好放在ASM磁组里,

同时确保每个集群成员的gpnp都为同一个路径

以简单例子说明,如何将ASM的spfile重新保存至ASM磁盘组

=============================================

准备环境

ASMCMD> ls -l

Type              Redund  Striped  Time             Sys  Name

ASMPARAMETERFILE  UNPROT  COARSE   DEC 14 15:00:00  Y    REGISTRY.253.866303695

                                                    N    spfileasm.ora => +OCR_VOTE/rac-cluster/ASMPARAMETERFILE/REGISTRY.253.866303695 ----注意这里是链接

ASMCMD> pwd   

+OCR_VOTE/rac-cluster/ASMPARAMETERFILE

ASMCMD> spcopy +OCR_VOTE/rac-cluster/ASMPARAMETERFILE/REGISTRY.253.866303695 +OCR_VOTE/rac-cluster/ASMPARAMETERFILE/spcopy.ora

ORA-15056: additional error message

ORA-17502: ksfdcre:4 Failed to create file +OCR_VOTE/rac-cluster/ASMPARAMETERFILE/spcopy.ora

ORA-15268: internal Oracle file +OCR_VOTE.253.1 already exists.

ORA-06512: at line 7 (DBD ERROR: OCIStmtExecute)

ASMCMD> spget

/home/grid/registry.253.839197161   --当前gpnp profile配置。该spfile是用spcopy命令生成的

ASMCMD> spmove REGISTRY.253.866303695 old_ora.bak  ---删除默认的SPFILE将导致路径缺失

ASMCMD> ls -l

ASMCMD-8002: entry 'ASMPARAMETERFILE' does not exist in directory '+OCR_VOTE/rac-cluster/'

实例环境就绪,以下是解决办法:

ASMCMD> spget

/home/grid/registry.253.839197161

ASMCMD> spcopy /home/grid/registry.253.839197161 +OCR_VOTE/rac-cluster/ASMPARAMETERFILE/registry.ora  --将本地磁盘上的spfile复制至ASM磁盘

ASMCMD> ls -l

Type              Redund  Striped  Time             Sys  Name

ASMPARAMETERFILE  UNPROT  COARSE   DEC 14 19:00:00  Y    REGISTRY.253.866316081

                                                    N    registry.ora => +OCR_VOTE/rac-cluster/ASMPARAMETERFILE/REGISTRY.253.866316081 --注意这里是链接!!!!

ASMCMD> spset +OCR_VOTE/rac-cluster/ASMPARAMETERFILE/REGISTRY.253.866316081  --更新gpnp profile至链接

ASMCMD> spget

+OCR_VOTE/rac-cluster/ASMPARAMETERFILE/REGISTRY.253.866316081

重启实例生效...

ASMCMD> shutdown --abort

ASM instance shutdown

Connected to an idle instance.

ASMCMD>

ASMCMD>

ASMCMD> startup

ASM instance started

Total System Global Area 1135747072 bytes

Fixed Size      2260728 bytes

Variable Size   1108320520 bytes

ASM Cache     25165824 bytes

ASM diskgroups mounted

ASM diskgroups volume enabled

ASMCMD> lsdg

State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name

MOUNTED  EXTERN  N         512   4096  1048576      4094      926                0             926              0             N  DATA/

MOUNTED  EXTERN  N         512   4096  4194304      2032     1592                0            1592              0             Y  OCR_VOTE/

ASMCMD> spget

+OCR_VOTE/rac-cluster/ASMPARAMETERFILE/REGISTRY.253.866316081

SQL> show parameter spfile;

NAME         TYPE

------------------------------------ ----------------------

VALUE

------------------------------

spfile         string

+OCR_VOTE/rac-cluster/asmparameterfile/registry.253.866316081  --证实是通过gpnp profile里spfile启动实例

同样,其他数据库节点需要spset更新spfile路径,重启生效即可,此部分操作省略...

五、修改

1、指定新的spfile

srvctl modify asm -p /oracle/app/product/11.2.0/dbs/spfile+ASM.ora

srvctl config asm

sqlplus / as sysasm

create spfile from memory;

2、重启集群

3、查看是否生效

srvctl config asm

  • 25
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值