Настройка аварийного восстановления для SQL ServerSet up disaster recovery for SQL Server

В этой статье описывается способ организации защиты серверной части SQL Server приложения с помощью сочетания технологий непрерывности бизнес-процессов и аварийного восстановления (BCDR) SQL Server и Azure Site Recovery.This article describes how to protect the SQL Server back end of an application using a combination of SQL Server business continuity and disaster recovery (BCDR) technologies, and Azure Site Recovery.

Прежде чем начать, убедитесь, что вы ознакомлены с возможностями аварийного восстановления SQL Server, включая отказоустойчивую кластеризацию, группы доступности AlwaysOn, зеркальное отображение базы данных и доставку журналов.Before you start, make sure you understand SQL Server disaster recovery capabilities, including failover clustering, Always On availability groups, database mirroring, and log shipping.

Развертывания SQL ServerSQL Server deployments

Многие рабочие нагрузки используют SQL Server как основу, которую можно интегрировать с такими приложениями, как SharePoint, Dynamics и SAP, для реализации служб данных.Many workloads use SQL Server as a foundation, and it can be integrated with apps such as SharePoint, Dynamics, and SAP, to implement data services. Вы можете развернуть SQL Server несколькими способами:SQL Server can be deployed in a number of ways:

  • Изолированный сервер SQL Server. SQL Server и все базы данных размещаются на одном физическом компьютере или виртуальной машине.Standalone SQL Server: SQL Server and all databases are hosted on a single machine (physical or a virtual). Если сервер виртуальный, то для обеспечения локальной высокой доступности используется кластеризация размещения.When virtualized, host clustering is used for local high availability. Высокая доступность на уровне гостя не обеспечивается.Guest-level high availability isn't implemented.

  • Экземпляры отказоустойчивых кластеров SQL Server (Always On FCI). В этом случае два или несколько узлов экземпляров SQL Server с общими дисками настраиваются в отказоустойчивом кластере Windows.SQL Server Failover Clustering Instances (Always On FCI): Two or more nodes running SQL Server instanced with shared disks are configured in a Windows Failover cluster. Если узел не работает, кластер может выполнить отработку отказа SQL Server в другой экземпляр.If a node is down, the cluster can fail SQL Server over to another instance. Эта настройка обычно используется для реализации высокого уровня доступности на основном сайте.This setup is typically used to implement high availability at a primary site. Этот тип развертывания не защищает от сбоев и неполадок на уровне общего хранилища.This deployment doesn't protect against failure or outage in the shared storage layer. Общий диск может быть реализован с использованием интерфейса iSCSI, Fiber Channel или общих VHDX-файлов.A shared disk can be implemented using iSCSI, fiber channel or shared vhdx.

  • Группы доступности SQL AlwaysOn. В этом случае два или несколько узлов настраиваются в кластере без общих ресурсов, в котором базы данных SQL Server настроены в группе доступности с синхронной репликацией и автоматической отработкой отказа.SQL Always On Availability Groups: Two or more nodes are set up in a shared nothing cluster, with SQL Server databases configured in an availability group, with synchronous replication and automatic failover.

    Ниже описаны исходные технологии аварийного восстановления SQL для восстановления баз данных на удаленном сайте.This article leverages the following native SQL disaster recovery technologies for recovering databases to a remote site:

  • Группы доступности SQL AlwaysOn, чтобы обеспечить аварийное восстановление для выпуска SQL Server Enterprise 2012 или 2014.SQL Always On Availability Groups, to provide for disaster recovery for SQL Server 2012 or 2014 Enterprise editions.

  • Зеркальное отображение базы данных SQL в режиме высокого уровня безопасности для SQL Server Standard (любой версии) или SQL Server 2008 R2.SQL database mirroring in high safety mode, for SQL Server Standard edition (any version), or for SQL Server 2008 R2.

Поддержка Site RecoverySite Recovery support

Поддерживаемые сценарии использования.Supported scenarios

В таблице представлены сведения о защите SQL Server службой Site Recovery.Site Recovery can protect SQL Server as summarized in the table.

СценарийScenario На дополнительный сайтTo a secondary site В AzureTo Azure
Hyper-VHyper-V ДаYes ДаYes
VMwareVMware ДаYes ДаYes
Физический серверPhysical server ДаYes ДаYes
AzureAzure Н/ДNA ДаYes

Поддерживаемые версии SQL ServerSupported SQL Server versions

Для соответствующих сценариев поддерживаются следующие версии SQL Server:These SQL Server versions are supported, for the supported scenarios:

  • SQL Server 2016 Enterprise и Standard;SQL Server 2016 Enterprise and Standard
  • SQL Server 2014 Enterprise и Standard;SQL Server 2014 Enterprise and Standard
  • SQL Server 2012 Enterprise и Standard;SQL Server 2012 Enterprise and Standard
  • SQL Server 2008 R2 Enterprise и Standard.SQL Server 2008 R2 Enterprise and Standard

Поддерживаемая интеграция SQL ServerSupported SQL Server integration

Site Recovery может интегрироваться с собственными технологиями SQL Server BCDR, перечисленными в таблице ниже, для создания решения аварийного восстановления.Site Recovery can be integrated with native SQL Server BCDR technologies summarized in the table, to provide a disaster recovery solution.

ВозможностьFeature СведенияDetails SQL ServerSQL Server
Группа доступности AlwaysOnAlways On availability group Несколько отдельных экземпляров SQL Server, каждый из которых запущен в отказоустойчивом кластере с несколькими узлами.Multiple standalone instances of SQL Server each run in a failover cluster that has multiple nodes.

Базы данных можно объединить в группы отработки отказа, которые затем можно скопировать (зеркальное отображение) на экземпляры SQL Server, благодаря чему исключается необходимость в общем хранилище.Databases can be grouped into failover groups that can be copied (mirrored) on SQL Server instances so that no shared storage is needed.

Обеспечивает аварийное восстановление между основным сайтом и одним или несколькими дополнительными сайтами.Provides disaster recovery between a primary site and one or more secondary sites. Два узла можно настроить в кластере без общих ресурсов, в котором базы данных SQL Server настроены в группе доступности с синхронной репликацией и автоматической отработкой отказа.Two nodes can be set up in a shared nothing cluster with SQL Server databases configured in an availability group with synchronous replication and automatic failover.
Выпуски SQL Server 2016, SQL Server 2014 и SQL Server 2012 EnterpriseSQL Server 2016, SQL Server 2014 & SQL Server 2012 Enterprise edition
Отказоустойчивая кластеризация (AlwaysOn FCI)Failover clustering (Always On FCI) SQL Server применяет отказоустойчивую кластеризацию Windows для обеспечения высокого уровня доступности локальных рабочих нагрузок SQL Server.SQL Server leverages Windows failover clustering for high availability of on-premises SQL Server workloads.

Узлы, на которых выполняются экземпляры SQL Server с общими дисками, настроены в отказоустойчивом кластере.Nodes running instances of SQL Server with shared disks are configured in a failover cluster. Если экземпляр выходит из строя, выполняется переход кластера на другой ресурс.If an instance is down the cluster fails over to different one.

Кластер не обеспечивает защиту от сбоев или простоев в общем хранилище.The cluster doesn't protect against failure or outages in shared storage. Общий диск может быть реализован с использованием интерфейса iSCSI, Fiber Channel или с помощью в общих VHDX-файлов.The shared disk can be implemented with iSCSI, fiber channel, or shared VHDXs.
Выпуски SQL Server EnterpriseSQL Server Enterprise editions

SQL Server Standard (ограничено только двумя узлами)SQL Server Standard edition (limited to two nodes only)
База данных зеркального отображения (режим высокой безопасности)Database mirroring (high safety mode) Защищает одну базу данных переносом в одну дополнительную копию.Protects a single database to a single secondary copy. Доступно как в режиме репликации с высоким уровнем безопасности (синхронный режим), так и в режиме репликации с высоким уровнем производительности (асинхронный режим).Available in both high safety (synchronous) and high performance (asynchronous) replication modes. Не требует наличия отказоустойчивого кластера.Doesn’t require a failover cluster. SQL Server 2008 R2SQL Server 2008 R2

Все выпуски SQL Server EnterpriseSQL Server Enterprise all editions
Изолированный SQL ServerStandalone SQL Server SQL Server и база данных находятся на одном сервере (физическом или виртуальном).The SQL Server and database are hosted on a single server (physical or virtual). Если сервер виртуальный, то кластеризация размещения используется для обеспечения высокой доступности.Host clustering is used for high availability if the server is virtual. Без высокой доступности гостевого уровня.No guest-level high availability. Выпуск Enterprise или StandardEnterprise or Standard edition

Рекомендации по развертываниюDeployment recommendations

В таблице перечислены рекомендации относительно интеграции технологий SQL Server BCDR в Site Recovery.This table summarizes our recommendations for integrating SQL Server BCDR technologies with Site Recovery.

ВерсияVersion ВыпускEdition РазвертываниеDeployment От локального к на локальном компьютереOn-prem to on premises От локального к AzureOn-prem to Azure
SQL Server 2016, 2014 или 2012SQL Server 2016, 2014 or 2012 EnterpriseEnterprise Экземпляр отказоустойчивого кластераFailover cluster instance Группы доступности AlwaysOnAlways On availability groups Группы доступности AlwaysOnAlways On availability groups
EnterpriseEnterprise Группы доступности AlwaysOn для обеспечения высокой доступностиAlways On availability groups for high availability Группы доступности AlwaysOnAlways On availability groups Группы доступности AlwaysOnAlways On availability groups
СтандартныеStandard Экземпляр отказоустойчивого кластера (FCI)Failover cluster instance (FCI) Репликация Site Recovery с локальным зеркаломSite Recovery replication with local mirror Репликация Site Recovery с локальным зеркаломSite Recovery replication with local mirror
Enterprise или StandardEnterprise or Standard АвтономныйStandalone Репликация Site RecoverySite Recovery replication Репликация Site RecoverySite Recovery replication
SQL Server 2008 R2 или 2008SQL Server 2008 R2 or 2008 Enterprise или StandardEnterprise or Standard Экземпляр отказоустойчивого кластера (FCI)Failover cluster instance (FCI) Репликация Site Recovery с локальным зеркаломSite Recovery replication with local mirror Репликация Site Recovery с локальным зеркаломSite Recovery replication with local mirror
Enterprise или StandardEnterprise or Standard АвтономныйStandalone Репликация Site RecoverySite Recovery replication Репликация Site RecoverySite Recovery replication
SQL Server (любая версия)SQL Server (Any version) Enterprise или StandardEnterprise or Standard Экземпляр отказоустойчивого кластера — приложение DTCFailover cluster instance - DTC application Репликация Site RecoverySite Recovery replication Не поддерживаетсяNot Supported

Предварительные условия для развертыванияDeployment prerequisites

настроить Active Directory;Set up Active Directory

Для правильной работы SQL Server на дополнительном сайте восстановления вам потребуется настроить службу Active Directory.Set up Active Directory, in the secondary recovery site, for SQL Server to run properly.

  • Для малых предприятий. Если у вас имеется небольшое количество приложений и один контроллер домена для локального сайта, то для выполнения отработки отказа всего сайта мы рекомендуем использовать репликацию Site Recovery для репликации контроллера домена в дополнительный центр обработки данных или в Azure.Small enterprise—With a small number of applications, and single domain controller for the on-premises site, if you want to fail over the entire site, we recommend you use Site Recovery replication to replicate the domain controller to the secondary datacenter, or to Azure.
  • Для средних и крупных предприятий. Если у вас имеется большое количество приложений и лес Active Directory, то для выполнения отработки отказа для каждого отдельного приложения или рабочей нагрузки мы рекомендуем настроить дополнительный контроллер домена в дополнительном центре обработки данных или в Azure.Medium to large enterprise—If you have a large number of applications, an Active Directory forest, and you want to fail over by application or workload, we recommend you set up an additional domain controller in the secondary datacenter, or in Azure. При использовании групп доступности AlwaysOn для восстановления удаленного сайта мы рекомендуем настроить другой дополнительный контроллер домена на дополнительном сайте или в Azure, который будет использоваться для восстановленного экземпляра SQL Server.If you're using Always On availability groups to recover to a remote site, we recommend you set up another additional domain controller on the secondary site or in Azure, to use for the recovered SQL Server instance.

При выполнении инструкций, описанных в этой статье, предполагается, что в дополнительном расположении доступен контроллер домена.The instructions in this article presume that a domain controller is available in the secondary location. Узнайте больше о защите Active Directory с помощью Site Recovery.Read more about protecting Active Directory with Site Recovery.

Интеграция с SQL Server AlwaysOn для репликации в AzureIntegrate with SQL Server Always On for replication to Azure

Необходимо сделать следующее:Here's what you need to do:

  1. Импортировать скрипты в учетную запись службы автоматизации Azure.Import scripts into your Azure Automation account. Содержит скрипты для перехода на другой ресурс группы доступности SQL в виртуальной машине Resource Manager и классической виртуальной машине.This contains the scripts to failover SQL Availability Group in a Resource Manager virtual machine and a Classic virtual machine.

    [![Dазвернуть в Azure]eploy to Azure](https://azurecomcdn.azureedge.net/mediahandler/acomblog/media/Default/blog/c4803408-340e-49e3-9a1f-0ed3f689813d.png)](https://aka.ms/asr-automationrunbooks-deploy)

  2. Добавьте ASR SQL-FailoverAG как предварительное действие первой группы плана восстановления.Add ASR-SQL-FailoverAG as a pre action of the first group of the recovery plan.

  3. Следуйте инструкциям в скрипте для создания переменной автоматизации, чтобы предоставить имя группы доступности.Follow the instructions available in the script to create an automation variable to provide the name of the availability groups.

Действия по тестовой отработке отказаSteps to do a test failover

В SQL AlwaysOn нет встроенной поддержки тестовой отработки отказа.SQL Always On doesn’t natively support test failover. Таким образом, мы рекомендуем следующее.Therefore, we recommend the following:

  1. Установите службу архивации Azure на виртуальной машине, где размещена реплика группы доступности в Azure.Set up Azure Backup on the virtual machine that hosts the availability group replica in Azure.

  2. Прежде чем активировать тестовую отработку отказа для плана восстановления, восстановите виртуальную машину из резервной копии, полученной на предыдущем шаге.Before triggering test failover of the recovery plan, recover the virtual machine from the backup taken in the previous step.

    Восстановление из службы архивации Azure

  3. Создайте принудительный кворум на виртуальной машине, восстановленной из резервной копии.Force a quorum in the virtual machine restored from backup.

  4. Обновите IP-адрес прослушивателя до IP-адреса в сети тестовой отработки отказа.Update IP of the listener to an IP available in the test failover network.

    Обновление IP-адреса прослушивателя

  5. Подключите прослушиватель.Bring listener online.

    Подключение прослушивателя

  6. Создайте балансировщик нагрузки с одним IP-адресом, созданным во внешнем пуле IP-адресов, соответствующим каждому прослушивателю группы доступности, и с виртуальной машиной SQL, добавленной в серверный пул.Create a load balancer with one IP created under frontend IP pool corresponding to each availability group listener and with the SQL virtual machine added in the backend pool.

    Создание балансировщика нагрузки — внешний пул IP-адресов

    Создание балансировщика нагрузки — серверный пул IP-адресов

  7. Выполните тестовую отработку отказа для плана восстановления.Do a test failover of the recovery plan.

Действия по отработке отказаSteps to do a failover

После добавления скрипта в план восстановления и проверки плана восстановления с помощью тестовой отработки отказа можно выполнить отработку отказа плана восстановления.Once you have added the script in the recovery plan and validated the recovery plan by doing a test failover, you can do failover of the recovery plan.

Интеграция с SQL Server AlwaysOn для репликации на дополнительный локальный сайтIntegrate with SQL Server Always On for replication to a secondary on-premises site

Если SQL Server использует группы доступности для обеспечения высокой доступности (или экземпляр отказоустойчивого кластера), то на сайте восстановления также рекомендуется использовать группы доступности.If the SQL Server is using availability groups for high availability (or an FCI), we recommend using availability groups on the recovery site as well. Обратите внимание, что это актуально для приложений, не использующих распределенные транзакции.Note that this applies to apps that don't use distributed transactions.

  1. Настройте базы данных для их добавления в группы доступности.Configure databases into availability groups.
  2. Создайте на дополнительном сайте виртуальную сеть.Create a virtual network on the secondary site.
  3. Настройте подключение VPN типа "сеть — сеть" между виртуальной сетью и основным сайтом.Set up a site-to-site VPN connection between the virtual network, and the primary site.
  4. Создайте виртуальную машину на сайте восстановления и установите на нее SQL Server.Create a virtual machine on the recovery site, and install SQL Server on it.
  5. Расширьте существующие группы доступности AlwaysOn для новой виртуальной машины SQL Server.Extend the existing Always On availability groups to the new SQL Server VM. Настройте этот экземпляр SQL Server в качестве копии асинхронной реплики.Configure this SQL Server instance as an asynchronous replica copy.
  6. Создайте прослушиватель группы доступности или обновите существующий прослушиватель, включив в него виртуальную машину асинхронной реплики.Create an availability group listener, or update the existing listener to include the asynchronous replica virtual machine.
  7. Убедитесь в том, что ферма приложений настроена с помощью прослушивателя.Make sure that the application farm is set up using the listener. Если настройка выполнена с использованием имени сервера базы данных, обновите его, чтобы использовать прослушиватель и избежать повторной настройки после отработки отказа.If it's setup up using the database server name, update it to use the listener, so you don't need to reconfigure it after the failover.

Для приложений, использующих распределенные транзакции, мы рекомендуем развернуть Site Recovery с помощью репликации VMware или физического сервера типа "сеть — сеть".For applications that use distributed transactions, we recommend you deploy Site Recovery with VMware/physical server site-to-site replication.

Рекомендации по плану восстановленияRecovery plan considerations

  1. Добавьте этот образец сценария в библиотеку VMM на основном и дополнительном сайтах.Add this sample script to the VMM library, on the primary and secondary sites.

     Param(
     [string]$SQLAvailabilityGroupPath
     )
     import-module sqlps
     Switch-SqlAvailabilityGroup -Path $SQLAvailabilityGroupPath -AllowDataLoss -force
    
  2. При создании плана восстановления для приложения добавьте предварительное действие в шаг "Group-1", которое запускает сценарий для отработки отказа групп доступности.When you create a recovery plan for the application, add a pre action to Group-1 scripted step, that invokes the script to fail over availability groups.

Защита автономного сервера SQL ServerProtect a standalone SQL Server

В этом примере для защиты компьютера SQL Server мы рекомендуем использовать репликацию Site Recovery.In this scenario, we recommend that you use Site Recovery replication to protect the SQL Server machine. Конкретные шаги зависят от того, настроен ли SQL Server в качестве виртуальной машины или физического сервера, а также от необходимости реплицировать в Azure или в дополнительный локальный сайт.The exact steps will depend whether SQL Server is a VM or a physical server, and whether you want to replicate to Azure or a secondary on-premises site. Дополнительные сведения см. в статье Что такое Site Recovery?Learn about Site Recovery scenarios.

Защита кластера SQL Server (версия Standard для Windows Server 2008 R2)Protect a SQL Server cluster (standard edition/Windows Server 2008 R2)

Для кластера под управлением выпуска SQL Server Standard или SQL Server 2008 R2 рекомендуется использовать репликацию Site Recovery для защиты SQL Server.For a cluster running SQL Server Standard edition, or SQL Server 2008 R2, we recommend you use Site Recovery replication to protect SQL Server.

Из локальной среды в локальную средуOn-premises to on-premises

  • Если приложение использует распределенные транзакции, мы рекомендуем развернуть репликацию Site Recovery с SAN для среды Hyper-V или репликацию VMware или физического сервера в VMware для среды VMware.If the app uses distributed transactions we recommend you deploy Site Recovery with SAN replication for a Hyper-V environment, or VMware/physical server to VMware for a VMware environment.
  • Для приложений без DTC описанный выше метод позволяет восстановить кластер в качестве автономного сервера, используя локальное зеркало баз данных с высоким уровнем безопасности.For non-DTC applications, use the above approach to recover the cluster as a standalone server, by leveraging a local high safety DB mirror.

С локального компьютера на AzureOn-premises to Azure

Site Recovery не поддерживает гостевой кластер при репликации в Azure.Site Recovery doesn't provide guest cluster support when replicating to Azure. SQL Server также не предоставляет экономичное решение для аварийного восстановления для выпуска Standard.SQL Server also doesn't provide a low-cost disaster recovery solution for Standard edition. В этом примере мы рекомендуем защитить локальный кластер SQL Server в автономный сервер SQL Server и восстановить его в Azure.In this scenario, we recommend you protect the on-premises SQL Server cluster to a standalone SQL Server, and recover it in Azure.

  1. Настройте дополнительный автономный экземпляр SQL Server в локальном сайте.Configure an additional standalone SQL Server instance on the on-premises site.
  2. Настройте этот экземпляр в качестве зеркальной копии баз данных, которые требуется защитить.Configure the instance to serve as a mirror for the databases you want to protect. Настройте зеркальное отображение в режиме высокого уровня безопасности.Configure mirroring in high safety mode.
  3. Настройте Site Recovery на локальном сайте для Hyper-V или виртуальных машин VMware либо физических серверов.Configure Site Recovery on the on-premises site, for (Hyper-V or VMware VMs/physical servers).
  4. Воспользуйтесь репликацией Site Recovery для репликации нового экземпляра SQL Server в Azure.Use Site Recovery replication to replicate the new SQL Server instance to Azure. Так как это зеркальная копия с высоким уровнем безопасности, она будет синхронизирована с основным кластером, однако в Azure она будет реплицирована с помощью репликации Site Recovery.Since it's a high safety mirror copy, it will be synchronized with the primary cluster, but it will be replicated to Azure using Site Recovery replication.

Стандартный кластер

Рекомендации относительно восстановления размещенияFailback considerations

В случае стандартных кластеров SQL Server восстановление размещения после внеплановой отработки отказа требует выполнения резервного копирования SQL Server и его восстановления из экземпляра зеркала в исходный кластер с повторной установкой зеркала.For SQL Server Standard clusters, failback after an unplanned failover requires a SQL server backup and restore, from the mirror instance to the original cluster, with reestablishment of the mirror.

Дальнейшие действияNext steps

Дополнительные сведения об архитектуре Site Recovery см. здесь.Learn more about Site Recovery architecture.