Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе рассматриваются особые рекомендации по поддержанию базы данных публикации при использовании групп доступности AlwaysOn.
Обслуживание опубликованной базы данных в группе доступности
Обслуживание базы данных публикации AlwaysOn в основном совпадает с обслуживанием стандартной базы данных публикации с следующими рекомендациями.
Администрирование должно выполняться на главном узле реплики. В SQL Server Management Studio публикации отображаются в папке "Локальные публикации " для узла первичной реплики, а также для доступных для чтения вторичных реплик. После процедуры отказоустойчивости может потребоваться вручную обновить Management Studio, чтобы отобразить изменения, если вторичный объект, который был повышен до первичного, не был доступен для чтения.
Монитор репликации всегда отображает информацию о публикации под исходным издателем. Однако эти сведения можно просмотреть в Мониторе Репликации из любой реплики, добавив исходного издателя как сервер.
При использовании хранимых процедур или объектов управления репликацией (RMO) для администрирования репликации в текущем первичном объекте для случаев, в которых указывается имя издателя, необходимо указать имя экземпляра, на котором база данных была включена для репликации (исходного издателя). Чтобы определить соответствующее имя, используйте функцию
PUBLISHINGSERVERNAME. При присоединении базы данных публикации к группе доступности метаданные репликации, хранящиеся в вторичных репликах баз данных, идентичны тем, что в первичной базе данных. Следовательно, для баз данных публикации, которые включены для репликации на основном экземпляре, имя экземпляра публикации, хранящееся в системных таблицах на вторичном объекте, — это имя основного экземпляра, а не вторичного. Это влияет на конфигурацию и обслуживание репликации, если база данных публикации пересекается на вторичную в случае сбоя. Например, если вы настраиваете репликацию с хранимыми процедурами во вторичной после отработки отказа и хотите получить подписку на базу данных публикации, которая была включена в другой реплике, необходимо указать имя исходного издателя вместо текущего издателя в качестве параметра @publishersp_addpullsubscriptionилиsp_addmergepulllsubscription. Если после переключения на резервный узел включить базу данных публикации, имя экземпляра издателя, хранящееся в системных таблицах, будет именем текущего основного узла. В этом случае для параметра @publisher используется имя узла текущей первичной реплики.Замечание
Для некоторых процедур, таких как
sp_addpublicationпараметр @publisher, поддерживается только для издателей, которые не являются экземплярами SQL Server. В этих случаях это не относится к SQL Server AlwaysOn.Чтобы синхронизировать подписку в Management Studio после аварийного переключения, синхронизируйте извлекаемые подписки у подписчика и активные подписки с активного издателя.
Удаление опубликованной базы данных из группы доступности
Рассмотрите следующие проблемы, если опубликованная база данных удаляется из группы доступности или если группа доступности с опубликованной базой данных-участником удалена.
Если база данных публикации у исходного издателя удаляется из первичной реплики группы доступности, необходимо запустить
sp_redirect_publisherбез указания значения параметра @redirected_publisher для удаления перенаправления для пары издатель/база данных.EXEC sys.sp_redirect_publisher @original_publisher = 'MyPublisher', @published_database = 'MyPublishedDB';База данных останется в состоянии восстановления на основном сервере и должна быть восстановлена. После этого репликация должна работать без изменений с оригинальным издателем.
Если база данных публикации выполняет отработку отказа исходного издателя на реплику, а база данных удаляется из первичной реплики группы доступности, используйте хранимую процедуру
sp_redirect_publisherдля явного перенаправления исходного издателя новому издателю. База данных останется в состоянии восстановления и должна быть восстановлена. После того как вы это сделаете, репликация должна продолжать работать так же, как и в группе доступности.EXEC sys.sp_redirect_publisher @original_publisher = 'MyPublisher', @published_database = 'MyPublishedDB', @redirected_publisher = 'MyNewPublisher';Не удаляйте удаленный сервер исходного издателя из распространителя, даже если к серверу больше не удается получить доступ. Метаданные сервера оригинального издателя необходимы распространителю, чтобы удовлетворить запросы на метаданные публикаций.
Если удалена полная группа доступности, поведение в отношении реплицированной базы данных-члена совпадает с тем, что при удалении опубликованной базы данных из группы доступности. Репликацию можно возобновить с последнего первичного источника, как только база данных была восстановлена, и перенаправление было изменено. Если база данных восстановлена на исходном издателе, перенаправление должно быть удалено. Если база данных восстанавливается на другом узле, перенаправление должно быть явно перенаправлено на новый узел.
Замечание
При удалении группы доступности, которая опубликовала базы данных-члены или опубликованная база данных удаляется из группы доступности, все копии опубликованных баз данных останутся в состоянии восстановления. При восстановлении каждая из них будет отображаться как опубликованная база данных. Только одна копия должна храниться с метаданными публикации. Чтобы отключить репликацию для опубликованной копии базы данных, сначала удалите все подписки и публикации из базы данных.
Выполните команду
sp_dropsubscription, чтобы удалить подписки на публикацию. Убедитесь, что устанавливаете параметр @ignore_distributributor в значение 1, чтобы сохранить метаданные для активной базы данных публикации на дистрибьюторе.USE MyDBName; GO EXEC sys.sp_dropsubscription @subscriber = 'MySubscriber', @publication = 'MyPublication', @article = 'all', @ignore_distributor = 1;Запустите,
sp_droppublicationчтобы удалить все публикации. Снова задайте параметру @ignore_distributor значение 1, чтобы сохранить метаданные для активной базы данных публикации на распространителе.EXEC sys.sp_droppublication @publication = 'MyPublication', @ignore_distributor = 1;Выполните
sp_replicationdboption, чтобы отключить репликацию для базы данных.EXEC sys.sp_replicationdboption @dbname = 'MyDBName', @optname = 'publish', @value = 'false';На этом этапе копию опубликованной базы данных можно сохранить или удалить.
Связанные задачи
Настройка репликации для групп доступности AlwaysOn (SQL Server)
Подписчики репликации и группы доступности AlwaysOn (SQL Server)
См. также
Предварительные требования, ограничения и рекомендации для групп доступности AlwaysOn (SQL Server)
Общие сведения о группах доступности AlwaysOn (SQL Server)
Группы доступности AlwaysOn: взаимодействие (SQL Server)
Репликация SQL Server