Реплікація SQL Server 2005, застосування, альтернативи
Реплікація SQL Server 2005, застосування, альтернативи
12.1. Навіщо потрібна реплікація
Реплікація формально визначається як процес синхронізації інформації різних джерелах даних. Найчастіше реплікація в SQL Server використовується у таких ситуаціях:
q щоб розповсюдити інформацію з одного сервера на кілька серверів. Наприклад, засобами реплікації можна з центрального офісу передавати у філії нові прайс-листи, курси валют тощо;
q для збирання інформації з кількох серверів на один сервер. Наприклад, за допомогою реплікації можна збирати та зводити воєдино звіти про операції, які були здійснені у філіях;
q для зняття навантаження з робочого сервера. Припустимо, якийсь сервер SQL Server 2005 використовується для звичайної OLTP-завдання, наприклад, для роботи із замовленнями, що надходять на підприємство. Ця ж інформація потрібна для створення звітів. При цьому навантаження, яке виникає під час створення звітів, може заважати користувачам працювати із замовленнями. У такій ситуації для створення звітів можна використовувати другий сервер, а дані для нього передавати за допомогою реплікації;
q підвищення відмовостійкості. Наприклад, можна встановити запасний сервер і через певні інтервали часу реплікувати на нього дані з робочого сервера. У разі виходу з ладу робочого сервера його можна буде швидко замінити запасним.
Зазначимо деякі важливі моменти, пов'язані з реплікацією.
Реплікацію найзручніше використовувати, коли дані між серверами синхронізуються з інтервалом від 15-30 хвилин до кількох днів. Якщо дані потрібно синхронізувати швидше, є сенс подумати про застосування розподілених транзакцій (або,можливо, про використання дзеркального відображення баз даних -див. розд.7.3). Якщо дані потрібно синхронізувати рідше, ніж раз на кілька днів, можливо, простіше буде використовувати резервні копії або пакети SSIS .
Реплікація зазвичай використовується тоді, коли потрібно передавати не всі зміни, які відбуваються на базі даних-джерела. Якщо вам потрібно забезпечувати повністю ідентичні копії баз даних, то варто подумати про застосування автоматичної доставки журналів(див. розд. 7.2)або дзеркального відображення баз даних(див. розд. 7.3).
Реплікація SQL Server досить складна для настроювання, адміністрування та діагностики проблем. Крім того, вона вимагає значної витрати системних ресурсів серверів та передачі по мережі великого обсягу інформації. Тому деякі розробники використовують альтернативні засоби реплікації, простіші, надійніші та ефективніші. Автору відомо кілька прикладів реалізації таких альтернативних систем реплікації.
Наприклад, розробники, які обслуговують базу даних Комітету фінансів мерії Санкт-Петербурга, зіткнулися з проблемами обміну даних. Комітет фінансів має безліч підрозділів у різних районах міста, які мають здійснювати платежі. У цьому дати кожному підрозділу канал зв'язку, достатній використання стандартних засобів реплікації SQL Server , було неможливо. Фактично більшість підрозділів могла використовувати для підключення до центрального офісу тільки модемні комутовані з'єднання з різною якістю ліній. Водночас наприкінці кожного дня інформація про всі проведені підрозділом платежі повинна була передаватися до головної бази даних.
Розробники вирішили відмовитися від стандартних коштівSQL Server реплікації і створили свою систему реплікації. Принцип знайденого рішення виявився дуже простим. Додаток було реалізовано таким чином, щоб усі зміни до бази даних могли вноситися тільки за допомогою збережених процедур. При цьому кожна з процедур, що зберігаються при запуску, заносила в спеціальну таблицю інформацію для протоколювання: своє ім'я, час запуску, інформацію про користувача, який її запустив, а також значення параметрів, які були їй передані. Наприкінці дня ця таблиця експортувалася до текстового файлу, який і передавався за модемом до центрального офісу. Потім у центральному офісі цей файл використовувався для того, щоб ще раз "прогнати" всі ці процедури із запротоколованими параметрами, але вже на головній базі даних. Така система виявилася менш вимогливою до ресурсів та пропускної спроможності мережі, більш надійною та простою, ніж стандартна система реплікації.
Автору зовсім не хотілося б справляти враження, що система реплікації SQL Server 2005 нікуди не годиться. Навпаки, у багатьох ситуаціях без неї обійтись дуже складно. Однак не слід забувати і про альтернативні можливості, які в багатьох випадках можуть виявитися кращими.