Oracle OCR/OLR管理

2018-01-16 Oracle 宅必备

上节介绍运行集群环境所需的进程,这节总体上说Oracle集群的安装,升级以及克隆等

Oracle Clusterware 包含了2个重要的组件用来管理配置和节点成员

分别是Oracle Cluster Registry (OCR)以及voting disks

其中OCR还包含一个本地的组件Oracle Local Registry (OLR)

我们可以将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

Alt text

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

Alt text

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

Alt text

1.3.4 检查OCR备份

使用如下命令检查备份内容验证有效性

使用root用户执行

#ocrdump -backupfile backup_file_name

执行完成后当前目录会生成一个文件

Alt text

1.3.5 备份的位置

备份的位置位于本地路径,Oracle建议定期备份备份的OCR文件

Grid_home/cdata/cluster_name

1.4. 还原OCR

如果备份存在于ASM磁盘组中,而且该磁盘组损坏,我们必须首先修复该磁盘组

可以使用ocrconfig -restore命令来恢复OCR

主要步骤为:

  1. 停止OCR crsctl stop crs

  2. 以exclusive模式开启crs crsctl start crs -excl -nocrs

  3. 使用备份还原OCR ocrconfig -restore file_name

  4. 检查ocr 是否正常 ocrcheck

  5. 退出exclusive模式 crsctl stop crs -f

  6. 修复其他节点的OCR信息 ocrconfig -repair -replace

  7. 启动集群 rsctl start crs


1.5 诊断OCR故障

我们可以使用ocrconfig -export 和ocrconfig -impport命令来导出导入OCR内容

我们推荐使用bakcup来备份OCR而不是使用export,使用retoere来恢复OCR而不是import,原因如下:

  1. bakcup是OCR的一致性备份而export不是

  2. backup可以在线备份,使用export你必须关闭crs来获取一致性的OCR内容

  3. 你可以使用OCRDUMP命令来查看backup的内容,而你不可以看export的内容

  4. 你可以使用ocrconfig -showbackup来查看备份列表,而你必须认为的记录export备份的情况


2.管理OLR

OLR的位置grid_home/cdata/host_name.olr

2.1 检查OLR信息

需要使用root用户

#ocrcheck -local

Alt text

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