Настройка аварийного восстановления для 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, log shipping, active-geo replication and auto-failover groups.

Рекомендации по аварийному Восстановлению для интеграции технологий SQL Server BCDR, с помощью Site RecoveryDR recommendation for integration of SQL Server BCDR technologies with Site Recovery

Выбор технологии BCDR на серверы восстановления SQL Server должно быть основано на потребности RTO и RPO, как указано в следующей таблице.Choice of a BCDR technology to recovery SQL servers should be based on your RTO and RPO needs as per the below table. После этого выбора, Site Recovery может интегрироваться с операцию отработки отказа этой технологии организовать Восстановление всего приложения.Once that choice is made, Site Recovery can be integrated with the failover operation of that technology to orchestrate recovery of your entire application.

Тип развертыванияDeployment Type Технология BCDRBCDR Technology Ожидаемое значение RTO для SQLExpected RTO for SQL Ожидаемый целевая точка восстановления для SQLExpected RPO for SQL
SQL Server на виртуальной Машине Azure IaaS или в локальнойSQL Server on Azure IaaS VM or at on-premises Группа доступности AlwaysOnAlways On Availability Group Эквивалентно время, затраченное на сделать вторичную реплику как основнойEquivalent to the time taken to make the Secondary replica as Primary Репликация выполняется асинхронно на вторичную реплику, следовательно, потеря данных.Replication is asynchronous to the secondary replica, hence there is some data loss.
SQL Server на виртуальной Машине Azure IaaS или в локальнойSQL Server on Azure IaaS VM or at on-premises Отказоустойчивая кластеризация (AlwaysOn FCI)Failover clustering (Always On FCI) Эквивалентно время, необходимое для отработки отказа между узламиEquivalent to the time taken to failover between the nodes Она использует общее хранилище, поэтому одинаковое представление экземпляра хранилища доступен при отработке отказа.It uses shared storage, hence the same view of storage instance is available on failover.
SQL Server на виртуальной Машине Azure IaaS или в локальнойSQL Server on Azure IaaS VM or at on-premises База данных зеркального отображения (режим высокой производительности)Database mirroring (high-performance mode) Эквивалент время, затраченное на принудительное обслуживание, которое зеркальный сервер используется в качестве сервера «горячего» резервирования.Equivalent to the time taken to forcing service, which uses the mirror server as a warm standby server. Репликация выполняется асинхронно.Replication is asynchronous. Зеркальная база данных может отставать от основной базы данных.The mirror database might lag somewhat behind the principal database. Разрыв обычно мала, howvever, может стать существенным, если система основного или зеркального сервера в условиях большой нагрузки.The gap is typically small, howvever, can become substantial if the principal or mirror server's system is under a heavy load.
Доставка журналов может дополнять зеркальное отображение базы данных и является подходящей альтернативой для асинхронного зеркального отображенияLog shipping can be a supplement to database mirroring and is a favorable alternative to asynchronous database mirroring
SQL как PaaS в AzureSQL as PaaS on Azure
(Эластичных пулов, серверов баз данных SQL)(Elastic pools, SQL database servers)
Активная георепликацияActive Geo-replication 30 секунд, после ее запуска30 seconds once it is triggered
При активации отработки отказа в одной из баз данных-получателей все прочие получатели автоматически связываются с новой базой данных-источником.When failover is activated to one of the secondary databases, all other secondaries are automatically linked to the new primary.
Значение RPO составляет 5 секундRPO of 5 seconds
Активная георепликация использует технологию Always On SQL Server для асинхронной репликации зафиксированных транзакций базы данных-источника в базу данных-получатель с помощью изоляции моментального снимка.Active geo-replication leverages the Always On technology of SQL Server to asynchronously replicate committed transactions on the primary database to a secondary database using snapshot isolation.
Вспомогательные данные гарантированно никогда не будет частично выполненных транзакций.The secondary data is guaranteed to never have partial transactions.
SQL, как настроить активную георепликацию в Azure PaaSSQL as PaaS configured with Active geo-replication on Azure
(SQL управляемый экземпляр базы данных, эластичных пулов серверов баз данных SQL)(SQL Database Managed Instance, Elastic pools, SQL database servers)
Группы автоматической отработки отказаAuto-failover groups RTO составляет 1 часRTO of 1 hour Значение RPO составляет 5 секундRPO of 5 seconds
Группы автоматической отработки отказа обеспечивают групповую семантику на основе активной георепликации, однако используется тот же механизм асинхронной репликации.Auto-failover groups provide the group semantics on top of active geo-replication but the same asynchronous replication mechanism is used.
SQL Server на виртуальной Машине Azure IaaS или в локальнойSQL Server on Azure IaaS VM or at on-premises Репликация с помощью Azure Site RecoveryReplication with Azure Site Recovery Обычно не превышает 15 минут.Typically less than 15 minutes. Дополнительные сведения Дополнительные сведения о RTO соглашение об уровне ОБСЛУЖИВАНИЯ, предоставляемую Azure Site Recovery.Read more to learn about the RTO SLA provided by Azure Site Recovery. 1 час для обеспечения согласованности приложений и 5 минут для отказоустойчивость.1 hour for application consistency and 5 minutes for crash consistency.

Примечание

Ряд важных моментов при защите рабочих нагрузок SQL с помощью Azure Site Recovery:A few important considerations when protecting SQL workloads with Azure Site Recovery:

  • Azure Site Recovery зависит от приложения, и таким образом, любая версия SQL server, который развертывается в поддерживаемой операционной системе может быть защищен Azure Site Recovery.Azure Site Recovery is application agnostic and hence, any version of SQL server that is deployed on a supported operating system can be protected by Azure Site Recovery. Узнайте больше.Learn more.
  • Вы можете использовать для любого развертывания в Azure, Hyper-V, VMware или физическая инфраструктура Site Recovery.You can choose to use Site Recovery for any deployment at Azure, Hyper-V, VMware or Physical infrastructure. Следуйте рекомендации в конце документа о том, как защитить кластер SQL Server с помощью Azure Site Recovery.Please follow the guidance at the end of the document on how to protect SQL Server Cluster with Azure Site Recovery.
  • Убедитесь, что частота (запись байт / с), наблюдаемых на компьютере, изменения данных находится в пределах ограничений Site Recovery.Ensure that the data change rate (Write bytes per sec) observed on the machine is within Site Recovery limits. Для компьютеров windows их можно просмотреть на вкладке производительности диспетчера задач.For windows machines, you can view this under Performance tab on Task Manager. Просмотрите записи скорость для каждого диска.Observe Write speed for each disk.
  • Azure Site Recovery поддерживает репликацию экземпляров отказоустойчивых кластеров на дисковых пространств.Azure Site Recovery supports replication of Failover Cluster Instances on Storage Spaces Direct. Узнайте больше.Learn more.

Аварийное восстановление приложенияDisaster recovery of application

Azure Site Recovery организует тестовой отработки отказа и отработку отказа всего приложения с помощью планов восстановления.Azure Site Recovery orchestrates the test failover and failover of your entire application with the help of Recovery Plans.

Существуют некоторые предварительные требования, чтобы убедиться, что план восстановления полностью настраивается в соответствии с потребностями.There are some pre-requisites to ensure Recovery Plan is fully customized as per your need. Все развертывания SQL Server обычно требуется Active Directory.Any SQL Server deployment typically needs an Active Directory. Он также требуется подключение для вашего уровня приложения.It also needs connectivity for your application tier.

Шаг 1. настроить Active Directory;Step 1: 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.

Шаг 2. Обеспечьте подключение с других уровней приложения и веб-уровняStep 2: Ensure connectivity with other application tier(s) and web tier

Убедитесь, что когда на уровне базы данных будет запущен и работает в целевом регионе Azure, подключение с приложениями и веб-уровня.Ensure that once the database tier is up and running in target Azure region, you have connectivity with the application and the web tier. Необходимые действия, способным заранее проверить подключение с помощью тестовой отработки отказа.Necessary steps should be taken in advance to validate connectivity with test failover.

Основные сведения о том, как разработать приложения для подключения к вопросы, связанные с несколько примеров.Understand how you can design applications for connectivity considerations with a couple of examples:

Шаг 3. Интеграция с AlwaysOn, активной георепликации и групп автоматической отработки отказа для отработки отказа приложенияStep 3: Integrate with Always On, Active-Geo replication or Auto-failover groups for application failover

Технологиями BCDR Always On, активный географической репликацией и автоматической отработки отказа группы имеют вторичных реплик SQL Server, работающий в целевом регионе Azure.BCDR technologies Always On, Active-Geo replication and auto-failover groups have secondary replicas of SQL server running in target Azure region. Таким образом первым шагом для отработки отказа приложения является сделать эту реплику основной (при условии, что контроллер домена уже есть в дополнительных).Hence, the first step for your application failover is to make this replica as Primary (assuming you already have a domain controller in secondary). Этот шаг не может потребоваться в том случае, если вы решите сделать автоматической отработки отказа.This step may not be necessary if you choose to do an auto-failover. Только после завершения отработки отказа базы данных отработки отказа следует уровней архитектуры или веб-приложении.Only after the database failover is completed, you should failover your web or application tiers.

Примечание

Если вы защитили машины SQL с помощью Azure Site Recovery, необходимо просто создать группу восстановления из этих компьютеров и добавление их отработки отказа в плане восстановления.If you have protected the SQL machines with Azure Site Recovery, you just need to create a recovery group of these machines and add their failover in the recovery plan.

Создайте план восстановления с приложением и виртуальной машины веб-уровня.Create a Recovery Plan with application and web tier virtual machines. Выполните следующие действия, чтобы добавить на другой ресурс для уровня базы данных:Follow the below steps to add failover of database tier:

  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.

    Развертывание в AzureDeploy to Azure

  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.

Шаг 4. Тестовую отработку отказаStep 4: Conduct a test failover

Некоторые технологии BCDR, такие как SQL AlwaysOn не встроенной поддержки тестовой отработки отказа.Some BCDR technologies like SQL Always On don’t natively support test failover. Таким образом, рекомендуется следующий подход только в том случае, если интеграция с помощью таких технологий:Therefore, we recommend the following approach only when integrating with such technologies:

  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. Добавьте отказоустойчивости на уровне приложения, следуют веб-уровня в этом плане восстановления в группы для последующего восстановления.Add failover of your application tier, followed by web tier in this recovery plan in subsequent recovery groups.

  8. Выполните тестовую отработку отказа плана восстановления для тестовой отработки отказа end-to-end приложения.Do a test failover of the recovery plan to test end-to-end failover of application.

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

После добавления скрипта в план восстановления на шаге 3 и проверить его, выполнив тестовую отработку отказа с помощью специализированных средств на шаге 4, можно выполнить отработку отказа плана восстановления, созданный на шаге 3.Once you have added the script in the recovery plan in Step 3 and validated it by doing a test failover with a specialized approach in Step 4, you can do failover of the recovery plan created in Step 3.

Обратите внимание на то, что шаги отработки отказа для приложения и веб-уровня должны быть одинаковыми в тестовой отработки отказа и отработки отказа планов восстановления.Note that the failover steps for application and web tiers should be the same in both test failover and failover recovery plans.

Как защитить кластер SQL Server (standard edition или SQL Server 2008 R2)How to protect a SQL Server cluster (standard edition/SQL 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.

Azure в Azure и на локальной среды в AzureAzure to Azure and On-premises to Azure

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

  1. Настройте дополнительный автономный экземпляр SQL Server, основной регион Azure, и на локальный сайт.Configure an additional standalone SQL Server instance on the primary Azure region or at 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 на первичном сайте (Azure, Hyper-V или виртуальных машин VMware или физических серверов).Configure Site Recovery on the primary site (Azure, Hyper-V or VMware VMs/physical servers).
  4. Используйте репликацию Site Recovery для репликации нового экземпляра SQL Server для вторичного сайта.Use Site Recovery replication to replicate the new SQL Server instance to secondary site. Так как это зеркальная копия с высоким уровнем безопасности, она будет синхронизирована с основным кластером, но она будет реплицирована с помощью репликации Site Recovery.Since it's a high safety mirror copy, it will be synchronized with the primary cluster, but it will be replicated 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.

Часто задаваемые вопросыFrequently Asked Questions

Как SQL получить лицензии при защите с помощью Azure Site Recovery?How does SQL get licensed when protected with Azure Site Recovery?

Репликация Azure Site Recovery для SQL Server входит в преимущество аварийного восстановления в рамках программы Software Assurance и охватывает все возможные сценарии Azure Site Recovery (аварийное восстановление из локальной среды в Azure или аварийное восстановление Azure IaaS между регионами).Azure Site Recovery replication for SQL Server is covered under the Software Assurance – Disaster Recovery benefit, for all Azure Site Recovery scenarios (on-premises to Azure disaster recovery, or cross-region Azure IaaS disaster recovery). Дополнительные сведенияRead more

Будет ли Azure Site Recovery поддерживает моей версии SQL?Will Azure Site Recovery support my SQL version?

Azure Site Recovery зависит от приложения.Azure Site Recovery is application agnostic. Таким образом любая версия SQL server, который развертывается в поддерживаемой операционной системе может быть защищен Azure Site Recovery.Hence, any version of SQL server that is deployed on a supported operating system can be protected by Azure Site Recovery. ПодробнееLearn more

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