常见问题
在配置 Oracle Real Application Clusters (RAC) 和透明应用程序故障转移 (TAF) 时,系统将提供许多选项,支持这些配置的硬件基础设施和网络有很多变化,并且客户工作流也有很大变化。 ArcGIS 支持 RAC。 但是,TAF 配置差异很大,因此不能笼统地说 ArcGIS 在所有可能的实施中都支持 TAF。
TAF 故障转移的一个重要考虑因素是 ArcGIS 连接可获得一个特定于会话并由 Oracle 管理的内存锁。 此锁用于确保任何方案或状态锁均有效。 当发生故障转移时,与正常运行的节点建立的连接是一个新会话,因此会导致丢失原始锁。 在某些编辑场景中,这可能会导致异常行为。 丢失原始锁还允许在只读操作中修改方案,如果在引用该数据的 ArcGIS Server 服务上禁用方案锁定,则会导致异常行为。 因此,在使用 ArcGIS 实施 Oracle TAF 之前,进行全面的测试将非常重要。
Oracle RAC 已在使用地理数据库的多个 Esri 客户站点中使用,并且 Esri 已测试基础 RAC 和 TAF 功能的故障转移行为。 将在本文中介绍该测试的结果。
注: 无论使用何种配置,Esri 都强烈建议每位客户执行全面的测试,以确保所有工作流和应用程序在故障转移场景中都能够按预期工作。
背景
Oracle RAC 将为 Oracle 数据库提供集群和高可用性 (HA),允许多个服务器节点上的 Oracle 关系数据库管理系统软件管理单个 Oracle 数据库,由此为数据库服务提供弹性架构。 这通常与弹性存储层和 Oracle 客户端配置相结合,以便在服务器节点发生故障时提供故障转移。 TAF 通常是 Oracle RAC 配置的一部分,在数据库实例发生故障时,其提供的客户端功能允许客户端重新连接到正常运行的数据库。
测试结果
Esri 发现,将 TAF 故障转移类型设置为 Select 可在与 ArcGIS 配合使用时提供最高可用性的行为。 Select 允许在故障转移前开始从游标中提取行的应用程序在故障转移后继续提取行。 由于 TAF 无法在故障转移后保留活动事务,因此任何活动事务都将在失败时回滚。
如果使用 Select 故障转移,则 ArcGIS for Desktop 和 ArcGIS Server 中的连接将切换到正常运行的节点以进行最简单的操作,例如缩放、平移或刷新。 在连接恢复之前,将存在延迟,并且该延迟取决于支持 RAC 的基础架构以及其他配置参数。
测试还发现,在使用 Select 故障转移时,连接将在更简单的非版本化和版本化编辑会话期间切换到正常运行的节点。
但是,在使用 Select 故障转移时,由于活动或正在进行的事务会自动回滚,因此较大规模的批量数据加载将失败。
其他故障转移类型
TAF 可提供另外两种故障转移类型:None 和 Session。 在使用任一故障转移类型时,如果节点发生故障,则 ArcGIS for Desktop 连接将失败,并返回类似于以下内容的错误消息:
一个或多个图层绘制失败: <用户>.<图层>:无法访问 DBMS 服务器 [ORA-03114:未连接到 ORACLE]
需要从 ArcGIS for Desktop 手动重新连接到正常运行的节点。
如果主节点发生故障,则在执行下一个 ArcGIS Server 操作时,ArcGIS for Server 仍将自动连接到正常运行的节点,尽管在建立故障转移连接时会出现暂停。
获取来自 ArcGIS 专家的帮助
下载 Esri 支持应用程序