合 OCR/Vote disk 维护操作: (添加/删除/替换/移动) (文档 ID 1674859.1)
- 适用于:
- 目标
- 解决方案
- 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 维护
- 参考
- 替换OCR磁盘组的步骤
- 1.1. 添加新存储
- 1.2. 多路径绑定配置
- 1.3. ASMLib配置
- 1.4. 备份OCR
- 1.5. 新建OCR卷组
- 1.6. 替换VOTE
- 1.7. 替换OCR
- 1.8. 迁移ASM SPFILE
- 1.9. 确认老OCR磁盘组是否还有其他文件
- 1.10. 删除老OCR卷组
- 1.11. 删除磁盘
OCR Vote disk 维护操作 (添加 删除 替换 移动) (文档 ID 1674859.1
适用于:
Oracle Database - Enterprise Edition - 版本 10.2.0.1 到 11.2.0.1.0 [发行版 10.2 到 11.2]
本文档所含信息适用于所有平台
目标
提供在 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 files 存放在一起,像OCFS (例如在 pre-11.2 Clusterware 环境) 或者在同一个 ASM diskgroup (例如在 11.2 Oracle Clusterware 环境), 事实上 OCR 和 Voting disk 是 2 个单独的文件和实体,因此如果希望修改或者移动 OCR 和 Voting disk,那么必须遵守下面提供的步骤。
解决方案
准备磁盘
为了添加或者替换 OCR 或 voting disk,请提前准备新的磁盘。请参考各个平台 Clusteware/Gird Infrastructure 安装文档中关于磁盘的要求。
1. 磁盘大小
版本 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
2. 裸设备或者块设备 (pre 11.2)
请参考各个平台 Clusteware/Gird Infrastructure 安装文档。
对于windows平台,请使用命令$CRS_HOME\bin\GUIOracleOBJManager.exe创建新的裸设备链接,例如:
\.\VOTEDSK2
\.\OCR2
3. ASM disks (11.2+)
在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安装手册 (Chapter: Oracle Automatic Storage Management Storage Configuration)。
4. 集群文件系统
如果 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)错误。
使用 root 用户
# touch /cluster_fs/ocrdisk.dat
# touch /cluster_fs/ocrmirror.dat
# chown root:oinstall /cluster_fs/ocrdisk.dat /cluster_fs/ocrmirror.dat
# chmod 640 /cluster_fs/ocrdisk.dat /cluster_fs/ocrmirror.dat
不需要提前在集群文件系统上创建 voting disk 文件。
执行删除命令后,需要手动在集群文件系统上删除 ocr/voting 文件。
5. 权限
对于 OCR 设备:
chown root:oinstall
chmod 640
对于 Voting 设备:
chown :oinstall
chmod 644
如果 OCR/Voting disk 使用 ASM 磁盘:
chown griduser:asmadmin
chmod 660
6. 冗余
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 device
注意: 必须以 root 用户登录,因为 root 用户拥有 OCR 文件。"ocrconfig -replace"命令只能在CRS 运行时执行,否则报错"PROT-1: Failed to initialize ocrconfig"。
请确保执行这些操作时 CRS 在所有节点都是运行的,否则在关闭的节点上这些命令将不会生效,那么将来关闭节点的 CRS 启动时会有问题。需要使用"ocrconfig -repair"命令来修复 ocr.loc 文件。
对于 11.2 及以上版本而且 OCR 在 ASM 磁盘组的集群,由于 unpublished Bug 8604794 - FAIL TO CHANGE OCR LOCATION TO DG WITH 'OCRCONFIG -REPAIR -REPLACE'的存在,使用"ocrconfig -repair"命令将 OCR 位置修改到不同的 ASM 磁盘组是不能正常工作的。临时的解决方法是手动编辑 /etc/oracle/ocr.loc 或 /var/opt/oracle/ocr.loc文件 或 Windows registry HYKEY_LOCAL_MACHINE\SOFTWARE\Oracle\ocr剑指,指向设定的磁盘组。
如果 OLR 有任何问题,请参考 How to restore OLR in 11.2 Grid Infrastructure Note 1193643.1.
在做任何改变前确保有一个近期的 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,执行下面命令:
# ocrconfig -import
从 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 succeededCluster registry integrity check succeeded
对于11.1及以上版本, ocrcheck 命令还应该返回:
Logical corruption check succeeded
1. 当只有一个 OCR 设备时,添加一个 OCRMIRROR 设备:
添加一个 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
2. 删除一个 OCR 设备
删除一个 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 文件可以被删除。
3. 替换或者移动 OCR 设备位置
注意. 1. 替换 OCR 设备前,一个 ocrmirror 必须存在,否则报错 PROT-16。
\2. 如果 OCR 设备被替换为不同大小的设备,那么新的设备大小只有集群重启后才会被显示。
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 存在):
# ocrconfig -replace -replacement
eg:
# ocrconfig -replace /cluster_file/ocr.dat -replacement +OCRVOTE
# ocrconfig -replace +CRS -replacement +OCRVOTE
4. 当集群停止时如何恢复 OCR
如果 OCR 不可访问,CRSD 进程将不会启动,因此集群将不能完全启动。恢复 OCR 需要访问好的 OCR 备份,查看自动 OCR 备份:
# ocrconfig -showbackup
从OCR 备份恢复:
# ocrconfig -restore
对于 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 脚本。
添加/删除/移动 voting disk
注意: 1. 对于版本10.2 和 11.1, crsctl votedisk 命令必须以 root 用户运行,但是对于11.2 及以上版本, 可以用 grid 用户运行。
\2. 对于 11.2,如果 OCR 和 voting 使用 ASM 磁盘,那么这个命令在 Windows 和 Unix 平台是相同的。
对于 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中。
对应于 10gR2 版本
修改任何 voting disk 前,停止 oracle 集群(使用 root 用户执行 crsctl stop crs)。查看当前 voting disk 位置:
crsctl query css votedisk
- 添加一个 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
- 删除一个 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
- 移动一个 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
对于 11gR1 版本
从 11.1.0.6 开始,下面的命令可以在线执行(CRS 正在运行)
- 添加一个 Voting Disk,提供全路径包括文件名:
# crsctl add css votedisk
eg:
# crsctl add css votedisk /dev/raw/raw1
# crsctl add css votedisk /cluster_fs/votedisk.dat
> crsctl add css votedisk \.\VOTEDSK2 - for windows
- 删除一个 Voting Disk,提供全路径包括文件名:
# crsctl delete css votedisk
eg:
# crsctl delete css votedisk /dev/raw/raw1 -force
# crsctl delete css votedisk /cluster_fs/votedisk.dat
> crsctl delete css votedisk \.\VOTEDSK1 - for windows
- 移动一个Voting Disk, 提供全路径包括文件名
# crsctl add css votedisk
# crsctl delete css votedisk
eg:
# crsctl add css votedisk /dev/raw/raw4
# crsctl delete css votedisk /dev/raw/raw1
确认 Voting Disk 位置:
# crsctl query css votedisk
对于 11gR2 版本
从 11.2开始,Voting Disk 可以存放于 ASM 磁盘组或者集群文件系统,当 Grid Infrastructure 运行是,执行下面的命令,以 grid 用户:
- 添加一个 Voting Disk
a. 当 votedisk 位于集群文件系统:
$ crsctl add css votedisk
b. 当 votedisk 位于 ASM 磁盘组,没有添加选项。
Votedisk 数量是由磁盘组冗余度决定。如果希望更多 votedisk 副本,可以移动 votedisk 到更高冗余度的磁盘组。见步骤4。
如果 votedisk 从一个正常或者高冗余度的磁盘组被删除,可以使用下面的命令添加回来:
alter diskgroup add disk '' force;
- 删除一个Voting Disk
a. 当 Voting Disk 位于集群文件系统时:
$ crsctl delete css votedisk
or
$ crsctl delete css votedisk (vdiskGUID is the File Universal Id from 'crsctl query css votedisk')
b. 当 Voting Disk 位于 ASM时,没有删除选项,只能从一个 asm 磁盘组替换为另外一个 asm 磁盘组。
- \在集群文件系统上\移动一个 Voting Disk
$ crsctl add css votedisk
$ crsctl delete css votedisk
or
$ crsctl delete css votedisk
- ASM 磁盘组冗余度或者位置变化
$ crsctl replace votedisk <+diskgroup>|
例子:从外部冗余\磁盘组\ +OCRVOTE 移动到正常冗余磁盘组 +CRS\
\1. create new diskgroup +CRS as desired
\2. $ crsctl query css votedisk
## STATE File Universal Id File Name Disk group