迁移OCR、表决磁盘和asm spfile到其他磁盘组中

本文参考:https://levipereira.wordpress.com/2012/01/11/explaining-how-to-store-ocr-voting-disks-and-asm-spfile-on-asm-diskgroup-rac-or-rac-extended/


最初磁盘组+CRSTMP 里有一个voting 文件, ocr 和 asm spfile.

迁移后磁盘组CRS存储OCR文件和asm spfile,磁盘组VOTE存储表决磁盘和OCR MIRROR

检查节点是否为Actives:

$ olsnodes -s
lnxora01        Active
lnxora02        Active
lnxora03        Active

使用OCRCHECK查看OCR文件的存储位置:

$ ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       3848
         Available space (kbytes) :     258272
         ID                       : 1997055112
         Device/File Name         :    +CRSTMP
                                    Device/File integrity check succeeded
 
                                    Device/File not configured
 
                                    Device/File not configured
 
                                    Device/File not configured
 
                                    Device/File not configured
 
         Cluster registry integrity check succeeded
 
         Logical corruption check bypassed due to non-privileged user
使用CRSCTL查看表决文件的存储位置:

$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   a0d6ea8dfb944fe7bfb799a451195a18 (ORCL:CRSTMP01) [CRSTMP]
Located 1 voting disk(s).
使用ASMCMD查看ASM SPFILE的存储位置:

$ asmcmd spget
+CRSTMP/testcluster/ASMPARAMETERFILE/REGISTRY.253.772133609
获取 ASM上关于表决磁盘的信息。我们在ASM上不能看到表决磁盘的文件,我们只知道表决磁盘存储在asmdisk上。
SET LINESIZE 150
COL PATH FOR A30
COL NAME FOR A10
COL HEADER_STATUS FOR A20
COL FAILGROUP FOR A20
COL FAILGROUP_TYPE FOR A20
COL VOTING_FILE FOR A20
SELECT NAME,PATH,HEADER_STATUS,FAILGROUP, FAILGROUP_TYPE, VOTING_FILE
FROM V$ASM_DISK
WHERE GROUP_NUMBER = ( SELECT GROUP_NUMBER
             FROM V$ASM_DISKGROUP
             WHERE NAME='CRSTMP');
 
NAME       PATH                           HEADER_STATUS        FAILGROUP            FAILGROUP_TYPE       VOTING_FILE
---------- ------------------------------ -------------------- -------------------- -------------------- --------------------
CRSTMP01   ORCL:CRSTMP01                  MEMBER               CRSTMP01             REGULAR              Y
在ASM上获取OCR和ASM SPFILE的路径和全名
olsnodes -c : 显示集群的名称

$ olsnodes -c
tstcluster
 
set linesize 100
col FILES_OF_CLUSTER for a60
 
select concat('+'||gname, sys_connect_by_path(aname, '/')) FILES_OF_CLUSTER
     from ( select b.name gname, a.parent_index pindex, a.name aname,
              a.reference_index rindex , a.system_created, a.alias_directory,
              c.type file_type
       from v$asm_alias a, v$asm_diskgroup b, v$asm_file c
       where a.group_number = b.group_number
             and a.group_number = c.group_number(+)
             and a.file_number = c.file_number(+)
             and a.file_incarnation = c.incarnation(+)
     ) WHERE file_type in ( 'ASMPARAMETERFILE','OCRFILE')
start with (mod(pindex, power(2, 24))) = 0
            and rindex in
                ( select a.reference_index
                  from v$asm_alias a, v$asm_diskgroup b
                  where a.group_number = b.group_number
                        and (mod(a.parent_index, power(2, 24))) = 0
                        and a.name = LOWER('&CLUSTERNAME')
                )
connect by prior rindex = pindex;
 
Enter value for clustername: tstcluster
old  17:                         and a.name = LOWER('&CLUSTERNAME')
new  17:                         and a.name = LOWER('tstcluster')
 
FILES_OF_CLUSTER
---------------------------------------------------------
+CRSTMP/tstcluster/OCRFILE/REGISTRY.255.772133361
+CRSTMP/tstclsuter/ASMPARAMETERFILE/REGISTRY.253.772133609
以下CRS01和CRS02将用于磁盘组的CRS,VOTE01,VOTE02和VOTE03将用于磁盘组VOTE

 col path for a30
 col name for a20
 col header_status for a20
 select path,name,header_status from v$asm_disk
 where path like '%CRS%' or path like '%VOTE%';
 
PATH                           NAME                 HEADER_STATUS
------------------------------ -------------------- --------------------
ORCL:CRS01                                          PROVISIONED
ORCL:CRS02                                          PROVISIONED
ORCL:VOTE01                                         PROVISIONED
ORCL:VOTE02                                         PROVISIONED
ORCL:VOTE03                                         PROVISIONED
ORCL:CRSTMP01                  CRSTMP01             MEMBER
创建表决磁盘的磁盘组,每个磁盘必须在不同的failgroup中。
CREATE DISKGROUP VOTE NORMAL REDUNDANCY
     FAILGROUP STG1_C1 DISK 'ORCL:VOTE01'
     FAILGROUP STG1_C2 DISK 'ORCL:VOTE02'
     FAILGROUP STG1_C1_1 DISK 'ORCL:VOTE03'
     ATTRIBUTE 'compatible.asm' = '11.2.0.0.0';
 
Diskgroup created.
 
# 在其他节点上启动磁盘组
SQL> ! srvctl start diskgroup -g vote -n lnxora02,lnxora03
 
# 检查磁盘组是否活动在所有节点上
SQL> ! srvctl status diskgroup -g vote
Disk Group vote is running on lnxora01,lnxora02,lnxora03
创建CRS磁盘组:

SQL>
CREATE DISKGROUP CRS NORMAL REDUNDANCY
     FAILGROUP STG1_C1 DISK 'ORCL:CRS01'
     FAILGROUP STG1_C2 DISK 'ORCL:CRS02'
     ATTRIBUTE 'compatible.asm' = '11.2.0.0.0';
 
Diskgroup created.
 
# 在其他节点上启动磁盘组
SQL> ! srvctl start diskgroup -g crs -n lnxora02,lnxora03
 
# 检查磁盘组是否活动在所有节点上
SQL> ! srvctl status diskgroup -g crs
Disk Group crs is running on lnxora01,lnxora02,lnxora03

SQL>
SET LINESIZE 150
COL PATH FOR A30
COL NAME FOR A10
COL HEADER_STATUS FOR A20
COL FAILGROUP FOR A20
COL FAILGROUP_TYPE FOR A20
COL VOTING_FILE FOR A20
SELECT NAME,PATH,HEADER_STATUS,FAILGROUP, FAILGROUP_TYPE, VOTING_FILE
FROM V$ASM_DISK
WHERE GROUP_NUMBER IN ( SELECT GROUP_NUMBER
             FROM V$ASM_DISKGROUP
             WHERE NAME IN ('CRS','VOTE'));
 
NAME       PATH                           HEADER_STATUS        FAILGROUP            FAILGROUP_TYPE       VOTING_FILE
---------- ------------------------------ -------------------- -------------------- -------------------- --------------------
VOTE03     ORCL:VOTE03                    MEMBER               STG1_C1_1            REGULAR              N
VOTE02     ORCL:VOTE02                    MEMBER               STG1_C2              REGULAR              N
VOTE01     ORCL:VOTE01                    MEMBER               STG1_C1              REGULAR              N
CRS01      ORCL:CRS01                     MEMBER               STG1_C1              REGULAR              N
CRS02      ORCL:CRS02                     MEMBER               STG1_C2              REGULAR              N

移动表决文件从+ CRSTMP至+ VOTE
$ crsctl replace votedisk +VOTE
Successful addition of voting disk aaa75b9e7ce24f39bfd9eecb3e3c0e38.
Successful addition of voting disk 873d51346cd34fc2bf9caa94999c4cd8.
Successful addition of voting disk acda8619b74c4fe8bf886ee6c9fe8d1a.
Successful deletion of voting disk a0d6ea8dfb944fe7bfb799a451195a18.
Successfully replaced voting disk group with +VOTE.
CRS-4266: Voting file(s) successfully replaced
 
$ crsctl query css votedisk
##  STATE    File Universal Id                File Name Disk group
--  -----    -----------------                --------- ---------
 1. ONLINE   aaa75b9e7ce24f39bfd9eecb3e3c0e38 (ORCL:VOTE01) [VOTE]
 2. ONLINE   873d51346cd34fc2bf9caa94999c4cd8 (ORCL:VOTE02) [VOTE]
 3. ONLINE   acda8619b74c4fe8bf886ee6c9fe8d1a (ORCL:VOTE03) [VOTE]
Located 3 voting disk(s).
 
SET LINESIZE 150
COL PATH FOR A30
COL NAME FOR A10
COL HEADER_STATUS FOR A20
COL FAILGROUP FOR A20
COL FAILGROUP_TYPE FOR A20
COL VOTING_FILE FOR A20
SELECT NAME,PATH,HEADER_STATUS,FAILGROUP, FAILGROUP_TYPE, VOTING_FILE
FROM V$ASM_DISK
WHERE GROUP_NUMBER = ( SELECT GROUP_NUMBER
             FROM V$ASM_DISKGROUP
             WHERE NAME='VOTE');
 
NAME       PATH                           HEADER_STATUS        FAILGROUP            FAILGROUP_TYPE       VOTING_FILE
---------- ------------------------------ -------------------- -------------------- -------------------- --------------------
VOTE03     ORCL:VOTE03                    MEMBER               STG1_C1_1            REGULAR              Y
VOTE02     ORCL:VOTE02                    MEMBER               STG1_C2              REGULAR              Y
VOTE01     ORCL:VOTE01                    MEMBER               STG1_C1              REGULAR              Y
移动OCR到磁盘组+ CRS和+ VOTE,并从磁盘组中删除+ CRSTMP
# /u01/app/11.2.0/grid/bin/ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       3868
         Available space (kbytes) :     258252
         ID                       : 1997055112
         Device/File Name         :    +CRSTMP
                                    Device/File integrity check succeeded
 
                                    Device/File not configured
 
                                    Device/File not configured
 
                                    Device/File not configured
 
                                    Device/File not configured
 
         Cluster registry integrity check succeeded
 
         Logical corruption check succeeded
 
# /u01/app/11.2.0/grid/bin/ocrconfig -add +CRS
 
# /u01/app/11.2.0/grid/bin/ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       3836
         Available space (kbytes) :     258284
         ID                       : 1997055112
         Device/File Name         :    +CRSTMP
                                    Device/File integrity check succeeded
         Device/File Name         :       +CRS
                                    Device/File integrity check succeeded
 
                                    Device/File not configured
 
                                    Device/File not configured
 
                                    Device/File not configured
 
         Cluster registry integrity check succeeded
 
         Logical corruption check succeeded
 
# /u01/app/11.2.0/grid/bin/ocrconfig -add +VOTE
 
 /u01/app/11.2.0/grid/bin/ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       3836
         Available space (kbytes) :     258284
         ID                       : 1997055112
         Device/File Name         :    +CRSTMP
                                    Device/File integrity check succeeded
         Device/File Name         :       +CRS
                                    Device/File integrity check succeeded
         Device/File Name         :      +VOTE
                                    Device/File integrity check succeeded
 
                                    Device/File not configured
 
                                    Device/File not configured
 
         Cluster registry integrity check succeeded
 
         Logical corruption check succeeded
 
# /u01/app/11.2.0/grid/bin/ocrconfig -delete +CRSTMP
 
/u01/app/11.2.0/grid/bin/ocrcheck
Status of Oracle Cluster Registry is as follows :
         Version                  :          3
         Total space (kbytes)     :     262120
         Used space (kbytes)      :       3836
         Available space (kbytes) :     258284
         ID                       : 1997055112
         Device/File Name         :       +CRS
                                    Device/File integrity check succeeded
         Device/File Name         :      +VOTE
                                    Device/File integrity check succeeded
 
                                    Device/File not configured
 
                                    Device/File not configured
 
                                    Device/File not configured
 
         Cluster registry integrity check succeeded
 
         Logical corruption check succeeded
移动ASM SPFILE到磁盘组+ CRS

你会得到一个文件正在使用中的错误,但实际上已经将文件复制到文件系统和配置文件中。

$ asmcmd spget
+CRSTMP/tstcluster/ASMPARAMETERFILE/REGISTRY.253.772133609
 
$ asmcmd spmove '+CRSTMP/tstcluster/ASMPARAMETERFILE/REGISTRY.253.772133609' '+CRS/tstcluster/spfileASM.ora'
ORA-15032: not all alterations performed
ORA-15028: ASM file '+CRSTMP/tstcluster/ASMPARAMETERFILE/REGISTRY.253.772133609' not dropped; currently being accessed (DBD ERROR: OCIStmtExecute)
 
# 检查是否已经更新
$ asmcmd spget
+CRS/tstcluster/spfileASM.ora
检查ASM集群文件:

set linesize 100
col FILES_OF_CLUSTER for a60
 
select concat('+'||gname, sys_connect_by_path(aname, '/')) FILES_OF_CLUSTER
     from ( select b.name gname, a.parent_index pindex, a.name aname,
              a.reference_index rindex , a.system_created, a.alias_directory,
              c.type file_type
       from v$asm_alias a, v$asm_diskgroup b, v$asm_file c
       where a.group_number = b.group_number
             and a.group_number = c.group_number(+)
             and a.file_number = c.file_number(+)
             and a.file_incarnation = c.incarnation(+)
     ) WHERE file_type in ( 'ASMPARAMETERFILE','OCRFILE')
start with (mod(pindex, power(2, 24))) = 0
            and rindex in
                ( select a.reference_index
                  from v$asm_alias a, v$asm_diskgroup b
                  where a.group_number = b.group_number
                        and (mod(a.parent_index, power(2, 24))) = 0
                        and a.name = LOWER('&CLUSTERNAME')
                )
connect by prior rindex = pindex;
Enter value for clustername: tstcluster
old  17:                         and a.name = LOWER('&CLUSTERNAME')
new  17:                         and a.name = LOWER('tstcluster')
 
FILES_OF_CLUSTER
------------------------------------------------------------
+CRSTMP/tstcluster/OCRFILE/REGISTRY.255.772133361
+CRSTMP/tstcluster/ASMPARAMETERFILE/REGISTRY.253.772133609
+VOTE/tstcluster/OCRFILE/REGISTRY.255.772207785
+CRS/tstcluster/OCRFILE/REGISTRY.255.772207425
+CRS/tstcluster/ASMPARAMETERFILE/REGISTRY.253.772208263
+CRS/tstcluster/spfileASM.ora
为了在ASM中可以使用新的SPFILE并断开磁盘组+ CRSTMP,我们需要重新启动集群。

# /u01/app/11.2.0/grid/bin/crsctl stop cluster -all
CRS-2673: Attempting to stop 'ora.crsd' on 'lnxora01'
CRS-2790: Starting shutdown of Cluster Ready Services-managed resources on 'lnxora01'
.

# /u01/app/11.2.0/grid/bin/crsctl start cluster -all
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'lnxora01'
CRS-2672: Attempting to start 'ora.cssdmonitor' on 'lnxora02'
.
 
$ asmcmd spget
+CRS/tstcluster/spfileASM.ora
现在,我们可以删除磁盘组+ CRSTMP

SQL> ! srvctl stop diskgroup -g crstmp -n lnxora02,lnxora02
 
SQL> drop diskgroup crstmp including contents;
 
Diskgroup dropped.
 
SQL>
FILES_OF_CLUSTER
------------------------------------------------------------
+CRS/tstcluster/OCRFILE/REGISTRY.255.772207425
+CRS/tstcluster/ASMPARAMETERFILE/REGISTRY.253.772211229
+CRS/tstcluster/spfileASM.ora
+VOTE/tstcluster/OCRFILE/REGISTRY.255.772207785









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值