Однорангова реплікація транзакцій, Microsoft Docs

Однорангова реплікація підтримує масштабовані та відмовостійкі рішення, зберігаючи копії даних на декількох екземплярах сервера, які також називаються вузлами. p align="justify"> Однорангова реплікація, заснована на реплікації транзакцій, поширює узгоджені на рівні транзакцій зміни майже в реальному часі. Це дозволяє програмам, для яких потрібна масштабованість операцій читання, розподіляти клієнтські операції читання на кілька вузлів. Оскільки дані зберігаються на вузлах майже в режимі реального часу, однорангова реплікація забезпечує надмірність даних, що підвищує доступність даних.

Розглянемо веб-додаток. У цьому випадку отримати вигоду з одноранговій реплікації можна такими способами.

Запити до каталогів та інші операції з читання розподіляються на кількох вузлах. Тим самим підвищується продуктивність та зберігається узгодженість.

Якщо один із вузлів у системі виходить з ладу, рівень програми може перенаправити операції запису на інший вузол. Це дозволяє зберегти доступність даних.

Якщо вузлу потрібно обслуговування або вся система потребує оновлення, кожен вузол можна перевести в режим "поза мережею", а потім знову додати до системи, не торкаючись доступності програми.

Хоча однорангова реплікація дозволяє масштабувати операції читання, продуктивність операцій запису для топології така сама, як одного вузла. Це пояснюється тим, що зрештою всі операції вставки, оновлення та видалення поширюються на всі вузли. Застосована до цього вузла зміна розпізнається реплікацією, що запобігає виконання змін на вузлах більше одного разу. Рекомендовано виконувати операції запису для кожного рядкатільки на одному вузлі з таких причин.

Якщо рядок змінюється на кількох вузлах, це може спричинити конфлікт або навіть втрату оновлення, коли цей рядок передається на інші вузли.

При реплікації змін існує певна затримка. Для додатків, яким потрібно негайно відстежувати останні зміни, рівномірний розподіл динамічного завантаження може бути проблематичним.

Однорангова реплікація SQL Server 2012 надає можливість включити виявлення конфліктів у всій одноранговій топології. Ця можливість допомагає уникнути проблем, які викликаються невиявленими конфліктами, у тому числі неприпустимою поведінкою програми та втраченими оновленнями. При включеному виявленні конфліктів конфліктуюча зміна за умовчанням сприймається як критична помилка, що викликає збій агента розповсюджувача. У разі конфлікту топологія залишається у неузгодженому стані, поки конфлікт не буде вирішено вручну, а дані узгоджені у всій топології. Для отримання додаткових відомостей див. розділ Виявлення конфліктів в одноранговій реплікації.

Примітка

Щоб уникнути можливої ​​неузгодженості даних, переконайтеся, що в одноранговій топології відсутні конфлікти, навіть якщо виявлено конфлікти. Щоб операції запису виконувались лише на одному вузлі, програми, які отримують доступ до даних та змінюють їх, повинні секціонувати операції вставки, оновлення та видалення. Таке секціонування забезпечує той факт, що зміни конкретного рядка на одному вузлі синхронізуються з рештою вузлів у топології, перш ніж цей рядок буде змінено іншим вузлом. Якщо програма потребує ускладненого виявлення конфліктів, використовуйте реплікацію злиттям.Для отримання додаткових відомостей див. розділ Реплікація злиттям та Виявлення та вирішення конфліктів реплікації злиттям.

Однорангові топології

Типові способи використання однорангової реплікації проілюстровані такими сценаріями.

Топологія з двома базами даних, що беруть участь.

транзакцій

На обох наведених вище малюнках показані дві бази даних, що беруть участь, і користувальницький трафік, спрямований до баз даних через сервер додатків. Таку конфігурацію можна використовувати для різних програм — від веб-сайтів до програм робочих груп. Це дозволяє отримати такі переваги.

Покращена продуктивність операції читання, оскільки читання розподілено на два сервери.

Вища доступність за необхідності обслуговування або у разі збою одного з вузлів.

На обох ілюстраціях операція читання між базами даних, що беруть участь, збалансована, але оновлення обробляються різними способами:

Зліва операції оновлення секціонуються між двома серверами. Якщо база даних містить каталог продукції, можна, наприклад, створити власний додаток, що направляє оновлення назв продуктів, що починаються з літер від «А» до «М», на вузолА, а оновлення продуктів, що починаються з літер від "Н" до "Я" - на вузолБ. Потім поновлення реплікуються на інший вузол.

Праворуч всі оновлення скеровуються на вузолВ. З вузла "В" оновлення реплікуються на вузолA. Якщо вузолB знаходиться в режимі "поза мережею" (наприклад, на обслуговуванні), сервер додатків може спрямовувати всі операції на вузолA. Коли вузолB переходить у режим «в мережі», на нього можна спрямовувати оновлення, і сервер додатків може перемістити всі оновлення назад на вузолB або зберегтиїх передачу на вузолA.

Однорангова реплікація підтримує будь-який із цих підходів, але основний приклад оновлення, показаний праворуч, також часто використовується для стандартної реплікації транзакцій.

Топології з трьома або більше базами даних, що беруть участь.

microsoft

На попередньому малюнку показано три бази даних, що беруть участь, що надають дані для глобальної організації з підтримки програмного забезпечення з офісами в Лос-Анджелесі, Лондоні та Тайбеї. Інженери служби підтримки в усіх офісах приймають дзвінки клієнтів, вводять та оновлюють інформацію про кожен дзвінок. Часові пояси трьох офісів відрізняються на вісім годин, тому робочий годинник не перекривається. Коли закривається офіс у Тайбеї, відкривається офіс у Лондоні. Якщо дзвінок знаходиться на стадії обробки під час закриття одного офісу, він передається представнику в інший відкритий офіс.

У кожному офісі є база даних та сервер додатків, які використовуються інженерами служби підтримки для введення та оновлення відомостей про дзвінки клієнтів. Топологія секціонується за часом. Тому оновлення відбуваються на вузлі, відкритому для бізнесу в даний час, а потім передаються в інші бази даних, що беруть участь. Ця топологія забезпечує такі переваги:

Незалежність без ізоляції: У кожному офісі можна незалежно додавати, оновлювати або видаляти дані, при цьому також можна використовувати дані спільно, оскільки вони реплікуються на всі бази даних, що беруть участь.

Більш висока доступність у разі збою або під час обслуговування однієї або кількох баз даних, що беруть участь.

microsoft

На попередньому малюнку показано додавання вузла до топології з трьома вузлами. У цьому сценарії вузол можна додати з таких причин.

Оскільки інший офіс відкритий.

Щоб забезпечити вищу доступність для підтримки обслуговування або підвищення відмовостійкості при збої диска або інших серйозних несправностей.

Зверніть увагу, що в обох трьох-і чотиризлових топологія всі бази даних публікують свої дані і підписуються на дані з інших баз даних. Цим забезпечується максимальна доступність під час проведення обслуговування чи разі збою однією чи кількох вузлах. У міру додавання вузлів необхідно дотримуватися балансу між доступністю і масштабованістю з одного боку і продуктивністю, складністю розгортання та адміністрування з іншого боку.

Налаштування однорангової реплікації

Налаштування топології однорангової реплікації дуже схоже на налаштування серії стандартних публікацій та передплат транзакцій. У наступних розділах показаний процес налаштування системи з трьох вузлів, аналогічної конфігурації з одноранговій топологією, яка представлена ​​вище малюнку зліва.

Питання використання однорангової реплікації

У цьому розділі наведено відомості та рекомендації щодо використання однорангової реплікації.

Загальні рекомендації

Однорангова реплікація доступна лише у Microsoft SQL Server 2012 Enterprise.

Усі бази даних, що беруть участь у одноранговій реплікації, повинні містити ідентичні схеми та дані.

Імена об'єктів, схеми об'єктів та публікацій мають бути ідентичними.

Фільтрування рядків та стовпців не підтримується.

Рекомендується на кожному вузлі використовувати власну базу даних розповсюджувача. Це унеможливить утворення однієї точки збою.

Публікація має бути доступною для однорангової реплікації до створення підписок.

Підписки мають бути ініціалізовані за допомогоюрезервного копіювання або параметратільки підтримка реплікації. Щоб отримати додаткові відомості, див. Ініціалізація підписки на публікацію транзакцій без моментального знімка.

Не рекомендується використовувати стовпці ідентифікаторів. При використанні ідентифікаторів необхідно вручну керувати діапазонами, призначеними таблицям, у кожній базі даних, що бере участь. Для отримання додаткових відомостей див. розділ «Призначення діапазонів для ручного керування діапазонами ідентифікаторів» у розділі Реплікація стовпців ідентифікаторів.

Функціональні обмеження

p align="justify"> Однорангова реплікація підтримує ключові властивості реплікації транзакцій, але не підтримує наступні параметри.

Ініціація та повторна ініціація за допомогою миттєвих знімків.

Фільтрування рядків та стовпців.

Стовпці позначок часу.

Видавці та передплатники, відмінні від SQL Server.

Негайно оновлювані підписки та підписки, що оновлюються за допомогою черг.

Підписки, що приєднуються і підписки, що трансформуються. (Обидва параметри застаріли, починаючи з SQL Server 2005).

Загальні агенти розповсюджувача.

Параметр агента розповсюджувача-SubscriptionStreams та параметр агента читання журналу-MaxCmdsInTran.

Властивості статті **@destination\_owner** та **@destination\_table**.

Наступні характеристики мають особливі угоди.

Властивість статті **@replicate\_ddl** повинна мати значення true, властивість **@identityrangemanagementoption** — значення manual, а властивість **@status** — значення24.

Властивості статті **@ins\_cmd**, **@del\_cmd** та **@upd\_cmd** не можуть бути присвоєні значення SQL.

Властивість підписки **@sync\_type** має бути встановлена ​​у значення none або automatic.

Запитанняобслуговування

Додавання вузла SQL Server 2005 до існуючої топології

Відновлення вузла із резервної копії

Якщо до однорангової топології додано новий вузол, відновлення необхідно виконувати лише з резервних копій, створених після додавання нового вузла.

Повторно ініціалізувати підписки в одноранговій топології не можна. Якщо потрібно переконатися, що вузол має нову копію даних, відновіть резервну копію на цьому вузлі.