文档内容
目标 |
解决方案 |
准备磁盘 |
1. 磁盘大小 |
2. 裸设备或者块设备 (pre 11.2) |
3. ASM disks (11.2+) |
4. 集群文件系统 |
5. 权限 |
6. 冗余 |
添加/删除/替换/移动 OCR device |
1. 当只有一个 OCR 设备时,添加一个 OCRMIRROR 设备: |
2. 删除一个 OCR 设备 |
3. 替换或者移动 OCR 设备位置 |
4. 当集群停止时如何恢复 OCR |
添加/删除/移动 voting disk |
对应于 10gR2 版本 |
对于 11gR1 版本 |
对于 11gR2 版本 |
对于 修改在线的OCR或者Vote file 的操作: |
对于 Extended Cluster 上 Voting disk 维护 |
参考 |
提供在 Oracle Clusterware 10gR2, 11gR1 和 11gR2 环境中添加,删除,替换,移动 Oracle Cluster Repository (OCR) 和/或 Voting Disk 的步骤。并且包括了把OCR/voting 从裸设备移动到块设备和ASM 设备的步骤。对于 Oracle Clusterware 12c,请参考 Document 1558920.1 Software Patch Level and 12c Grid Infrastructure OCR Backup/Restore。
本文适用于需要修改,移动 OCR,voting disk 的 DBA 和技术支持工程师,客户已经在一套存储上部署了集群环境,可能需要在最短的停机时间内迁移到新的存储。
通常来说,一旦存储已经存在,那么可以通过 cp 或者 dd 文件,但是对于集群来说是有一些困难的,这是因为:
1. Oracle Clusterware 的 OCR 和 voting disks 是联机使用的。(包括primary和镜像)
2. 与 cp 和 dd 命令相比,Oracle提供的 API(ocrconfig and crsctl)更适合用来实现这些功能。
执行操作之前,请备份 OC R和 voting disk。
为了添加或者替换 OCR 或 voting disk,请提前准备新的磁盘。请参考各个平台 Clusteware/Gird Infrastructure 安装文档中关于磁盘的要求。
版本 10.1:
OCR device minimum size (each): 100M
Voting disk minimum size (each): 20M
版本 10.2:
OCR device 最小值 (每个): 256M
Voting disk最小值 (每个): 256M
版本 11.1:
OCR device 最小值 (每个): 280M
Voting disk 最小值 (每个): 280M
版本 11.2:
OCR device 最小值 (每个): 300M
Voting disk 最小值 (每个): 300M
请参考各个平台 Clusteware/Gird Infrastructure 安装文档。
对于windows平台,请使用命令$CRS_HOME\bin\GUIOracleOBJManager.exe创建新的裸设备链接,例如:
\\.\VOTEDSK2
\\.\OCR2
在windows平台,请参考 Document 331796.1 How to setup ASM on Windows
在Linux平台,请参考 Document 580153.1 How To Setup ASM on Linux Using ASMLIB Disks, Raw Devices or Block Devices?
其他平台,请参考 Clusterware/Gird Infrastructure安装手册 OTN (Chapter: Oracle Automatic Storage Management Storage Configuration)。
如果 OCR 在集群文件系统上,在添加/替换之前,新的 OCR 或者 OCRMIRROR 文件必需提前创建,否则会出现PROT-21: Invalid parameter (10.2/11.) or PROT-30 The Oracle Cluster Registry location to be added is not accessible (针对版本11.2)错误。
不需要提前在集群文件系统上创建 voting disk 文件。
执行删除命令后,需要手动在集群文件系统上删除 ocr/voting 文件。
对于 OCR 设备:
chown root:oinstall
chmod 640
对于 Voting 设备:
chown :oinstall
chmod 644
如果 OCR/Voting disk 使用 ASM 磁盘:
chown griduser:asmadmin
chmod 660
Voting 磁盘(不要使用偶数个):
External 需要最少1个 Voting 磁盘(或者1个 failure group)
Normal 需要最少3个 Voting 磁盘(或者3个 failure group)
High 需要最少5个 Voting 磁盘(或者5个 failure group)
缺少 failure group 会引起 voting disk 创建失败。例如 ORA-15274: Not enough failgroups (3) to create voting files
OCR:
10.2 和 11.1,最多2个 OCR 设备:OCR 和 OCRMIRROR
11.2+,最多5个 OCR。
请参考各个平台对应文档 Oracle? Grid Infrastructure Installation Guide 获得更多信息
在做任何改变前确保有一个近期的 OCR 文件备份:
ocrconfig -showbackup
如果没有近期的 OCR 文件备份,可以 export 当前的 OCR 文件。使用下面的命令生成一个在线 OCR 文件的导出文件:
版本 10.2
# ocrconfig -export -s online
版本 11.1 和 11.2
# ocrconfig -manualbackup
node1 2008/08/06 06:11:58 /crs/cdata/crs/backup_20080807_003158.ocr
使用导出文件来恢复 OCR,执行下面命令:
从 11.2 开始,请参考 How to restore ASM based OCR after complete loss of the CRS diskgroup on Linux/Unix systems Document 1062983.1
检查 OCR 是否健康,运行 ocrcheck 命令,应该返回下面的信息:
# ocrcheck
Status of Oracle Cluster Registry is as follows :
Version : 2
Total space (kbytes) : 497928
Used space (kbytes) : 312
Available space (kbytes) : 497616
ID : 576761409
Device/File Name : /dev/raw/raw1
Device/File integrity check succeeded
Device/File Name : /dev/raw/raw2
Device/File integrity check succeeded
Cluster registry integrity check succeeded
对于11.1及以上版本, ocrcheck 命令还应该返回:
Logical corruption check succeeded
添加一个 OCR mirror 设备,提供全路径包括文件名。
10.2 和 11.1:
# ocrconfig -replace ocrmirror
eg:
# ocrconfig -replace ocrmirror /dev/raw/raw2
# ocrconfig -replace ocrmirror /dev/sdc1
# ocrconfig -replace ocrmirror /cluster_fs/ocrdisk.dat
> ocrconfig -replace ocrmirror \\.\OCRMIRROR2 - for Windows
11.2+: 版本 11.2 之后,最多可添加4个 ocrmirrors
# ocrconfig -add
eg:
# ocrconfig -add +OCRVOTE2
# ocrconfig -add /cluster_fs/ocrdisk.dat
删除一个 OCR 设备:
10.2 和 11.1:
# ocrconfig -replace ocr
11.2+:
# ocrconfig -delete
eg:
# ocrconfig -delete +OCRVOTE1
* 一旦 OCR 设备被删除,ocrmirror 设备自动转换为 OCR。
* 如果只有一个 OCR 设备,那么不允许删除 OCR ,命令将会返回错误 PROT-16。
删除 OCR mirror 设备:
10.2 和 11.1:
# ocrconfig -replace ocrmirror
11.2+:
# ocrconfig -delete
eg:
# ocrconfig -delete +OCRVOTE2
如果是集群文件系统,那么删除之后,旧的 OCR/OCRMIRROR 文件可以被删除。
10.2 和 11.1:
替换 OCR 设备,提供全路径包括文件名:
# ocrconfig -replace ocr
eg:
# ocrconfig -replace ocr /dev/sdd1
$ ocrconfig -replace ocr \\.\OCR2 - for Windows
替换 OCR mirror 设备,提供全路径包括文件名:
# ocrconfig -replace ocrmirror
eg:
# ocrconfig -replace ocrmirrow /dev/raw/raw4
# ocrconfig -replace ocrmirrow \\.\OCRMIRROR2 - for Windows
11.2:
替换 OCR 或者 OCRMIRRORs 的命令和之前版本是相同的(至少2个 OCR 存在):
如果 OCR 不可访问,CRSD 进程将不会启动,因此集群将不能完全启动。恢复 OCR 需要访问好的 OCR 备份,查看自动 OCR 备份:
从OCR 备份恢复:
对于 11.2: 如果 OCR 位于 ASM 磁盘,但是 ASM DISK 也丢失了,请参考:
How to restore ASM based OCR after complete loss of the CRS diskgroup on Linux/Unix systems Document 1062983.1
How to Restore OCR After the 1st ASM Diskgroup is Lost on Windows Document 1294915.1
如果没有有效的 OCR 备份,那么需要重新初始化 OCR 和 voting。
对于10.2 和 11.1:
请参考 How to Recreate OCR/Voting Disk Accidentally Deleted Document 399482.1
对于 11.2:
需要在集群的所有节点deconfig 集群软件并且重新运行roo.sh 脚本。
对于 11.2 之前,备份 voting disk:
$ dd if=voting_disk_name of=backup_file_name
对于 Windows:
ocopy \\.\votedsk1 o:\backup\votedsk1.bak
对于 11.2+,不需要备份 voting disk,在发生任何配置变化是voting disk 会被自动备份到 OCR 上。如果 voting disk 中的内容发生了以下变化之一, Oracle Clusterware 会自动备份 voting disk:
配置参数,比如 misscount 被添加或者修改
执行 voting disk 添加或者删除操作
当添加或者替换 voting disk后,voting disk 内容会从VF备份中自动恢复到新的VF中。
修改任何 voting disk 前,停止 oracle 集群(使用 root 用户执行 crsctl stop crs)。查看当前 voting disk 位置:
crsctl query css votedisk
1. 添加一个 Voting Disk,提供全路径包括文件名:
# crsctl add css votedisk -force
eg:
# crsctl add css votedisk /dev/raw/raw1 -force
# crsctl add css votedisk /cluster_fs/votedisk.dat -force
> crsctl add css votedisk \\.\VOTEDSK2 -force - for windows
2. 删除一个 Voting Disk,提供全路径包括文件名:
# crsctl delete css votedisk -force
eg:
# crsctl delete css votedisk /dev/raw/raw1 -force
# crsctl delete css votedisk /cluster_fs/votedisk.dat -force
> crsctl delete css votedisk \\.\VOTEDSK1 -force - for windows
3. 移动一个 Voting Disk,提供全路径包括文件名,先添加一个设备,然后删除旧的:
# crsctl add css votedisk -force
# crsctl delete css votedisk -force
eg:
# crsctl add css votedisk /dev/raw/raw4 -force
# crsctl delete css votedisk /dev/raw/raw1 -force
修改 Voting Disk 后,在所有节点启动 oracle 集群
# crsctl start crs
确认 Voting Disk 位置:
# crsctl query css votedisk
从 11.1.0.6 开始,下面的命令可以在线执行(CRS 正在运行)
1. 添加一个 Voting Disk,提供全路径包括文件名:
2. 删除一个 Voting Disk,提供全路径包括文件名:
3. 移动一个Voting Disk, 提供全路径包括文件名
确认 Voting Disk 位置:
从 11.2开始,Voting Disk 可以存放于 ASM 磁盘组或者集群文件系统,当 Grid Infrastructure 运行是,执行下面的命令,以 grid 用户:
1. 添加一个 Voting Disk
a. 当 votedisk 位于集群文件系统:
b. 当 votedisk 位于 ASM 磁盘组,没有添加选项。
Votedisk 数量是由磁盘组冗余度决定。如果希望更多 votedisk 副本,可以移动 votedisk 到更高冗余度的磁盘组。见步骤4。
如果 votedisk 从一个正常或者高冗余度的磁盘组被删除,可以使用下面的命令添加回来:
2. 删除一个Voting Disk
a. 当 Voting Disk 位于集群文件系统时:
b. 当 Voting Disk 位于 ASM时,没有删除选项,只能从一个 asm 磁盘组替换为另外一个 asm 磁盘组。
3. 在集群文件系统上移动一个 Voting Disk
4. ASM 磁盘组冗余度或者位置变化
例子:从外部冗余磁盘组 +OCRVOTE 移动到正常冗余磁盘组 +CRS
5. 在 ASM 磁盘组和集群文件系统之间移动 voting disk
a. ASM 磁盘组移动到集群文件系统:
b. 从集群文件系统移动到 ASM 磁盘组
6. 确认:
对于存储的迁移,如果使用的是asm的磁盘组而且保持原来的大小、磁盘组、冗余方式都不改变的话,我们可以直接采取添加新的faiure group (磁盘)的方式,然后drop掉旧的failure group(磁盘),来达到更换磁盘的目的。
更多操作信息,请参考How to Swap Voting Disks Across Storage in a Diskgroup (Doc ID 1558007.1)和Exact Steps To Migrate ASM Diskgroups To Another SAN/Disk-Array/DAS/etc Without Downtime. (Doc ID 837308.1)
请参考 oracle 白皮书: Oracle Clusterware 11g Release 2 (11.2) – Using standard NFS to support a third voting file for extended cluster configurations
如果使用 asmca 工具有任何问题,请参考 How to Manually Add NFS voting disk to an Extended Cluster using ASM in 11.2 Note 1421588.1 。
2. OCR卷组调整步骤 4
2.1. 添加新存储 4
2.2. 多路径绑定配置 4
2.3. ASMLib配置 4
2.4. 备份OCR 5
2.5. 新建OCR卷组 5
2.6. 替换VOTE 6
2.7. 替换OCR 6
2.8. 迁移ASM SPFILE 7
2.9. 确认老OCR磁盘组是否还有其他文件 8
2.10. 删除老OCR卷组 8
2.11. 删除磁盘 8
建立Normal冗余级别的OCR卷组,需要至少3个LUN,每个LUN最少容量为1GB,需要在存储端配置3个LUN至RAC集群中的各个节点。
配置/etc/multipatch.conf,添加新磁盘的UUID,假设多路径绑定之后的路径为/dev/mapper/newocr1、/dev/mapper/newocr2、/dev/mapper/newocr3,并且重新加载Mutilpathd服务生效。
节点1操作如下:
将新加的3个LUN添加到ASMLIB中
# /usr/sbin/oracleasm createdisk OCRNEW1 /dev/mapper/newocr1
# /usr/sbin/oracleasm createdisk OCRNEW2 /dev/mapper/newocr2
# /usr/sbin/oracleasm createdisk OCRNEW3 /dev/mapper/newocr3
节点2:
扫描新加的3个LUN:
# /usr/sbin/oracleasm scandisks
# /usr/sbin/oracleasm listdisks
--逻辑备份恢复
ocrconfig -export /oracle/app/11.2.0/grid/cdata/ZFTPCCDB-crs/export_asm.bak
--物理备份恢复
ocrconfig -manualbackup
ocrconfig -showbackup
ocrcheck
set line 9999
set pagesize 9999
col path format a60
SELECT a.group_number, disk_number,mount_status, a.name, path FROM v$asm_disk a order by a.disk_number;
set line 999
select name,state,free_mb,required_mirror_free_mb,usable_file_mb,a.group_number, disk_number,mount_status, path from v$asm_diskgroup a;
select a.group_number,name,TYPE,state,TOTAL_MB,free_mb from v$asm_diskgroup a;
select name,state,free_mb,required_mirror_free_mb,usable_file_mb,a.group_number from v$asm_diskgroup a;
节点1新建Normal冗余级别的ASM卷组
sqlplus / as sysasm
create diskgroup newocr normal redundancy disk
'/dev/oracleasm/disks/neworc1',
'/dev/oracleasm/disks/neworc2',
'/dev/oracleasm/disks/neworc3'
attribute 'compatible.asm'='11.2','compatible.rdbms'='11.2';
节点1执行mount磁盘组:
ALTER DISKGROUP NEWOCR MOUNT;
crsctl stat res -t
在其中一个节点,root用户下执行:
替换VOTE
crsctl replace votedisk +newocr
确认
crsctl query css votedisk
[root@node1 ~]# crsctl replace votedisk +OCR
Successful addition of voting disk 83fc22d0d6164fd2bfc2c48c9edcd64d.
Successful deletion of voting disk afbe52656e124f8ebff3f7236ed85e32.
Successfully replaced voting disk group with +OCR.
CRS-4266: Voting file(s) successfully replaced
[root@node1 ~]# crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 83fc22d0d6164fd2bfc2c48c9edcd64d (ORCL:OVDISK) [OCR]
Located 1 voting disk(s).
[root@node1 ~]#
在grid用户下执行
Node1:
ocrconfig -add +newocr
ocrconfig -delete +ocr
more /etc/oracle/ocr.loc
[root@node1 ~]# ocrconfig -add +OCR
[root@node1 ~]# more /etc/oracle/ocr.loc
#Device/file getting replaced by device +OCR
ocrconfig_loc=+TEST
ocrmirrorconfig_loc=+OCR
local_only=false
[root@node1 ~]# ocrconfig -delete +TEST
[root@node1 ~]# more /etc/oracle/ocr.loc
#Device/file +TEST getting replaced by device +OCR
ocrconfig_loc=+OCR
local_only=false
[root@node1 ~]#
Node2不用执行:
ocrconfig -repair -add +newocr
ocrconfig -repair -delete +ocr
[root@node2 ~]# crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE afbe52656e124f8ebff3f7236ed85e32 (/dev/asm-diskb) [TEST]
Located 1 voting disk(s).
[root@node2 ~]# crsctl query css votedisk
## STATE File Universal Id File Name Disk group
-- ----- ----------------- --------- ---------
1. ONLINE 83fc22d0d6164fd2bfc2c48c9edcd64d (ORCL:OVDISK) [OCR]
Located 1 voting disk(s).
[root@node2 ~]# more /etc/oracle/ocr.loc
#Device/file +OVDISK getting replaced by device +TEST
ocrconfig_loc=+TEST
local_only=false
[root@node2 ~]# more /etc/oracle/ocr.loc
#Device/file getting replaced by device +OCR
ocrconfig_loc=+TEST
ocrmirrorconfig_loc=+OCR
local_only=false
[root@node2 ~]# more /etc/oracle/ocr.loc
#Device/file +TEST getting replaced by device +OCR
ocrconfig_loc=+OCR
local_only=false
[root@node2 ~]#
在GRID用户下任一节点执行
$ asmcmd
查看当前的ASMSPFILE
ASMCMD> spget
复制SPFILE至新卷组
ASMCMD> spcopy -u +CRSDG/xx/asmparameterfile/registry.xx +newocr/spfileASM.ora
查看新SPFILE绝对路径
ASMCMD> ls -l +newocr/spfileASM.ora
+NEWOCR/XX/ASMPARAMETERFILE/REGISTRY.253.833623103
ASMCMD>spset +NEWOCR/XX/ASMPARAMETERFILE/REGISTRY.253.833623103
修改两个节点ORACLE用户下$ORACLE_HOME/dbs/init.ora文件内容
SPFILE='+newocr/spfileASM.ora'
[grid@node1 ~]$ asmcmd
ASMCMD> spget
+TEST/node-cluster/ASMPARAMETERFILE/REGISTRY.253.936725677
ASMCMD> spcopy -u +TEST/node-cluster/ASMPARAMETERFILE/REGISTRY.253.936725677 +OCR/spfileASM.ora
ASMCMD> ls -l +ocr/spfileASM.ora
Type Redund Striped Time Sys Name
N spfileASM.ora => +OCR/node-cluster/ASMPARAMETERFILE/REGISTRY.253.936729105
ASMCMD> spset +OCR/node-cluster/ASMPARAMETERFILE/REGISTRY.253.936729105
ASMCMD> spget
+OCR/node-cluster/ASMPARAMETERFILE/REGISTRY.253.936729105
ASMCMD>
重启集群后:
节点2:
su - grid
sqlplus / as sysasm
alter diskgroup OCR dismount;
exit
节点1:
su - grid
sqlplus / as sysasm
drop diskgroup ocr;
drop diskgroup OVDISK INCLUDING CONTENTS;
drop diskgroup OVDISK FORCE INCLUDING CONTENTS;
任一节点ROOT用户下操作:
# /usr/sbin/oracleasm dropdisk OCR
删除多路径绑定配置,删除配置/etc/multipatch.conf中原有OCR盘内容。
最后从存储上删除到2个节点的映射。
About Me
...............................................................................................................................
● 本文整理自网络
● 本文在itpub(http://blog.itpub.net/26736162)、博客园(http://www.cnblogs.com/lhrbest)和个人微信公众号(xiaomaimiaolhr)上有同步更新
● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/
● 本文博客园地址:http://www.cnblogs.com/lhrbest
● 本文pdf版及小麦苗云盘地址:http://blog.itpub.net/26736162/viewspace-1624453/
● 数据库笔试面试题库及解答:http://blog.itpub.net/26736162/viewspace-2134706/
● QQ群:230161599 微信群:私聊
● 联系我请加QQ好友(646634621),注明添加缘由
● 于 2017-06-02 09:00 ~ 2017-06-30 22:00 在魔都完成
● 文章内容来源于小麦苗的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
● 版权所有,欢迎分享本文,转载请保留出处
...............................................................................................................................
拿起手机使用微信客户端扫描下边的左边图片来关注小麦苗的微信公众号:xiaomaimiaolhr,扫描右边的二维码加入小麦苗的QQ群,学习最实用的数据库技术。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。