Після переходу на дзеркальну базу даних в результаті відпрацювання відмови основної бази даних дзеркальна база даних стає основною. У цьому розділі терміни «основна» і «дзеркальна» завжди ставляться до вихідної основний і дзеркальної базі даних відповідно.
При використанні реплікації спільно з дзеркальним відображенням бази даних пам'ятайте про такі вимоги і правила.
Основна і дзеркальна бази даних повинні спільно використовувати розповсюджувач. Рекомендується, щоб це був віддалений розповсюджувач, який забезпечує більшу стійкість до відмов в ситуації, коли на видавця при збої відбувається незапланована відпрацювання відмови.
Метадані і об'єкти, які існують за межами бази даних, що не копіюються на дзеркало. Це стосується імен входу, завдань, пов'язаних серверів і так далі. Якщо в дзеркальній базі даних потрібні метадані та об'єкти, їх необхідно скопіювати вручну. Додаткові відомості див. У статті Керування іменами входу і завданнями після перемикання ролей (SQL Server).
Налаштування реплікації і дзеркального відображення бази даних складається з п'яти кроків. Кожен крок описується в наступному розділі.
Налаштування дзеркального відображення бази даних.
Налаштування дзеркала для використання разом з основною базою даних одного і того ж розповсюджувача.
Налаштування агентів реплікації для переходу на дзеркальну базу в разі відпрацювання відмови.
Додавання основний і дзеркальної бази даних в монітор реплікації.
Кроки 1 і 2 можуть бути виконані в зворотному порядку.
Рекомендується використовувати віддалений розповсюджувач. Додаткову інформацію про створення поширення см. В статті Налаштування поширення.
Базу даних можна активувати для використання публікацій моментальних знімків, публікацій транзакцій або публікацій злиттям. Для дзеркальних баз даних, які будуть містити більш як один тип публікацій, базу даних за допомогою процедури sp_replicationdboption слід активувати для обох типів публікацій на тому ж сайті. Наприклад, можна було б виконати наступні виклики збережених процедур в основній базі даних:
Додаткові відомості про створення публікацій см. В статті Публікація даних і об'єктів бази даних.
Налаштуйте поширення для дзеркальної бази даних. Вкажіть ім'я дзеркальної бази даних в якості імені видавця і вкажіть ті ж самі розповсюджувач і папку моментальних знімків, які використовуються основною базою даних. Наприклад, якщо проводиться настройка реплікації за допомогою збережених процедур, виконайте sp_adddistpublisher на розповсюджувача, а потім sp_adddistributor на дзеркальному сервері. Для sp_adddistpublisher виконайте наступне:
встановіть значення параметра @publisher рівним мережевого імені дзеркала;
встановіть значення параметра @working_directory рівним імені папки моментальних знімків, використовуваної основною базою даних.
Вкажіть ім'я дзеркала в параметрі агента -PublisherFailoverPartner. Ця установка може знадобитися наступним агентам для визначення дзеркала після відпрацювання відмови:
агенту моментальних знімків (для всіх публікацій);
агенту читання журналу (для всіх публікацій транзакцій);
агенту читання черзі (для публікацій транзакцій, які підтримують підписки, оновлювані за допомогою черг);
агенту злиття (для підписок на публікацію злиттям);
Прослуховувач реплікації SQL Server (replisapi.dll: для підписок на публікацію злиттям, синхронізуються за допомогою веб-синхронізації);
елементу управління ActiveX злиття SQL (для підписок на публікацію злиттям, синхронізуються за допомогою цього елемента управління).
Агент розповсюджувача і елемент управління ActiveX поширення не мають цього параметра, тому що вони не підключаються до видавця.
Зміни параметрів агента вступають в дію при наступному запуску агента. Якщо агент виконується в безперервному режимі, слід зупинити і перезапустити агент. Параметри можуть бути задані в профілях агента або з командного рядка. Додаткові відомості див. У розділі:
Рекомендується додати параметр -PublisherFailoverPartner в профіль агента, а потім вказати в профілі ім'я дзеркала. Наприклад, якщо налаштовується реплікація за допомогою збережених процедур:
Якщо активним є дзеркальний сервер:
якщо виникла помилка агента, ця помилка показується тільки в основному вузлі і не відображається в дзеркальному вузлі;
якщо основний сервер недоступний, то в основному і дзеркальному вузлах відображаються ідентичні списки публікацій. Спостереження повинно виконуватися тільки для публікацій на дзеркальному вузлі.
Якщо для адміністрування реплікації на дзеркалі використовуються збережені процедури або об'єкти RMO, то для випадків, коли вказується ім'я видавця, необхідно вказати ім'я екземпляра, на якому база даних активована для реплікації. Щоб визначити відповідне ім'я, скористайтеся функцією publishingservername.
У деяких випадках таких як sp_addpublication. @publisher параметр підтримується тільки для отлічнихSQL Server видавців; таким чином, не відноситься до SQL Server дзеркального відображення бази даних.
Для синхронізації підписки в середовища серед Management Studio після відпрацювання відмови необхідно синхронізувати підписки за запитом від передплатника і синхронізувати примусові підписки від активного видавця.
Поведінка реплікації, коли дзеркальне відображення видалено
У наступній таблиці описується поведінка агента читання журналу для різних режимів дзеркального відображення бази даних.
Поведінка агента читання журналу, коли дзеркальна база даних недоступна
Режим високого рівня захисту з автоматичною відпрацюванням відмови
Якщо дзеркало недоступно, агент читання журналу передає команди в базу даних розповсюджувача. При відпрацюванні відмови основна база даних не зможе переключитися на дзеркало, поки дзеркальна база даних не повернеться в режим «в мережі» і не отримає всі транзакції з основної бази даних.
Якщо дзеркало недоступно, основна база даних виконується без підтримки (т. Е. Без дзеркальної бази даних). Однак агент читання журналу реплицирует тільки ті транзакції, які записані в дзеркальну базу даних. Якщо служба включена примусово і дзеркальний сервер приймає роль основного, агент читання журналу почне працювати на дзеркалі і буде збирати на ньому нові транзакції.
Майте на увазі, що затримка реплікації збільшиться, якщо дзеркальна база даних відстає від основної бази даних в змінах.
Режим високої безпеки без автоматичної відпрацювання відмови
Гарантується, що всі зафіксовані транзакції будуть записані на диск дзеркального сервера. Однак агент читання журналу реплицирует тільки ті транзакції, які записані на дзеркалі. Якщо дзеркало недоступно, основний сервер забороняє подальшу активність в базі даних. Тому агент читання журналу не має транзакцій для реплікації.