Порівняльна характеристика різних методів розподілу даних

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

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

ленну ціну, відображену, як правило, затримкою операції і додатковим обсягом програмування Розподілені транзакції використовуються, коли обовязкове синхронізація в реальному часі вони досить поширені у фінансових рішеннях

■ Повязані сервери Повязані сервери аналогічні розподіленим транзакціях, проте доступ до повязаного сервера здійснюється в базі даних, а не в програмному коді Падіння продуктивності, обумовлене звязуванням серверів, не дозволяє масштабувати такі рішення Повязані сервери здійснюють доступ до більш широкого безлічі різноманітних джерел даних, ніж реплікація SQL Server Звичайно цей метод використовується для підключення до джерел даних, які не підтримуються реплікацією або вимагають прямого доступу із запитів

■ Тригери Можуть використовуватися для розповсюдження даних, однак найчастіше в межах локального сервера З ними повязані підвищення навантаження на ресурси сервера і зниження продуктивності Зазвичай тригери використовують для аудиту

■ Служба інтеграції (раніше відома як служба перетворення даних DTS) Служба інтеграції може поширювати дані, до того ж вона має досить багатий набір засобів перетворення даних у процесі їх переміщення з сервера джерела на сервер призначення Служба інтеграції може бути використана для поширення даних в набагато більш широке коло джерел даних, ніж може дозволити реплікація SQL Server Служба інтеграції не відслідковує окремі транзакції якщо ви вирішили її використовувати, значить, вам доведеться кожен раз повністю замінювати весь набір даних або самостійно створювати деякий механізм, що дозволяє визначати, які саме дані були змінені в джерелі для реплікації тільки їх підмножини Службу інте1раціі зазвичай використовують в пакетних процесах, що не накладають обмеження на затримку операцій

Ізоляція моментальних знімків (snapshot) була націлена на вирішення питань продуктивності та доступності, повязаних з певними недоліками SQL Server 2000 Використовуючи цю функцію, ви можете підвищити загальну продуктивність і полегшити користувачам отримання необхідних їм даних

■ Резервування / відновлення Всі перераховані вище варіанти використовуються для поширення окремих транзакцій резервування / відновлення повязане з поширенням бази даних в цілому Це рішення є єдино правильним, коли користувачеві потрібно скопіювати всю базу даних, до якої вони повинні ставитися як до доступною тільки для читання, так як при наступному відновленні архіву вона буде повністю заміщена новою копією Під час виконання відновлення з архіву користувачі повинні відключатися від бази даних До того ж не існує можливості перенесення роботи, виконаної на сервері-приймачі, на сервер-джерело Також не існує можливості поширювати тільки частина даних – ви можете мати справу тільки з базою даних в цілому

■ Доставка журналу Доставку журналу можна розглядати як поступове відновлення з резервної копії Спочатку на сервері призначення відновлюється повна резервна копія, після чого йдуть періодичні відновлення журналу транзакцій Журнали можуть відновлюватися по порядку або всі разом Під час відновлення користувачі повинні відключатися від бази-приймача Не існує можливості відновлення тільки фрагмента даних – як і в попередньому випадку, ви обмежені лише базою даних в цілому Доставка журналу не забезпечує такої маленької затримки, як реплікація, і не дозволяє відправляти на сервер

призначення тільки підмножина даних Також ви не маєте можливості маніпулювати даними під час їх передачі з сервера-джерела на сервер-приймач

Дзеркальне відображення даних в Microsoft SQL Server Введене у версії SQL Server 2005, дзеркальне відображення даних підтримує один і той же набір даних на двох серверах Цей механізм вимагає наявності третього сервера (званого свідком), який визначає, коли сервер-джерело переходить в автономний режим, після чого перенаправляє користувачів на сервер-приймач Дзеркальне відображення даних використовує послідовну доставку журналу Ця технологія добре зарекомендувала себе при роботі з базами даних середнього розміру, забезпечуючи при цьому відносно невисоку завантаження ресурсів

■ Кластеризація Вимагає спеціального апаратного оснащення і різних версій операційної системи Кластеризація припускає спільне використання вузлами баз даних, СУБД SQL Server і ресурсів Клієнти підключаються до віртуального сервера баз даних, який, у свою чергу, звертається за ресурсами до одного зч своїх вузлів Якщо основний вузол дає збій, віртуальний сервер перемикається на запасний вузол, і це практично не помітно клієнту Кластеризацію не можна розглядати як технологію розповсюдження даних – Швидше, це рішення забезпечення відмовостійкості і високої доступності даних Кластеризація може використовуватися для забезпечення відмовостійкості при реплікації вона як би поширює один сервер між кількома фізичними вузлами

■ Програмне дзеркальне відображення даних Ці продукти встановлюють драйвер файлової системи, який перехоплює дії над файлами та реплицирует їх на сервер призначення Ці програмні продукти споживають ресурси головного вузла (тобто сервера джерела) Вони забезпечують функціональність, аналогічну апаратному дзеркальному відображенню даних, проте з дещо більш низькою продуктивністю Прикладом програмного рішення забезпечення дзеркального відображення даних є продукт Double-Take

■ Апаратне дзеркальне відображення даних Апаратне дзеркальне відображення даних засноване на компонентах таких виробників, як Hitachi Data Systems, ЕМС і Veritas Це обладнання реплицирует зміни, що відбуваються на байтовому рівні, з одного дискового масиву в інший Ці рішення сильно задіють кешування, вони дорогі і складні У той же час вони незамінні, коли вимога доступності даних ставиться в главу кута

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

I Для перегляду метаданих обєктів бази, опублікованих у статтях Тополь-

ОУС гии реплікації, виберіть sysdm_repl_articles в динамічному представ-

* I * леніі управління

Реплікація дозволяє відображати підмножини таблиць, стовпців і рядків Також у ній можуть брати участь наступні обєкти:

таблиці, розбиті на розділи

■ схеми збережених процедур

■ уявлення, як прості, так і індексовані (в останньому випадку вони реалізуються або як індексовані подання, або як таблиці, що представляють їх)

■ користувача типи і функції

■ повнотекстові індекси

■ псевдоніми типів даних

■ обєкти схеми (обмеження, індекси, тригери, розширені властивості, зіставлення тощо)

■ інструкції DDL (такі як ALTER TABLE і тп)

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

Джерело: Нільсен, Пол Microsoft SQL Server 2005 Біблія користувача : Пер з англ – М: ООО ІД Вільямс , 2008 – 1232 с : Ил – Парал тит англ

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*