--- Oracle® Clusterware Clusterware Administration and Deployment Guide
6 Managing Oracle Cluster Registry and Voting Filescss
Oracle Clusterware 包括两个重要的组件,用于管理配置和节点成员关系:Oracle 集群注册中心(OCR) ,它还包括本地组件Oracle 本地注册中心(OLR) 和Voting Files 投票文件。node
•OCR 存储Oracle 集群和Oracle RAC 数据库配置信息数据库
•OLR 驻留在集群中的每一个节点上,管理每一个特定节点的Oracle 集群配置信息网络
•Voting Files 投票文件存储关于节点成员资格的信息。要使节点成为集群的成员,集群中的全部节点都必须可以访问每一个仲裁文件。ide
注意:工具
• Oracle Clusterware 12c 不支持使用原始或块设备。要从使用原始设备或块设备的早期 Oracle Clusterware 版本升级到 Oracle Clusterware 12c ,必须在升级以前将 OCR 和投票文件迁移到 Oracle 自动存储管理( Oracle ASM )或共享文件系统。性能
•您能够在 Oracle ASM 上存储 OCR 和投票文件,或在独立群集上存储共享文件系统。flex
在 Oracle 数据库 12c 版本 2 ( 12.2 )中,不支持直接在共享文件系统上放置 OCR 和投票磁盘文件。ui
从 Oracle Database 19c ( 19.3 )开始,对于独立的集群,取消了这个 desupport 。对于 Oracle 域服务群集,必须继续将 OCR 和投票磁盘文件放置在由 Oracle ASM 管理的磁盘组中。操作系统
Oracle 建议在安装Oracle Clusterware 期间配置多个投票文件,以提升可用性。若是选择将投票文件放入Oracle ASM 磁盘组,则若是使用normal 或high redundancy 高冗余磁盘组,Oracle ASM 将确保配置多个投票文件。若是选择将投票文件存储在共享文件系统上,则选择配置多个投票文件的选项,在这种状况下,必须根据不一样的磁盘指定三个不一样的文件系统。若有必要,能够在完成Oracle Clusterware 安装过程后动态添加或替换投票文件,而无需中止群集。
本章包括如下主题:
•管理 Oracle 群集注册表 (OCR) 和 Oracle 本地注册表 (OLR)
•管理投票文件 (Voting Files )
一 管理 Oracle 群集注册表和 Oracle 本地注册表
使用OCRCONFIG 、OCRDUMP 和OCRCHECK 管理OCR 和Oracle 本地注册表(OLR )。
OCR 包含集群中全部Oracle 资源的信息。
OLR 是一个相似于位于集群中每一个节点上的OCR 的注册表,但包含特定于每一个节点的信息。它包含有关Oracle Clusterware 的可管理性信息,包括各类服务之间的依赖关系。Oracle 高可用服务使用此信息。OLR 位于集群中每一个节点的本地存储上。其默认位置位于路径Grid-home/cdatahost-name.olr 中,其中Grid-home 是Oracle Grid Infrastructure home ,host-name 是节点的主机名。
管理OCR 在如下主题中进行了说明:
•将Oracle 群集注册表迁移到Oracle 自动存储管理
•添加/ 替换/ 修复/ 删除Oracle 群集注册表位置
•备份Oracle 群集注册表
•恢复Oracle 群集注册表
•诊断Oracle 群集注册表问题
•使用导出和导入命令管理Oracle 群集注册表
•Oracle 本地注册表
•升级和降级Oracle 群集注册表配置
相关主题
•关于 OCRCONFIG
使用 ocrconfig 命令管理 OCR 。使用此实用程序,您能够导入、导出、添加、删除、还原、覆盖、备份、修复、替换、移动、升级或降级 OCR 。
• Oracle 群集注册表故障排除
1.1 将 Oracle 群集注册表 (OCR) 迁移到 Oracle 自动存储管理 (ASM)
因为Oracle Clusterware 存储位于Oracle ASM 磁盘组中,您可使用Oracle Enterprise Manager 管理数据库和Clusterware 存储。
为了提升Oracle Clusterware 存储的可管理性,默认状况下,在Oracle 12c 数据库中OCR 配置到Oracle ASM 。可是,若是从之前版本的Oracle Clusterware 升级,则能够将OCR 迁移到Oracle ASM 上,并利用在管理Oracle Clusterware 存储方面的改进。
注:
若是从 Oracle Clusterware 的早期版本升级到 Oracle Clusterware 12c ,而且要将 OCR 存储在 Oracle ASM 磁盘组中,则必须将“ ASM 兼容性”属性设置为 11.2.0.2 或更高版本。
要使用 OCRCONFIG 将 OCR 迁移到 Oracle ASM ,请执行如下操做:
$ crsctl query crs activeversion
使用Oracle ASM 配置助手(ASMCA )在群集中的全部节点上配置和启动Oracle ASM 。
注:
•若是 OCR 存储在具备外部冗余的 Oracle ASM 磁盘组中,那么 Oracle 建议您将另外一个 OCR 位置添加到另外一个磁盘组中,以免在磁盘组中的某个磁盘出现故障时丢失 OCR 。
Oracle 不支持在不一样的存储类型上同时存储 OCR ,例如在 Oracle ASM 和共享文件系统上同时存储 OCR ,迁移期间除外。
•若是 Oracle ASM 实例在任何节点上失败,则 OCR 在该特定节点上不可用。
若是受 Oracle ASM 实例故障影响的节点上运行的 CRSD 进程是 OCR 编写器,则大多数 OCR 位置存储在 Oracle ASM 中,而且在 Oracle ASM 实例在此节点上关闭期间尝试对 OCR 进行 I/O 操做,则 CRSD 将中止并变得不可操做。群集管理如今受此特定节点的影响。
在任何状况下,一个节点上的一个 Oracle ASM 实例的故障都不会影响整个集群。
•确保您建立的 Oracle ASM 磁盘组已装载到群集中的全部节点上。
若是添加多个OCR 位置,则能够屡次运行此命令。最多能够有五个OCR 位置。可是,每次连续运行都必须指向不一样的磁盘组。
root :
对每一个配置的OCR 运行此命令。
下面的示例演示如何使用OCRCONFIG 将两个ocr 迁移到Oracle ASM 。
注:
• OCR 继承磁盘组的冗余。若是您但愿 OCR 具备高冗余,则必须在建立磁盘组时将其配置为具备高冗余。
• Oracle 建议您将 Oracle ASM 的 SPFILE 放在这个新建立的 OCR 位置。
将 Oracle 群集注册表从 Oracle ASM 迁移到其余类型的存储
要将OCR 从Oracle ASM 迁移到其余存储类型,请执行如下操做:
$ crsctl query crs activeversion
注:
至少建立两个主存储位置的镜像,以消除 OCR 的单点故障。 OCR 最多支持五个位置。
确保在挂载分区上至少有500 MB 的空间。
确保您建立的文件在集群中的全部节点上都是可见的。
若是添加多个OCR 位置,能够屡次运行此命令。此命令的每次连续运行都必须指向不一样的文件位置。
要将OCR 备份位置迁移到文件系统,能够做为root 用户运行如下命令:
若是配置了多个OCR 位置,则能够屡次运行此命令。
下面的示例演示如何使用OCRCONFIG 将OCR 从Oracle ASM 迁移到NAS 。
对于未存储在Oracle ASM 上的OCR ,Oracle 建议您在不一样的设备上镜像OCR 。
1.2 添加、替换、修复和删除 Oracle 群集注册表位置
使用OCRCONFIG 管理OCR 位置。
Oracle Clusterware 的Oracle 安装过程为您提供了自动镜像OCR 的选项。您能够手动将镜像的ocr 放在共享网络文件系统(NFS )或经Oracle 认证的任何群集文件系统上。或者,您能够将OCR 放在Oracle ASM 上,并容许它根据您选择的冗余选项自动建立镜像。
若是您:
•升级到Oracle Clusterware 12c ,但在升级过程当中没有选择镜像OCR
•在Oracle Clusterware 安装期间仅建立了一个OCR 位置Oracle 建议您配置:
•若是OCR 配置在非镜像或非冗余存储上,则至少有三个OCR 位置。若是底层存储不是RAID ,Oracle 强烈建议您镜像OCR 。镜像能够帮助防止OCR 成为单一故障点。
•若是在Oracle ASM 磁盘组上配置了OCR ,则至少有两个OCR 位置。您应该在两个独立的磁盘组中配置OCR 。一般这是工做区和恢复区。
•若是OCR 配置在镜像硬件或第三方镜像卷上,则至少有两个OCR 位置。
注:
•若是原始 OCR 位置不存在,则在运行 ocrconfig-add 或 ocrconfig-replace 命令以前,必须使用适当的权限建立一个空的( 0 字节) OCR 位置。
•确保您在 OCR 配置中指定的 OCR 设备存在,而且这些 OCR 设备有效。
•确保指定的 Oracle ASM 磁盘组存在并已装载。
•新的 OCR 文件、设备或磁盘组必须可从群集中的全部活动节点访问。
除了镜像OCR 位置外,管理OCR 位置还包括:
•添加Oracle 群集注册表位置
•删除Oracle 群集注册表位置
•替换Oracle 群集注册表位置
•修复本地节点上的Oracle 群集注册表配置
•重写Oracle 群集注册表数据丢失保护机制
注:
本节中的操做会影响整个集群中的 OCR :这些操做会更改 Linux 和 UNIX 系统上 OCR.loc 文件中的 OCR 配置信息以及 Windows 系统上的注册表项。
可是, ocrconfig 命令没法修改已关闭节点或未运行 Oracle Clusterware 的节点的 OCR 配置信息。
1.2.1 添加 Oracle 群集注册表位置
使用本节中的过程添加OCR 位置。Oracle Clusterware 最多能够管理五个冗余的OCR 位置。
注:
若是 OCR 位于群集文件系统文件或网络文件系统上,请在执行本节中的过程以前建立一个空的( 0 字节) OCR 位置文件。
做为root 用户,运行如下命令将OCR 位置添加到Oracle ASM 或其余存储设备:
注:
在 Linux 和 UNIX 系统上,必须是 root 才能运行 ocrconfig 命令。在 Windows 系统上,用户必须是管理员组的成员。
1.2.2 删除 Oracle 群集注册表位置
若要删除OCR 位置或失败的OCR 位置,必须至少有一个其余OCR 处于联机状态。您能够删除OCR 位置以减小与OCR 相关的开销,或者中止镜像OCR ,由于您已将OCR 移动到冗余存储(如RAID )。
以root 用户身份执行如下过程以从Oracle Clusterware 环境中删除OCR 位置:
注意:
除非联机至少有一个其余活动的 OCR 位置,不然不要执行此 OCR 删除过程
file_name 变量能够是设备名,也能够是文件名。该命令更新运行Oracle 集群的全部节点上的OCR 配置。
注:
没法删除惟一配置的 Oracle ASM OCR 位置,该位置位于与 Oracle ASM OCR 备份位置不一样的 Oracle ASM 磁盘组中。
1.2.3 替换 Oracle 群集注册表位置
若是必须更改现有的OCR 位置,或将失败的OCR 位置更改成工做位置,则若是全部剩余的OCR 位置保持联机,则可使用如下过程。ocrconfig-replace 命令要求至少配置两个OCR 位置。
要更改Oracle 群集注册表位置,请执行如下操做:
完成如下步骤:
$ ocrcheck
OCRCHECK 显示全部已注册的OCR 位置以及它们是否可用(联机)。若是OCR 位置忽然变得不可用,那么Oracle Clusterware 可能须要很短的时间来显示状态的更改。
注:
要替换的 OCR 位置能够是联机或脱机。
$ crsctl check crs
若是联机配置的OCR 位置少于两个,则前面的命令将失败。
若是只配置了一个OCR 位置并联机,则必须首先添加新位置,而后删除失败的位置,以下所示:
注:
若是您的群集配置在 OCR 所在的节点中止时发生更改,而 Oracle Clusterware 堆栈正在其余节点上运行,则 OCR 会检测配置更改,并经过更改 OCR.loc 文件的内容自行更正配置。
1.2.4 修复本地节点上的 Oracle 群集注册表配置
若是群集配置在该节点中止时发生更改,而且该节点是群集中惟一的成员,则可能须要修复OCR 。
修复OCR 涉及添加、删除或替换OCR 位置。例如,若是做为当前Oracle RAC 群集一部分的任何节点关闭,则必须更新已中止节点上的OCR 配置,以便该节点在从新启动后从新加入群集。在从新启动的节点上已root 用户使用如下命令,在该节点上,可使用destination_file 或+ASM_disk_group 来指示当前和目标OCR 位置:
注:
•没法修复运行 Oracle 群集就绪服务守护程序的节点上的 OCR 配置。
•使用 ocrconfig-repair 修复已中止节点上的 OCR 时,必须提供与其余节点上的 OCR 文件名相同的 OCR 文件名(应区分大小写)。
•若是运行 ocrconfig-add |-repair |-replace 命令,则必须能够访问要添加的设备、文件或 Oracle ASM 磁盘组。这意味着设备必须存在。必须建立空的( 0 字节) OCR 位置,或者必须存在并装载 Oracle ASM 磁盘组。
1.2.5 重写 Oracle 群集注册表数据丢失保护机制
OCR 有一种防止意外覆盖致使数据丢失的机制。若是配置了镜像OCR ,而且Oracle Clusterware 没法访问镜像OCR 位置,而且也没法验证可用OCR 位置是否包含最新配置,则Oracle Clusterware 将阻止对可用OCR 位置进行进一步修改。此外,该过程经过禁止Oracle Clusterware 在只有一个OCR 可用的节点上启动来防止覆盖。在这种状况下,Oracle 数据库在Oracle 企业管理器、Oracle Clusterware 警报日志文件或二者中显示警报消息。若是此问题仅存在于一个节点,则可使用其余节点启动群集数据库。
可是,若是没法启动环境中的任何群集节点,而且既不能修复OCR ,也不能恢复对全部OCR 位置的访问,则能够重写保护机制。如下列表中描述的过程使您可以使用可用的OCR 位置启动群集。可是,重写保护机制可能会致使丢失在建立上一个已知良好状态时不可用的数据。
注意:
使用如下过程重写 OCR 可能会致使从上次对当前可访问的 OCR 进行已知良好的 OCR 更新到执行重写之间的 OCR 更新丢失。换句话说,若是用于执行覆盖的 OCR 位置不包含群集环境的最新配置更新,则运行 ocrconfig-overwrite 命令可能会致使数据丢失。
若是节点没法启动而且警报日志包含CLSD-1009 和CLSD-1011 消息,请执行如下过程覆盖OCR 。
将节点的OCR 配置(Linux 和UNIX 系统上的OCR.loc 以及Windows 系统上的注册表)与运行Oracle Clusterware 的其余节点进行比较。
•若是配置不匹配,请运行ocrconfig-repair 。
•若是配置匹配,请确保节点能够经过在Linux 和UNIX 系统上运行ls 命令来访问全部配置的OCR 。在Windows 上,若是OCR 位置是一个文件,请使用dir 命令,并运行GuiOracleObjectManager.exe 以验证名称为的群集部分是否存在。
查看ocrdump 命令的输出并肯定它是否有您的最新更新。
1.3 备份 Oracle 群集注册表
本节介绍如何备份OCR 内容并将其用于恢复。第一种方法使用自动生成的OCR 副本,第二种方法容许您手动发出备份命令:
•自动备份 :Oracle Clusterware 每四小时自动建立一次OCR 备份。在任什么时候候,Oracle 数据库都会保留OCR 的最后三个备份副本。建立备份的CRSD 过程还为每一成天和每周以后建立并保留一个OCR 备份。不能自定义备份频率或Oracle 数据库保留的文件数。
•手动备份: 在Oracle Clusterware 堆栈所在的节点上运行ocrconfig-Manual backup 命令,以强制Oracle Clusterware 在任什么时候候执行OCR 备份,而不是等待自动备份。必须以具备管理权限的用户身份运行该命令。当您想要按需获取二进制备份(例如在更改OCR 以前)时,-manualbackup 选项特别有用。OLR 只支持手动备份。
当集群中的全部节点上的clusterware 堆栈都关闭时,ocrconfig-showbackup 命令列出的备份可能因节点而异。
注:
在节点上安装或升级 Oracle Clusterware 或将节点添加到群集后,当 root.sh 脚本完成时,它将备份 OLR 。
本节包括如下主题:
•列出备份文件
•更改备份位置
列出备份文件
运行如下命令列出备份文件:
ocrconfig -showbackup
ocrconfig -showbackup 命令显示Oracle Clusterware 建立的备份文件的备份位置、时间戳和原始节点名。默认状况下,-showbackup 选项同时显示自动备份和手动备份的信息,但您能够包括auto 或manual 标志,以便分别仅显示自动备份信息或手动备份信息。
运行如下命令检查内容并验证备份文件的完整性:
ocrdump -backupfile backup_file_name
您可使用任何备份软件将自动生成的备份文件天天至少复制一次到主OCR 所在的其余设备。
从Oracle Clusterware 12c release 2 (12.2 )起,生成备份的默认位置是Oracle ASM 磁盘组,能够在Oracle ASM 磁盘组之间进行更改,但不能更改成本地文件系统。Oracle 建议将使用OCRCONFIG 实用程序建立的备份文件做为使用标准操做系统或第三方工具的操做系统备份的一部分。
更改备份位置
运行如下命令以更改OCR 建立备份的位置:
前面命令中的file_name 变量能够是全部节点均可以访问的完整目录路径名,也能够是装载在全部节点上的Oracle ASM 磁盘组。在将OCR 备份位置更改成Oracle ASM 磁盘组以前,必须将OCR 迁移到Oracle ASM 。只有在单独的磁盘组中至少有一个Oracle ASM OCR 位置时,才能将OCR 备份位置更改成Oracle ASM 磁盘组。
例如,要在目录中指定OCR 备份位置,请执行如下操做:
要在Oracle ASM 磁盘组中指定OCR 备份位置,请执行如下操做:
注:
在 Linux 和 UNIX 系统上,您必须是 root 用户才能运行大多数但不是全部 ocrconfig 命令选项。在 Windows 系统上,用户必须是管理员组的成员。
1.4 还原 Oracle 群集注册表
为您的平台恢复OCR 的过程。
若是资源失败,则在尝试还原OCR 以前,请从新启动该资源。做为肯定OCR 失败的验证,运行ocrcheck ,若是命令返回失败消息,则主OCR 和OCR 镜像都失败。
注意:
•您不能使用-import 选项从OCR 备份文件恢复配置,这在“使用导出和导入命令管理Oracle 集群注册表”中有解释。相反,您必须使用- restore 选项,以下面的部分所述。
•若是您将OCR 存储在ASM 磁盘组中,而磁盘组不可用,那么您必须恢复并挂载ASM 磁盘组。
•在Linux 或UNIX 系统上恢复Oracle 集群注册表
•在Windows 系统上恢复Oracle 集群注册表
•在Oracle 重启环境中恢复Oracle 集群注册表
在 Linux 或 UNIX 系统上恢复 Oracle 集群注册表
使用此过程可在Linux 或UNIX 系统上还原OCR 。
若是您将OCR 存储在Oracle ASM 磁盘组上,而该磁盘组已损坏,则必须使用Oracle ASM 实用程序恢复Oracle ASM 磁盘组,而后在恢复OCR 以前从新挂载磁盘组。经过运行ocrconfig -restore 命令来恢复OCR ,以下面的过程当中所指示的那样。
注意 :
若是原始 OCR 位置不存在,那么在运行 ocrconfig -restore 命令以前,必须建立一个与原始 OCR 位置同名的空 (0 字节 )OCR 位置。
使用如下过程在 Linux 或 UNIX 系统上还原 OCR :
$ olsnodes
若是OCR 位于Oracle ASM 磁盘组中,则中止Oracle Clusterware 守护进程:
若是前面的命令返回因为OCR 损坏而致使的任何错误,则经过在全部节点上以root 用户身份运行如下命令来强制中止Oracle Clusterware :
注:
若是 OCR 备份文件位于 Oracle ASM 磁盘组中,请确保该磁盘组存在并已挂载
完成此步骤后,继续执行步骤11 。
若是不将OCR 还原到群集文件系统或网络文件系统,请继续下一步。
nocrs 选项确保CRSD 进程和OCR 不会从Oracle 集群栈的其他部分开始。
忽略显示的任何错误。
$ crsctl status resource ora.crsd -init
若是CRSD 正在运行,那么经过运行如下命令做为root 来中止它:
警告 :
不要在任何其余命令中使用 -init 标志,除非个人 Oracle 支持指示这样作。
若是您不能在本地挂载磁盘组,那么运行如下SQL*Plus 命令
SQL> drop diskgroup disk_group_name force including contents;
注意 :
若是原始的 OCR 位置不存在,那么您必须在运行 ocrconfig - restore 命令以前建立一个空的 (0 字节 )OCR 位置。
•确保您在 OCR 配置中指定的 OCR 设备存在,而且这些 OCR 设备是有效的。
•若是您在 Oracle ASM 磁盘组中配置了 OCR ,那么请确保存在并挂载 Oracle ASM 磁盘组。
•若是 OCR 备份文件位于 Oracle ASM 磁盘组中,则确保磁盘组存在并已挂载。
在集群中没有运行ocrconfig -restore 命令的全部节点上以root 用户身份运行该命令。例如,若是您在一个四节点集群的节点1 上运行了ocrconfig -restore 命令,那么您必须在节点2 、3 和4 上运行ocrconfig -repair -replace 命令。
$ cluvfy comp ocr -n all -verbose
在 Windows 系统上恢复 Oracle 集群注册表
使用此过程在Windows 系统上恢复OCR 。
若是您将OCR 存储在Oracle ASM 磁盘组上,而该磁盘组已损坏,则必须使用Oracle ASM 实用程序恢复Oracle ASM 磁盘组,而后在恢复OCR 以前从新挂载磁盘组。经过运行ocrconfig -restore 命令恢复OCR 。
注意 :
若是原始 OCR 位置不存在,那么在运行 ocrconfig -restore 命令以前,必须建立一个与原始 OCR 位置同名的空 (0 字节 )OCR 位置。
使用如下程序在Windows 系统上恢复OCR:
C:\>olsnodes
C:\>crsctl stop crs
若是前面的命令返回任何因为OCR 损坏而致使的错误,则经过在全部节点上做为Administrators 组的成员运行如下命令来中止Oracle Clusterware:
C:\>crsctl stop crs –f
C:\>crsctl start crs -excl -nocrs
nocrs 选项确保CRSD 进程和OCR 不会从Oracle Clusterware 堆栈的其他部分开始。
忽略显示的任何错误。
C:\>ocrconfig -restore file_name
确保在OCR 配置中指定的OCR 设备存在,而且这些OCR 设备有效。
注:
•确保您在OCR 配置中指定的OCR 设备存在,而且这些OCR 设备有效。
•确保指定的Oracle ASM 磁盘组存在并已装载。
C:\>ocrcheck
C:\>crsctl stop crs –f
C:\>crsctl start crs
C:\>cluvfy comp ocr -n all –verbose
在 Oracle 从新启动环境中还原 Oracle 群集注册表
使用如下过程能够在Oracle 从新启动环境中还原OCR 。
注:
•OCR 用于向后兼容。
•一旦建立了OCR 位置,它就不会在Oracle 重启环境中获得更新。
•若是已备份Oracle Restart home ,而且出现故障,则恢复Oracle Restart home 将恢复OCR 。
经过以root 用户身份运行如下命令来还原OCR :
注:
确保在 OCR 配置中指定的 OCR 设备存在,而且这些 OCR 设备有效
运行ocrcheck 命令以验证OCR 的完整性:
$ crsctl start has
1.5 诊断 Oracle 群集注册表问题
使用OCRDUMP 和OCRCHECK 实用程序诊断OCR 问题。
相关主题
•OCRDUMP 实用程序语法和选项
•使用OCRCHECK 实用程序
OCRCHECK 实用程序显示OCR 块格式的版本、可用和使用的总空间、OCRID 以及您配置的OCR 位置。
1.6 使用导出和导入命令管理 Oracle 群集注册表
除了使用自动建立的OCR 备份文件外,还应在进行重大配置更改以前和以后导出OCR 内容,例如从环境中添加或删除节点、修改Oracle Clusterware 资源以及升级、降级或建立数据库。经过使用ocrconfig-export 命令执行此操做,该命令将OCR 内容导出为文件格式。
注意:
请注意如下恢复OCR 的限制:
•ocrconfig-restore 生成的文件格式与ocrconfig-export 生成的文件格式不兼容。ocrconfig-export 和ocrconfig-import 命令是兼容的。ocrconfig-manualbackup 和ocrconfig-restore 命令是兼容的。这两种文件格式不兼容,不能互换使用。
•导出OCR 时,Oracle 建议在名称字符串中包含“OCR” 、群集名称和时间戳。例如:
ocr_mycluster1_20090521_2130_export
注:
您所作的大多数配置更改不只会更改 OCR 内容,配置更改还会致使文件和数据库对象的建立。
在恢复 OCR 时,这些更改中的一些一般不会恢复。若是某些配置更改应失败,请不要将 OCR 还原为还原到之前配置的更正。这可能会致使 OCR 位置的内容与系统其余部分的状态不匹配。
在 Linux 或 UNIX 系统上导入 Oracle 群集注册表内容
使用如下过程能够在Linux 或UNIX 系统上导入OCR 。
注意 :
此过程假设集群中的全部节点都默认安装了 Oracle 集群软件,其中启用了 Oracle 集群软件自动启动。
$ olsnodes
若是前面的命令返回任何因为OCR 损坏而致使的错误,则经过在全部节点上以根用户身份运行如下命令来中止Oracle Clusterware:
忽略显示的任何错误。
检查CRSD 是否正在运行。Root 用户中止它运行如下命令:
若是要将OCR 导入集群或网络文件系统,请跳到步骤7 。
注意 :
若是原始的 OCR 位置不存在,那么您必须在运行 ocrconfig -import 命令以前建立一个空的 (0 字节 )OCR 位置。
•确保您在 OCR 配置中指定的 OCR 设备存在,而且这些 OCR 设备是有效的。
•若是您在 Oracle ASM 磁盘组中配置了 OCR ,那么请确保存在并挂载 Oracle ASM 磁盘组。
$ cluvfy comp ocr -n all –verbose
在 Windows 系统上导入 Oracle 集群注册表内容
使用此过程在Windows 系统上导入OCR 。
C: \ > olsnodes
C:\>crsctl stop crs
若是前面的命令返回任何因为OCR 损坏而致使的错误,则经过在全部节点上做为Administrators 组的成员运行如下命令来中止Oracle Clusterware:
C:\>crsctl stop crs -f
C:\>crsctl 启动crs -excl
忽略显示的任何错误。
检查CRSD 是否正在运行。若是是,请做为Administrators 组的成员运行如下命令来中止它:
C:\>crsctl start crs -excl
C:\>ocrconfig -import file_name
确保您在OCR 配置中指定的OCR 设备存在,而且这些OCR 设备是有效的。
C: \ > ocrcheck
C:\>crsctl stop crs –f
C:\>crsctl start crs
C:\>cluvfy comp ocr -n all –verbose
1.7 Oracle 本地注册表
在Oracle Clusterware 12c 中,集群中的每一个节点都有一个用于节点特定资源的本地注册表,称为Oracle 本地注册表(OLR ),在Oracle Clusterware 安装OCR 时安装并配置该注册表。每一个节点上的多个进程对它们所驻留的节点特定的OLR 具备同时读写访问权,而无论Oracle Clusterware 是在运行仍是彻底正常工做。
默认状况下,OLR 位于每一个节点上的Grid_home/cdata/host_name.OLR 。使用OCRCHECK 、OCRDUMP 和OCRCONFIG 实用程序做为根目录管理OLR 使用-local 选项。
•您可使用OCRCHECK 实用程序检查本地节点上OLR 的状态,以下所示:
•您可使用OCRDUMP 实用程序将本地节点上OLR 的内容显示到启动程序的文本终端,以下所示:
•您可使用OCRCONFIG 实用程序在本地节点上的OLR 上执行管理任务。
注:
*Oracle 建议您使用 -manualbackup 和 -restore 命令,而不是 -import 和 -export 命令。
olr_myhost1_20090603_0130_export
注意 :
Oracle 集群在安装或升级后备份 OLR ,默认状况下,此后按期备份 OLR 。在初始备份以后的任什么时候候,您均可以手动备份 OLR 。
Oracle 还建议,当您将 OCR 从 Oracle ASM 迁移到其余存储时,或者当您将 OCR 从其余存储迁移到 Oracle ASM 时,建立一个新的备份。
OLR 的默认备份位置位于 Grid_home/cdata/host_name 路径中。
ocrdump -local -backupfile olr_backup_file_name
ocrconfig -local -backuploc new_olr_backup_path
$ cluvfy comp olr
1.8 升级和降级 Oracle 群集注册表配置
升级Oracle Clusterware 时,它会自动运行ocrconfig-upgrade 命令。要降级,请遵循每一个组件的降级说明,并使用ocrconfig-degrade 命令降级OCR 。若是要升级OCR ,则可使用OCRCHECK 实用程序验证OCR 的完整性。
二:管理投票文件 (Voting Files)
本节包括如下主题,用于管理群集中的投票文件:
•在Oracle ASM 上存储投票文件
•备份投票文件
•恢复投票文件
•添加/ 删除或迁移投票文件
警告 :
用于备份和恢复之前版本的 Oracle Clusterware 中的投票文件的 dd 命令在 Oracle Clusterware 12c 中不受支持。恢复使用 dd 或 cp 命令复制的投票文件能够防止 Oracle Clusterware 12c 堆栈出现。使用本章中描述的备份和恢复过程来确保正确的投票文件功能。
注意 :
•投票文件管理须要一个有效的和工做的 OCR 。在添加、删除、替换或恢复投票文件以前,以 root 用户身份运行这个命令。若是 OCR 不可用或已损坏,则必须按照“恢复 Oracle 集群注册表”中的描述恢复 OCR 。
若是你从之前的 Oracle Clusterware 升级到 Oracle Clusterware 12c ,而且你想在一个 ASM 磁盘组中存储投票文件,那么你必须将 ASM 兼容性属性设置为 12.1.0.0 。
2.1 在 Oracle ASM 上存储投票文件
若是选择将投票文件存储在Oracle ASM 中,则Oracle ASM 会将群集的全部投票文件存储在您选择的磁盘组中。
Oracle ASM 管理投票文件的方式与其存储的其余文件不一样。不能使用存储在Oracle ASM 中的投票文件和不存储在同一群集的Oracle ASM 中的投票文件。
在Oracle ASM 上配置投票文件后,只能使用crsctl replace votedisk 命令更改投票文件的配置。即便没有有效的投票文件,状况也是如此。尽管crsctl query css votedisk 报告使用中的零票磁盘,Oracle Clusterware 仍然记得Oracle ASM 正在使用而且须要replace 动词这一事实。只有在使用replace 谓词将投票文件移回非Oracle ASM 存储以后,这些谓词才能再次使用add css votedisk 和delete css votedisk 。
能够存储在特定Oracle ASM 磁盘组中的投票文件数取决于磁盘组的冗余度。
默认状况下,Oracle ASM 会将每一个投票文件放在磁盘组中其本身的故障组中。故障组是磁盘组中磁盘的子集。故障组定义共享组件的磁盘,这样,若是其中一个失败,则共享组件的其余磁盘也可能失败。能够将一组共享同一SCSI 控制器的SCSI 磁盘定义为故障组。故障组用于肯定用于存储冗余数据的Oracle ASM 磁盘。例如,若是为文件指定了双向镜像,则文件扩展数据块的冗余副本必须存储在单独的故障组中。
为Oracle ASM 磁盘组选择的冗余级别决定了Oracle ASM 如何镜像磁盘组中的文件,并决定了所需的磁盘数量和磁盘空间量。若是投票文件位于磁盘组中,则包含Oracle Clusterware 文件(OCR 和投票文件)的磁盘组的最小故障组数高于其余磁盘组,由于投票文件存储在仲裁故障组中。
仲裁失败组是一种特殊类型的失败组,用于存储Oracle Clusterware 投票文件。仲裁失败组用于确保指定失败组的仲裁可用。当Oracle ASM 装载包含Oracle Clusterware 文件的磁盘组时,仲裁故障组用于肯定若是丢失一个或多个故障组,是否能够装载磁盘组。仲裁失败组中的磁盘不包含用户数据,所以在肯定存储用户数据的冗余要求时,不考虑仲裁失败组。
Oracle ASM flex disk group 是支持Oracle ASM 文件组和配额组的磁盘组类型。通常来讲,除了在磁盘组级别以外,flex 磁盘组还容许用户在数据库的粒度上管理存储。
冗余级别包括:
•外部冗余 :外部冗余磁盘组至少须要一个磁盘设备。外部冗余磁盘组中的有效磁盘空间是其全部设备中磁盘空间的总和。
因为Oracle ASM 不镜像外部冗余磁盘组中的数据,所以Oracle 建议您对存储设备(如RAID )或提供本身的数据保护机制的其余相似设备使用外部冗余。
•正常冗余 :正常冗余磁盘组至少须要两个磁盘设备(或两个故障组)。正常冗余磁盘组中的有效磁盘空间是其全部设备中磁盘空间总和的一半。
对于Oracle Clusterware 文件,正常冗余磁盘组至少须要三个磁盘设备(故障组使用三个磁盘中的两个,仲裁故障组使用全部三个磁盘),并提供三个投票文件和一个OCR 和OCR 镜像。当使用普通冗余磁盘组时,群集能够在丢失一个故障组的状况下生存。
•高冗余 :在高冗余磁盘组中,Oracle ASM 使用三向镜像来提升性能并提供最高级别的可靠性。高冗余磁盘组至少须要三个磁盘设备(或三个故障组)。高冗余磁盘组中的有效磁盘空间是其全部设备中磁盘空间总和的三分之一。
对于Oracle Clusterware 文件,高冗余磁盘组至少须要五个磁盘设备(故障组使用五个磁盘中的三个,仲裁故障组使用全部五个磁盘),并提供五个投票文件、一个OCR 和两个OCR 镜像。因为具备高冗余度,集群能够在两个故障组丢失的状况下生存。
使用crsctl replace votedisk 命令,能够将给定的投票文件集从一个Oracle ASM 磁盘组移动到另外一个磁盘组,或移动到通过认证的文件系统上。若是将投票文件从一个Oracle ASM 磁盘组移动到另外一个,则能够经过将投票文件放置在与前一个磁盘组具备不一样冗余级别的磁盘组中来更改投票文件的数量。
注意 :
•不能直接影响一个磁盘组中投票文件的数量。
•不能使用 crsctl 添加 | 删除 votedisk 命令对存储在 ASM 磁盘组中的投票文件,由于 ASM 根据磁盘组的冗余级别管理投票文件的数量。
•若是投票文件存储在 ASM 磁盘组中,则没法将投票文件添加到集群文件系统。 Oracle 不支持在 ASM 中同时在同一集群的集群文件系统上直接设置投票文件。
2.2 备份投票文件
Oracle Clusterware 会在任何配置更改过程当中自动备份OCR 中的投票文件数据,并自动将数据还原到您添加的任何投票文件中。
可是,若是全部投票文件都已损坏,则能够按照“还原投票文件”中的说明还原它们。
相关主题
•恢复投票文件
2.3 还原投票文件
若是全部投票文件都已损坏,则能够还原它们,以下所示:
只有当OCR 也已损坏或不可用时(例如OCR 位于Oracle ASM 上且磁盘组再也不可用),才须要执行此步骤。
若是全部投票文件都已损坏,则此列表可能为空,或者可能有标记为状态3 或关闭的条目。
•若是投票文件存储在Oracle ASM 中,则运行如下命令将投票文件迁移到指定的Oracle ASM 磁盘组:
crsctl replace votedisk +asm_disk_group
将投票文件迁移到的Oracle ASM 磁盘组必须存在于Oracle ASM 中。不管投票文件存储在Oracle ASM 或其余存储设备中,均可以使用此命令。
•若是您没有在Oracle ASM 中存储投票文件,则使用在上一步中得到的文件通用标识符(FUID )运行如下命令:
$ crsctl delete css votedisk FUID
添加投票文件,以下所示:
$ crsctl add css votedisk path_to_voting_disk
5.root 用户中止crs
注:
若是 Oracle Clusterware 堆栈以独占模式运行,则使用 -f 选项强制关闭堆栈。
6.root 用户启动crs
2.4 添加、删除或迁移投票文件
安装Oracle Clusterware 后,能够添加、删除和迁移投票文件。请注意,用于执行此操做的命令不一样,具体取决于您的投票文件是位于Oracle ASM 中,仍是位于其余存储选项中。
修改存储在Oracle ASM 中的投票文件
•要显示投票文件FUID 和每一个当前投票文件的文件路径,请运行
crsctl query css votedisk 命令显示相似于如下内容的输出:
此命令返回磁盘序列号、磁盘状态、FUID 、磁盘路径以及存储磁盘的Oracle ASM 磁盘组的名称。
•要将投票文件从Oracle ASM 迁移到备用存储设备,请使用如下命令指定要用其替换Oracle ASM 磁盘组的非Oracle ASM 存储设备的路径:
$ crsctl replace votedisk path_to_voting_disk
您能够在群集中的任何节点上运行此命令。
•要将未存储在Oracle ASM 中的全部投票文件替换为Oracle ASM 磁盘组中由Oracle ASM 管理的投票文件,请运行如下命令:
$ crsctl replace votedisk +asm_disk_group
修改未存储在Oracle ASM 上的投票文件
•要显示投票文件 FUID 和每一个当前投票文件的文件路径,请运行如下命令:
该命令返回磁盘序列号、磁盘状态、FUID 和磁盘路径,没有ASM 磁盘组的名称。
•要添加一个或多个投票文件,运行如下命令,将path_to_voting_disk 变量替换为一个或多个以空格分隔的完整投票文件路径:
$ crsctl add css votedisk path_to_voting_disk [...]
•若要将投票文件A 替换为投票文件B ,必须先添加投票文件B ,而后删除投票文件A 。若要添加新磁盘并删除现有磁盘,请运行如下命令,将path_To_voting_disk B 变量替换为投票文件B 的彻底限定路径名:
$ crsctl add css votedisk path_to_voting_diskB -purge
-purge 选项删除现有投票文件。
•要删除投票文件,请运行如下命令,指定要删除的投票文件的一个或多个空格分隔的投票文件fuid 或逗号分隔的目录路径:
$ crsctl delete css votedisk {FUID | path_to_voting_disk[...]}
注:
若是群集已关闭,而且因为丢失投票文件而没法从新启动,则必须以根用户身份运行如下命令以独占模式启动 CSS :
以独占模式启动 CSS 后,能够替换投票文件,以下所示:
将投票文件迁移到 Oracle ASM
要将投票文件迁移到Oracle ASM ,请在如下命令中指定Oracle ASM 磁盘组名称:
$ crsctl replace votedisk +asm_disk_group
您能够在群集中的任何节点上运行此命令。
验证投票文件位置
修改投票文件后,验证投票文件位置,以下所示:
$ crsctl query css votedisk