对 ArcGIS 服务数据使用具有高可用性的 Microsoft SQL Server 数据库可避免服务停机。
SQL Server 提供多种高可用性解决方案。ArcGIS 支持连接到 AlwaysOn 可用性组和故障转移集群实例。
注意:Microsoft 已弃用数据库镜像。考虑使用 AlwaysOn 解决方案代替镜像。
以下几个部分介绍从 ArcGIS 连接高可用性 SQL Server 数据库需要提供的信息:
AlwaysOn 可用性组和故障转移集群实例
故障转移集群实例提供了多余的 SQL Server 实例,如果某个实例失败,客户端可以连接其中一个多余的实例。可用性组允许您在故障转移集群实例中指定一组主数据库和最多四组只读辅助数据库。在实施此解决方案之前,请务必阅读 Microsoft 文档中的 SQL Server AlwaysOn 文档。
AlwaysOn 解决方案准备就绪后,您可通过指定可用性组监听器名称代替 SQL Server 实例名称从 ArcGIS 中进行连接。您可向组监听器追加附加条件,使用分号 (;) 分隔组监听器名称和每个参数。您可添加以下条件:
- APPLICATIONINTENT=READONLY 或 APPLICATIONINTENT=READWRITE
- MULTISUBNETFAILOVER=YES 或 MULTISUBNETFAILOVER=NO
如果您没有为 APPLICATIONINTENT 和 MULTISUBNETFAILOVER 指定值,默认值分别为 READWRITE 和 NO。
在以下示例中,通过 org_agl 组监听器连接到只读辅助数据库。
数据库镜像
如上所述,Microsoft 已弃用 SQL Server 中的镜像,但如果您仍在使用,则可以提供关于服务源数据的主服务器和镜像服务器连接的连接信息。按以下格式输入信息 <principal>;MIRROR=<mirror>。
如果主服务器变为不可用,则 ArcGIS Server 将自动重试连接。此时,如果镜像服务器为可用,则服务的连接将切换为使用镜像服务器上的数据。
指定数据镜像的不同情景将在下列各部分进行介绍:
发布程序和服务器计算机使用相同的数据库
如果共享为服务的 GIS 资源使用与已发布服务相同的数据库且该数据库已镜像,则在共享数据库连接的实例字段中提供主服务器和镜像服务器的实例信息。
例如,如果您从 ArcMap 的数据库连接对话框创建连接,主服务器为 oak\prod,镜像服务器为 oak2\echo,数据库为 datasquared,则连接将如下所示:
发布程序和服务器计算机使用不同的数据库
如果 GIS 资源和已发布服务对其源数据(复制的地理数据库或托管数据库)使用不同的数据库,则将定义两个单独的数据库连接。要确保服务的高可用性,需确保为发布程序定义的连接文件使用已描述的镜像语法。
例如,如果您的要素服务将指向复制到托管数据库 gisdata(位于服务器 willow 上并在服务器 cottonwood 上镜像)的数据,则您注册的地理数据库连接将如下所示:
因为此例使用了默认 SQL Server 实例,则可为各服务器提供 IP 地址,而不提供 SQL Server 实例名称。例如,如果 willow 的 IP 地址是 10.10.100.10,cottonwood 的 IP 地址是 11.11.111.11,则在实例文本框中输入 10.10.100.10;MIRROR=11.11.111.11。如果 SQL Server 实例正在监听其他端口,而非默认数据库引擎端口 1433,则在连接信息中包括端口号。例如,如果 willow 实例正在监听端口 50000,则在实例文本框中输入 10.10.100.10:50000;MIRROR=11.11.111.11。