Навіщо реплицировать дані

Адміністраторам може знадобитися реплікація даних з кількох причин

■ Підтримка відновлення даних при апаратних і програмних збоях

■ Вимоги додатків

■ Виграш в продуктивності

■ Поширення інформації

Підтримка відновлення даних при апаратних і програмних збоях

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

■ Локальні Ці збої повязані з відмовами програмних і апаратних засобів, діями некомпетентних користувачів та іншими ексцесами

■ Регіональні Ці збої повязані з глобальними руйнуваннями, викликаними землетрусами, повенями, атаками терористів та ін

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

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

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

Більшість фінансових установ використовують дзеркальне відображення даних на апаратному рівні При цьому вони використовують обладнання від таких виробників, як EMC, Hitachi або Veritas Ці рішення в більшій мірі масштабуються, ніж кластеризація Вони здатні забезпечити стійкість до відмов регіонального рівня і автоматичне відновлення Кластеризація обмежена відстанню між вузлами (зазвичай дозволяють отримати відгук від опитуваного вузла протягом 500 мілісекунд)

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

Дзеркальне відображення даних, запроваджене у S & L Server 2005, призначені-Ноеіікз ^ чено для вирішення проблем попередніх версій, повязаних із забезпеченням 2005 надійності зберігання інформації Використання цієї функції в значи

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

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

Для забезпечення відмовостійкості може використовуватися і реплікація Проте в даному випадку існують деякі особливості

■ Автоматичне відновлення неможливо

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

I Щоб переглянути метадані транзакцій, реплікованих в публікації,

S VS виберіть у динамічному поданні управління sysdm_repl_tranhash

■ При реплікації змінюються обєкти на сервері призначення, що іноді не застосовується при відновленні працездатності систем Наприклад, властивість ідентичності стовпця видаляється, первинні ключі замінюються унікальними індексами, властивість NOT FOR REPLICATION не використовується, а декларативна посилальна цілісність, так само як і деякі індекси сервера джерела, що не реплицируются

■ Системні обєкти не реплицируются

■ Зміни в первинних ключах сервера джерело не реплицируются

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

Вимоги додатків

Реплікація часто використовується, коли додатку потрібно консолідувати дані з одного або декількох серверів в центральне сховище Також під час переміщення між серверами дані можуть бути трансформовані Найчастіше адміністраторам баз даних доводиться працювати в умовах існування центрального офісу і декількох філій У цьому випадку йому доводиться консолідувати дані про продажі в центральне сховище, а також поширювати по філіях централізовану інформацію, таку як каталоги продукції Ще один приклад припускає наявність комівояжерів, які в денний час відвідують клієнтів, оформляють замовлення, а після повернення в офіс синхронізують інформацію з центральним сервером Класичним прикладом такої ситуації є служба доставки, яка використовує кишенькові компютери (з встановленою СУБД SQL Server Everywhere) і виконує синхронізацію з центральним сервером в точках призначення Реплікація може використовуватися для централізованої консолідації даних, для перенесення даних між серверами, для обміну даними між екземплярами SQL Server і продуктами інших виробників СУБД, такими як Oracle, Sybase та ін З версії SQL Server 2005 стала доступною реплікація баз даних Oracle в SQL Server Реплікація може використовуватися також і для синхронізації інформації в межах однієї бази даних

Виграш в продуктивності

Реплікацію часто використовують, коли необхідно перенести функцію звітності на окремий сервер, звільнивши головний На противагу іншим способам поширення даних (реплікації журналу і дзеркальному відображенню даних), реплікація дозволяє створити на сервері звітності повністю відмінні індекси і навіть таблиці, наповнивши їх все тими ж даними центрального сервера Ви можете також підвищити продуктивність операцій читання, репліціруя одні й ті ж дані в банк серверів Замість того щоб замикати тисячі користувачів на один сервер, можна обєднати в єдиний банк 10 серверів, знизивши навантаження на кожен з них до 100 користувачів Це дозволило б підвищити продуктивність операцій читання в 10 разів Ще одним прикладом підвищення продуктивності за допомогою реплікації є обєднання в глобальну мережу кількох офісів однієї організації Затримки, повязані з подібною організацією мереж, можуть уповільнити роботу додатків Незважаючи на те що використання серверів Citrix або служби терміналів ідеально підходить для подібних розподілених мереж, найчастіше більш ефективним є підхід з використанням серверів SQL Server у віддалених офісах і їх реплікації з центральним сервером При цьому додатки у віддалених офісах звертатимуться до локальних баз даних Зміни, що їх ними, будуть згодом реплікуються на центральний сервер Ще один цікавий підхід повязаний з реплікацією даних на робочі вузли, виконанням в них обчислень та подальшого реплікацією результатів назад, на центральний сервер Такий підхід дозволяє значною мірою виграти в продуктивності, так як обробка пакета розподіляється серед декількох робочих вузлів

Поширення даних

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

Джерело: Нільсен, Пол 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>

*

*