成功执行接管操作后,备用群集 cluster-newyork 将成为保护组的主群集,并且服务将在备用群集上处于联机状态。恢复原来的主群集后,可使用名为故障恢复的过程使服务重新在原来的主群集上联机。
Sun Cluster Geographic Edition 软件支持以下两种故障恢复:
故障恢复切换。故障恢复切换期间,在主群集数据与备用群集 cluster-newyork 上的数据重新同步后,应用程序再次在原来的主群集 cluster-paris 上联机。
有关哪个群集是 cluster-paris 以及哪个群集是 cluster-newyork 的提示信息,请参见《Sun Cluster Geographic Edition 系统管理指南》中的“Sun Cluster Geographic Edition 群集配置示例”。
故障恢复接管。在故障恢复接管期间,应用程序再次在原来的主群集上联机,并使用主群集上的当前数据。在备用群集上进行的任何更新都将被放弃。
如果希望在原来的主群集再次启动后将新的主群集 cluster-newyork 保留为主群集,而将原来的主群集 cluster-paris 保留为备用群集,可以重新同步并重新验证保护组配置。可以在不执行切换或接管操作的情况下重新同步并重新验证保护组。
本节说明了如何执行下列过程:
可通过执行以下过程用当前主群集 cluster-newyork 上的数据重新同步和重新验证原来的主群集 cluster-paris 上的数据。
重新同步和重新验证保护组的配置之前,cluster-newyork 上已执行了接管操作。这些群集现在具有以下角色:
cluster-newyork 上的保护组分配有 primary 角色。
cluster-paris 上保护组的角色为 primary 或 secondary,具体取决于在从 cluster-newyork 执行接管操作期间是否可以访问 cluster-paris。
如果原来的主群集 cluster-paris 已关闭,请确认是否已引导该群集以及是否已在该群集上启用 Sun Cluster Geographic Edition 基础结构。
有关引导群集的更多信息,请参见《Sun Cluster Geographic Edition 系统管理指南》中的“引导群集”。
将原来的主群集 cluster-paris 与当前主群集 cluster-newyork 重新同步。
群集 cluster-paris 将不再使用它自己的配置并在本地复制 cluster-newyork 配置。重新同步伙伴关系和保护组配置。
在 cluster-paris 上,取消激活本地群集上的保护组。
phys-paris-1# geopg stop -e local protectiongroupname |
指定命令的范围。
指定 local 范围后,该命令将仅在本地群集上有效。
属性值(例如 global 和 local)不区分大小写。
指定保护组的名称。
如果保护组已处于取消激活状态,则保护组中资源组的状态可能为 Error,因为应用程序资源组处于受管和脱机状态。
如果取消激活保护组,则应用程序资源组将不再处于受管状态,从而退出 Error 状态。
在 cluster-paris 上重新同步伙伴关系。
phys-paris-1# geops update partnershipname |
此步骤只需执行一次即可,即使是要重新同步多个保护组亦是如此。
有关对伙伴关系进行同步的更多信息,请参见《Sun Cluster Geographic Edition 系统管理指南》中的“重新同步伙伴关系”。
在 cluster-paris 上重新同步每个保护组。
由于 cluster-newyork 上保护组的角色为 primary,因此此步骤可确保 cluster-paris 上保护组的角色为 secondary。
phys-paris-1# geopg update protectiongroupname |
有关同步保护组的更多信息,请参见重新同步 Oracle Data Guard 保护组。
在 cluster-paris 上验证每个保护组的配置。
phys-paris-1# geopg validate protectiongroupname |
有关更多信息,请参见如何验证 Oracle Data Guard 保护组。
在 cluster-paris 上激活每个保护组。
激活保护组时,该保护组的应用程序资源组也会进入联机状态。
phys-paris-1# geopg start -e global protectiongroupname |
指定命令的范围。
通过指定 Global 范围,该命令在保护组所在的两个群集上均生效。
属性值(例如 global 和 local)不区分大小写。
指定保护组的名称。
请勿使用 -n 选项,因为数据需要从当前主群集 cluster-newyork 同步到当前备用群集 cluster-paris。
因为保护组的角色为 secondary,所以数据从当前主群集 cluster-newyork 同步到当前备用群集 cluster-paris。
有关 geopg start 命令的更多信息,请参见如何激活 Oracle Data Guard 保护组。
确认所有数据均已同步。
在使用当前主群集 cluster-newyork 上的数据重新同步原来的主群集 cluster-paris 上的数据后,可按照以下过程在原来的主群集上重新启动应用程序。
故障恢复过程仅适用于处在伙伴关系中的群集。对于每个伙伴关系而言,以下过程只需执行一次。
执行故障恢复切换之前,cluster-newyork 上已执行了接管操作。这些群集现在具有以下角色:
cluster-newyork 上的保护组分配有 primary 角色。
cluster-paris 上保护组的角色为 primary 或 secondary,具体取决于在从 cluster-newyork 群集执行接管操作期间是否可以访问 cluster-paris。
如果原始主群集 cluster-paris 发生故障,请确认是否已重新启动群集以及是否在群集上启用了 Sun Cluster Geographic Edition 基础结构。
有关重新启动群集的更多信息,请参见《Sun Cluster Geographic Edition 系统管理指南》中的“引导群集”。
将发生故障的 Oracle Data Guard 主数据库恢复为新的备用数据库。
请参阅介绍如何执行此步骤的 Oracle 文档。
确定原始主群集 cluster-paris 作为 Oracle Data Guard 配置的一部分正确运行。
oracle (phys-paris-1)$ dgmgrl sys/sysdba_password@sales-svc DGMGRL> show configuration; |
如果原始主群集 cluster-paris 正确运行,show configuration 命令会显示 SUCCESS 状态。
如果原始主群集在故障点关闭,它会标记为取消激活的主群集。如果原始主群集在故障点启动,它会标记为取消激活的辅助群集。
将原来的主群集 cluster-paris 与当前主群集 cluster-newyork 重新同步。
群集 cluster-paris 将不再使用它自己的配置并在本地复制 cluster-newyork 配置。重新同步伙伴关系和保护组配置。
在 cluster-paris 上重新同步伙伴关系。
phys-paris-1# geops update partnershipname |
对于每个伙伴关系而言,即使是要对该伙伴关系中的多个保护组执行故障恢复切换操作,也只需为该伙伴关系执行一次此步骤即可。
有关对伙伴关系进行同步的更多信息,请参见《Sun Cluster Geographic Edition 系统管理指南》中的“重新同步伙伴关系”。
确定原来的主群集 cluster-paris 上的保护组是否处于活动状态。
phys-paris-1# geoadm status |
如果原来的主群集上的保护组处于活动状态,则将其停止。
phys-paris-1# geopg stop -e local protectiongroupname |
指定命令的范围。
指定 local 范围后,该命令将仅在本地群集上有效。
属性值(例如 global 和 local)不区分大小写。
指定保护组的名称。
如果保护组已处于取消激活状态,则保护组中资源组的状态可能为 Error,因为应用程序资源组处于受管和脱机状态。
如果取消激活保护组,则应用程序资源组将不再处于受管状态,从而退出 Error 状态。
检验保护组是否已停止。
phys-paris-1# geoadm status |
在 cluster-paris 上重新同步每个保护组。
由于 cluster-newyork 群集上保护组的本地角色现在为 primary,因此此步骤可确保 cluster-paris 群集上保护组的角色变为 secondary。
phys-paris-1# geopg update protectiongroupname |
有关同步保护组的更多信息,请参见重新同步 Oracle Data Guard 保护组。
在 cluster-paris 上验证每个保护组的配置。
保护组处于 Error 状态时是无法启动的。因此,请确保保护组不处于 Error 状态。
phys-paris-1# geopg validate protectiongroupname |
有关更多信息,请参见如何验证 Oracle Data Guard 保护组。
在 cluster-paris 上激活每个保护组。
在激活保护组时,它的应用程序资源组也会进入联机状态。
phys-paris-1# geopg start -e global protectiongroupname |
指定命令的范围。
通过指定 Global 范围,该命令在保护组所在的两个群集上均生效。
属性值(例如 global 和 local)不区分大小写。
指定保护组的名称。
确认数据已完全同步。
确保两个伙伴群集上的保护组处于激活状态。
phys-paris-1# geoadm status … phys-newyork-1# geoadm status … |
对于任一群集上的每个保护组,执行从 cluster-newyork 到 cluster-paris 的切换。
phys-node-n# geopg switchover [-f] -m cluster-paris protectiongroupname |
有关更多信息,请参见如何将 Oracle Data Guard 保护组从主群集切换到备用群集。
cluster-paris 群集恢复它保护组主群集的原有角色。
确保成功执行了切换操作。
phys-node-n# geoadm status |
检验该保护组现在在 cluster-paris 上处于 primary 角色,在 cluster-newyork 上处于 secondary 角色,并且两个群集上 Data replication 和 Resource groups 属性的状态均显示为 OK。
检查每个 Oracle Data Guard 保护组的应用程序资源组和数据复制的运行时状态。
phys-node-n# clresourcegroup status -v resourcegroupname # clresource status -v ODGConfigurationName-odg-rep-rs |
请参阅要检查的 Oracle Data Guard Broker 配置所对应的 Status 和 Status Message 字段。有关这些字段的更多信息,请参见表 2–1。
有关数据复制的运行时状态的更多信息,请参见检查 Oracle Data Guard 数据复制的运行时状态。
执行本过程可在原来的主群集 cluster-paris 上重新启动应用程序,并使用该群集上的当前数据。
备用群集 cluster-newyork 充当主群集时在它上面进行的任何更新都将被放弃。
故障恢复过程仅适用于处在伙伴关系中的群集。对于每个伙伴关系而言,以下过程只需执行一次。
在有些情况下,您可以继续使用原来的主群集 cluster-paris 上的数据。但是,在 cluster-newyork 上执行接管操作后,便不能再将新主群集 cluster-newyork 中的数据复制到原来的主群集 cluster-paris。
在开始故障恢复接管过程之前,群集必须具有下列角色:
cluster-newyork 上的保护组分配有 primary 角色。
cluster-paris 上的保护组具有 primary 角色或 secondary 角色,具体取决于在执行接管操作期间是否可以访问该保护组。
如果原始主群集 cluster-paris 发生故障,请确认是否已重新启动群集以及是否在群集上启用了 Sun Cluster Geographic Edition 基础结构。
有关重新启动群集的更多信息,请参见《Sun Cluster Geographic Edition 系统管理指南》中的“引导群集”。
将新的 Oracle Data Guard 主数据库作为原始主数据库的备用数据库恢复到原始主数据库发生故障前那一刻。
请参阅介绍如何执行此步骤的 Oracle 文档。
您可能需要使用 dgmgrl 命令删除并重新创建 Oracle Data Guard Broker 配置。
确定原始主群集 cluster-paris 作为 Oracle Data Guard 配置的一部分重新以主群集身份正确运行。
oracle (phys-paris-1)$ dgmgrl sys/sysdba_password@sales-svc DGMGRL> show configuration; |
如果原始主群集 cluster-paris 正确运行,show configuration 命令会显示 SUCCESS 状态。
如果原始主群集在故障点启动,它会标记为取消激活的辅助群集。此外,原始备用群集会标记为激活的主群集。
如果原始主群集在故障点关闭,它会标记为取消激活的主群集。此外,原始备用群集会标记为激活的主群集。
原始主群集 cluster-paris 是否在故障点启动或关闭?
如果原始主群集 cluster-paris 在故障点关闭,请将原始备用群集 &seconda y_cluster; 更新至辅助群集。
在原始备用群集(即已成为新的主群集的群集)上停止保护组。
phys-newyork-1# geopg stop -e local protectiongroupname |
在原始备用群集(即已成为新的主群集的群集)上更新保护组。
phys-newyork-1# geopg update protectiongroupname |
现在,这些角色都是正确的,但两个群集均标记为取消激活。
有关同步保护组的更多信息,请参见如何重新同步 Oracle Data Guard 保护组。
在 cluster-paris 和 cluster-newyork 上,本地验证每个保护组的配置。
请确保保护组不处于 Error 状态。当保护组处于 Error 状态时,无法启动该保护组。
phys-paris-1# geopg validate protectiongroupname phys-newyork-1# geopg validate protectiongroupname |
有关更多信息,请参见如何验证 Oracle Data Guard 保护组。
从其中一个群集中的任一节点,在两个群集上以全局方式激活保护组。
# geopg start -e global protectiongroupname |
在两个群集上激活保护组后,即成功执行了故障恢复接管。
如果原始主群集 cluster-paris 在故障点启动,请确定辅助群集(即原始主群集)配置的状态。
phys-newyork-1# geoadm status |
如果 Configuration 的状态设置为 OK,请对配置执行同步操作。
对原始主群集 cluster-paris 上的每个保护组启动接管。
phys-paris-1# geopg takeover [-f] protectiongroupname |
如果原始备用群集 cluster-newyork 的配置标记为 Error,请验证每个保护组的配置。
cluster-newyork# geopg validate protectiongroupname |
有关更多信息,请参见如何验证 Oracle Data Guard 保护组。
在两个群集上以全局方式激活保护组。
cluster-newyork# geopg start -e global protectiongroupname |
在两个群集上激活保护组后,即成功执行了故障恢复接管。
如果 Configuration 的状态设置为 Error,请解决此问题。
取消激活处于 Error 状态的辅助配置(即原始主配置)。
phys-newyork-1# geopg stop -e local protectiongroupname |
强制执行接管使辅助配置再次成为主配置,并与基础 Oracle dgmgrl 配置相匹配。
phys-newyork-1# geopg takeover -f protectiongroupname |
在 cluster-paris 和 cluster-newyork 群集上,本地验证每个保护组的配置。
phys-paris-1# geopg validate protectiongroupname phys-newyork-1# geopg validate protectiongroupname |
有关更多信息,请参见如何验证 Oracle Data Guard 保护组。
从其中一个群集的任一节点,在两个群集上以全局方式激活保护组。
# geopg start -e global protectiongroupname |
在两个群集上激活保护组后,即成功执行了故障恢复接管。