Использование баз данных Microsoft SQL Server высокой доступности для данных сервисов ArcGIS позволяет избежать простоев веб-сервисов.
SQL Server предлагает несколько решений высокой доступности. ArcGIS поддерживает подключения к AlwaysOn Availability Groups и Failover Cluster Instances.
Помните, что компания Microsoft отказалась от зеркалирования баз данных. Вместо зеркалирования используйте решение AlwaysOn.
В следующих разделах описывается, какая информация необходима для подключения из ArcGIS к базам данных SQL Server с высокой доступностью:
AlwaysOn Availability Groups и Failover Cluster Instances
Failover Cluster Instance обеспечивает резервный экземпляр SQL Server, к которому клиенты могут подключаться в случае сбоя одного экземпляра. Availability Groups позволяют выбрать набор основных баз данных и до четырех наборов вторичных баз данных для чтения, распределенных по Failover Cluster Instances. Ознакомьтесь с документацией к SQL Server AlwaysOn в Microsoft Developer Network перед применением этого решения.
После установки решения AlwaysOn, вы можете подключиться к нему из ArcGIS, указав имя слушателя группы доступности, вместо имени экземпляра SQL Server. Можно добавить дополнительные условия слушателю группы, отделив имя группы и каждый параметр точкой с запятой (;). Можно добавить следующие условия:
- APPLICATIONINTENT=READONLY или APPLICATIONINTENT=READWRITE
- MULTISUBNETFAILOVER=YES или MULTISUBNETFAILOVER=NO
Если вы не указываете значения для APPLICATIONINTENT и MULTISUBNETFAILOVER, используются значения по умолчанию READWRITE и NO, соответственно.
В следующем примере подключение выполнено к вторичной базе данных в режиме только для чтения через слушателя группы org_agl.
Зеркалирование базы данных
Как уже было упомянуто, Microsoft больше не использует зеркалирование баз данных в Microsoft SQL Server, но если вы все еще его используете, можно задать информацию для подключения к основному и зеркальному серверному подключению для источников данных, использующихся в ваших сервисах. Введите информацию в формате <principal>;MIRROR=<mirror>.
Если основной сервер недоступен, ArcGIS Server автоматически повторяет попытку подключения. В этот момент, если доступен зеркальный сервер, подключение переключится на использование данных с зеркального сервера.
В следующих разделах описаны различные сценарии задания зеркала данных:
Компьютеры сервера и издателя используют одну базу данных
Если источник ГИС, к которому предоставлен общий доступ в виде сервиса, использует ту же базу данных, что и публикуемый сервис, а база данных зеркалирована, введите информацию об экземпляре для основного и зеркального сервера в поле Экземпляр общедоступного подключения к базе данных.
Например, если вы создаете подключение с помощью диалогового окна Подключение базы данных в ArcMap, основной сервер называется oak\prod, зеркало – oak2\echo, а базы данных используют защиту datasquared, подключение будет выглядеть примерно так:
Компьютеры сервера и издателя используют различные базы данных
Если ГИС-ресурс и опубликованный сервис используют различные базы данных (реплицированные либо управляемые базы данных), необходимо задать два отдельных подключения к базе данных. Чтобы повысить доступность сервиса, убедитесь, что файл подключения, заданный для издателя, использует вышеописанный синтаксис зеркалирования.
Например, если сервис объектов ссылается на данные, скопированную в управляемую базу данных gisdata, расположенную на сервере willow и имеющую зеркало на сервере cottonwood, зарегистрированное подключение к базе геоданных будет выглядеть примерно так:
Поскольку в этом примере используются экземпляры SQL Server по умолчанию, можно задать IP адрес каждого сервера, вместо имен экземпляров SQL Server. Например, если willow имеет IP адрес 10.10.100.10, а cottonwood – 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 в поле Экземпляр.