上节介绍运行集群环境所需的进程,这节总体上说Oracle集群的安装,升级以及克隆等
Oracle Clusterware 包含了2个重要的组件用来管理配置和节点成员
分别是Oracle Cluster Registry (OCR)以及voting disks
其中OCR还包含一个本地的组件Oracle Local Registry (OLR)
- OCR 管理Oracle集群软件以及RAC数据库的配置信息
- OLR位于集群中的各个节点的本地用于管理单个节点
- Voting disk管理节点的成员信息,他必须能被集群中的所有节点访问
我们可以将OCR和Voting Disk 存储在ASM或共享存储中,Oracle推荐使用ASM
Oracle 11.2 OUI不支持使用裸设备或者块设备,不过如果你是从以前版本升级而来则是可以使用的
1. 管理OCR
OCR 包含集群中所有resource的信息
OLR内容和OCR相似,不过他位于各个节点本地
Oracle High Availability Services在启动时需要OLR里面的内容
OLR位置在Grid_home/cdata/host_name.olr
其中Grid_home为 Grid的家目录,host_name为主机名
1.1 迁移OCR至ASM中
我们可以使用OCRCONFIG命令将OCR迁移至ASM中
1.1.1 检查集群版本
确保版本为 11.2
$ crsctl query crs activeversion
1.1.2 使用asmca在各个节点启动ASM
1.1.3 创建磁盘组
使用asmca创建用于存放OCR的磁盘组,其荣誉模式至少为normal
1.1.4 增加OCR位置
增加前请确保Oracle 集群已开启
# ocrconfig -add new_disk_group
我们可以重复使用该命令为OCR添加不同的位置,但每次必须使用不同的磁盘组 我们最多指定5个位置
1.1.5 删除不用的位置
使用如下命令删除其他不用的位置
# ocrconfig -delete old_storage_location
1.1.6 具体范例
将OCR从ASM移除则使用相反的操作
# ocrconfig -add new_disk_group # ocrconfig -delete /dev/raw/raw2 # ocrconfig -delete /dev/raw/raw1
1.2. 管理OCR 命令
1.2.1 增加OCR位置
使用root用户执行
#ocrconfig -add asm_disk_group | file_name
1.2.2 删除OCR位置
请确保删除后至少有一个OCR位置
使用root用户执行
既可以执行磁盘组也可指定文件名
#ocrconfig -delete ASM_disk_group | file_name
1.2.3替换OCR位置
我们可以替换一个不需要或者损坏的OCR文件
使用root用户运行此命令
#ocrconfig -replace current_OCR_location -replacement new_OCR_location
1.2.4 修复OCR
当集群中OCR配置更改时,如果有节点处于离线状态,则可用repair命令更新OCR信息
我们可以做add delete replace操作
该命令必须保证High Availability Services 服务器已开启并且Cluster Ready Services关闭
#ocrconfig -repair -replace current_OCR_location -replacement target_OCR_location
1.2.5 检查OCR
#ocrcheck
1.2.6 检查当前节点信息
# olsnodes lixora01 lixora02
1.2.7 查看OCR内容
#ocrdump <filename>
如不指定文件名则会在当前目录创建一个OCRDUMPFILE 的文件
1.3.备份OCR
Oracle备份OCR分为如下2个:
1.3.1 自动备份
Oracle 会每个四小时备份一次OCR,并且保存最后三次的备份
CRSD进程也会保留一份每天的备份以及一份每周最后一天的备份
我们不可以改变自动备份的排程及策略
1.3.2 手动备份
我们使用如下命令在任何时刻手动备份OCR
#ocrconfig -manualbackup
OLR只支持手动备份
1.3.3 列出OCR备份
我们使用如下命令列出OCR备份的情况
#ocrconfig -showbackup
1.3.4 检查OCR备份
使用如下命令检查备份内容验证有效性
使用root用户执行
#ocrdump -backupfile backup_file_name
执行完成后当前目录会生成一个文件
1.3.5 备份的位置
备份的位置位于本地路径,Oracle建议定期备份备份的OCR文件
Grid_home/cdata/cluster_name
1.4. 还原OCR
如果备份存在于ASM磁盘组中,而且该磁盘组损坏,我们必须首先修复该磁盘组
可以使用ocrconfig -restore命令来恢复OCR
主要步骤为:
- 停止OCR crsctl stop crs
- 以exclusive模式开启crs crsctl start crs -excl -nocrs
- 使用备份还原OCR ocrconfig -restore file_name
- 检查ocr 是否正常 ocrcheck
- 退出exclusive模式 crsctl stop crs -f
- 修复其他节点的OCR信息 ocrconfig -repair -replace
- 启动集群 rsctl start crs
1.5 诊断OCR故障
我们可以使用ocrconfig -export 和ocrconfig -impport命令来导出导入OCR内容
我们推荐使用bakcup来备份OCR而不是使用export,使用retoere来恢复OCR而不是import,原因如下:
- bakcup是OCR的一致性备份而export不是
- backup可以在线备份,使用export你必须关闭crs来获取一致性的OCR内容
- 你可以使用OCRDUMP命令来查看backup的内容,而你不可以看export的内容
- 你可以使用ocrconfig -showbackup来查看备份列表,而你必须认为的记录export备份的情况
2.管理OLR
OLR的位置grid_home/cdata/host_name.olr
2.1 检查OLR信息
需要使用root用户
#ocrcheck -local
2.2 查看OLR内容并输出到终端
使用root用户
#ocrdump -local -stdout
2.3 导出OLR内容至本地
#ocrconfig –local –export file_name
2.4 从文件导入OLR
# ocrconfig –local –import file_name
2.5 手动备份OLR
#ocrconfig –local –manualbackup
2.6 查看OLR备份的内容
#ocrdump -local -backupfile olr_backup_file_name
2.7更改OLR备份目录
#ocrconfig -local -backuploc new_olr_backup_path
2.8恢复OLR
# crsctl stop crs # ocrconfig -local -restore file_name # ocrcheck -local # crsctl start crs $ cluvfy comp olr