Oracle数据库和ONTAP控制器故障转移/切换
要确保Oracle数据库操作不会被这些操作中断、需要了解存储接管和切换功能。此外、如果使用不当、接管和切换操作使用的参数可能会影响数据完整性。
-
在正常情况下、传入给定控制器的写入会同步镜像到其配对控制器。在NetApp MetroCluster环境中、写入操作也会镜像到远程控制器。写入操作在所有位置的非易失性介质中存储之前、不会向主机应用程序确认。
-
存储写入数据的介质称为非易失性内存或NVMEM。它有时也称为非易失性随机存取存储器(NVRAM)、尽管它充当日志、但也可视为写入缓存。在正常操作下、不会读取NVMEM中的数据;该数据仅用于在发生软件或硬件故障时保护数据。将数据写入驱动器后、数据将从系统中的RAM传输、而不是从NVMEM传输。
-
在接管操作期间、高可用性(HA)对中的一个节点会从其配对节点接管操作。切换本质上是相同的、但在IT适用场景 MetroCluster配置中、远程节点接管本地节点的功能。
在日常维护操作期间、存储接管或切换操作应该是透明的、而不是在网络路径发生更改时可能会短暂暂停操作。但是、网络连接可能很复杂、容易出错、因此NetApp强烈建议在将存储系统投入生产之前对接管和切换操作进行全面测试。这样做是确保所有网络路径配置正确的唯一方法。在SAN环境中、请仔细检查命令的输出 sanlun lun show -p
确保所有预期的主路径和辅助路径均可用。
发出强制接管或切换命令时必须小心。使用这些选项强制更改存储配置意味着、拥有驱动器的控制器的状态将被忽略、而备用节点将强制接管驱动器。不正确地强制执行接管可能会导致数据丢失或损坏。这是因为强制接管或切换可能会丢弃NVMEM的内容。接管或切换完成后、如果丢失这些数据、则从数据库的角度来看、存储在驱动器上的数据可能会还原到稍旧的状态。
很少需要使用普通HA对强制接管。在几乎所有故障情形下、节点都会关闭并通知配对节点、以便进行自动故障转移。在某些边缘情况下、例如、发生滚动故障时、节点之间的互连断开、然后一个控制器断开、此时需要强制接管。在这种情况下、节点之间的镜像会在控制器发生故障之前丢失、这意味着无故障控制器将不再具有正在进行的写入的副本。然后、需要强制执行接管、这意味着数据可能会丢失。
相同的逻辑适用场景会执行MetroCluster切换。在正常情况下、切换几乎是透明的。但是、灾难可能会导致运行正常的站点与灾难站点之间的连接断开。从运行正常的站点的角度来看、问题可能只是站点之间的连接中断、而原始站点可能仍在处理数据。如果节点无法验证主控制器的状态、则只能执行强制切换。
|
MetroCluster和多个聚合
MetroCluster是一种同步复制技术、如果连接中断、则会切换到异步模式。这是客户最常见的请求、因为有保障的同步复制意味着站点连接中断会导致数据库I/O完全停止、从而使数据库无法使用。
借助MetroCluster、聚合可以在连接恢复后快速重新同步。与其他存储技术不同、MetroCluster不应要求在站点发生故障后进行完整的重新镜像。只需发送增量变更。
在跨聚合的数据集中、在滚动灾难场景中需要执行额外的数据恢复步骤的风险很小。具体而言、如果:(a)站点之间的连接中断、(b)连接恢复、(c)聚合达到一种状态、其中一些聚合已同步、而另一些聚合则未同步、 然后(d)主站点丢失、结果是聚合未彼此同步的运行正常的站点。如果发生这种情况、数据集的部分内容会彼此同步、如果不进行恢复、则无法启动应用程序、数据库或数据存储库。如果数据集跨越多个聚合、NetApp强烈建议使用多种可用工具之一利用基于快照的备份来验证在这种异常情况下的快速可恢复性。