[Oracle集群软件全解析] Oracle OCR/OLR管理

2020-08-18 23:59:55 浏览数 (1)

上节介绍运行集群环境所需的进程,这节总体上说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

主要步骤为:

  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

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

0 人点赞