Инструменти с висока наличност в MS SQL Server

В тази статия ще разгледаме всички технологии на SQL Server, които могат да осигурят висока наличност на данни и поносимост на грешки за вашия SQL Server..

Резервните копия са добри, но когато сметката върви за минути, а понякога и секунди, ще ви помогне само излишък на данни и ясен план за отказ. SQL Server предоставя различни начини за внедряване на излишък на данни и висока наличност.

Съдържание:

  • Огледало на базата данни в SQL Server
  • Вход в SQL Server
  • Репликация в Microsoft SQL Server: Преглед на методите
  • Винаги в групи за наличност в SQL Server

Огледало на базата данни в SQL Server

  • Предлага се в издания: стандарт (само за синхронен режим), Enterprise, Web / express - само в режим на свидетели
  • Работи на ниво: бази данни
  • Версия на SQL Server: SQL Server 2005, SQL Server 2008
забележка. Огледало на базата данни е в режим на поддръжка и може да бъде премахнат в бъдещите версии на SQL Server, така че не се препоръчва използването на тази технология при версии, по-високи от SQL Server 2008.

Огледалото работи на ниво база данни (може да е все още на ниво обект) и осигурява автоматичен / ръчен преход между сървърите в случай на отказ. Резервната база във всеки от режимите на работа на огледалното огледало ще бъде в състояние на непрекъснато възстановяване, следователно няма да работи.

Огледалното огледало има 2 режима на работа: синхронен и асинхронен..

синхронен режим означава, че основният сървър и резервното копие са напълно синхронизирани. Синхронизацията се постига поради факта, че данните, които идват на основния сървър, незабавно се изпращат на резервния сървър. Резервният сървър записва данни в регистъра на транзакциите на диск възможно най-бързо. Веднага след като резервният сървър приключи с писането на данни, той изпраща сигнал до основния сървър, след което основният сървър записва данни на диск. В този режим времето на транзакцията се увеличава поради факта, че основният сървър трябва да изчака, докато данните бъдат записани на диск на резервния сървър, но при този подход вероятността от загуба на данни е минимална.

В синхронен режим е възможно да използвате сървъра Witness. Сървърът в режим на свидетели следи работата на огледалните сървъри и може да инициира отказ, т.е. сървърът в режим на готовност преминава в активно състояние.

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

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

В този режим транзакциите са по-бързи и работата на резервния сървър не се отразява на основната, но ако резервният сървър е възстановен като основен, съществува риск от загуба на данни, тъй като данните на сървърите не са синхронизирани.

Огледалото трябва да се използва само ако имате съвпадение за всички условия

  • SQL Server 2008 или SQL Server 2005
  • Ниска мрежова латентност между първичен сървър и готовност
  • Загубата на дори една транзакция е критична за вас

Ако вашият случай не отговаря на всички условия, помислете за други опции..

Вход в SQL Server

  • Предлага се в издания: Стандарт, Уеб, Предприятие
  • Работи на ниво: бази данни
  • Версия на SQL Server: SQL Server 2005 и по-нови версии

Технологията за изпращане на журнали ви позволява автоматично да изпращате резервни копия на дневниците на транзакциите от изходната база данни до една или повече бази данни на получатели и след това да ги възстановява в базите данни на получателя. По желание може да има трети сървър, който ще изпълнява ролята на услуга за мониторинг - да следи изпълнението на архивиране и възстановяване на регистрационни файлове.

Мониторинг и диагностика на SQL Server, обсъдени в отделна статия.

След настройване на доставката на дневника се създават работни места. Принципът на действие е следният:

  1. Първата задача е отговорна за архивирането на дневника на транзакциите на основния сървър
  2. Втората задача е отговорна за разпространението на архивиране към всички получатели сървъри
  3. Третата работа възстановява дневниците във всички бази данни на получатели. Възстановяването е достъпно в режим без възстановяване или в режим на готовност.

Това е по-проста технология по отношение на огледалните и Always On. Доставка на журнали трябва да се използва, когато:

  • Разликата в данните между основния сървър и целевите сървъри е приемлива. Стандартният график за изпълнение на задачите е на всеки 15 минути. Можете да поставите по-малко, но трябва да вземете предвид скоростта на предаване на данни по мрежата и времето за възстановяване на регистрационните файлове.
  • Искате да получите достъп до базите получатели за достъп за четене. Това е възможно, когато режимът на възстановяване е зададен в режим на готовност. Но имайте предвид, че можете да получите достъп до базата данни само между възстановяването на дневника.

Репликация в Microsoft SQL Server: Преглед на методите

  • Предлага се в издания: Стандартен и уеб - ограничен, Enterprise
  • Работи на ниво: Обект на база данни
  • Версия на SQL Server: SQL Server 2000 и по-нови версии
Вижте преглед на изданията и функциите за лицензиране на SQL Server..

Има различни видове репликация:

  • Транзакционна репликация
  • Транзакционната репликация с равностойни връзки
  • Репликация на моментна снимка
  • Обединяване на репликация

Има още 2 топологии, базирани на транзакционна репликация:

  • Двупосочна транзакционна репликация
  • Възобновяеми абонаменти за транзакционна репликация (Поддържана функция във версии на SQL Server 2012 до 2016 г.)

Репликацията може да се използва за различни цели, но се използва главно за разтоварване на OLTP сървъри с избрани заявки и при висока наличност. Въпреки че Microsoft не позиционира репликацията като средство за постигане на висока достъпност, тя може да изпълни тази роля..

Забележка: В модела за репликация на SQL Server има 3 типа сървъри:

  • издател (издател) - сървър, който публикува статии
  • разпределител (дистрибутор) - сървър, който разпространява статии на абонаментни сървъри
  • абонат (абонат) - сървърът, който получава разпространените статии

Промените, които се извършват в избрани обекти на издателя, се изпращат първо на дистрибутора, след което дистрибуторът изпраща тези промени на абонатите.

Помислете за 4 основни типа репликация

Транзакционна репликация

Този тип репликация се използва за репликация на данни в почти реално време, тоест данните за абонатите се появяват почти веднага, като се отчита времето на копиране на данни по мрежата.

Транзакции от издателя се изпращат на дистрибутора, дистрибуторът изпраща тези транзакции на абонати. Дистрибуторът може да изпраща данни до абонати незабавно или според определен график. Предприятията на абонатите, които участват в репликацията, трябва да се използват само за достъп само за четене, в противен случай данните ще станат непоследователни и ще възникне конфликт.

Реактивна репликация от равнопоставен тип

Peer-to-peer или peer-to-peer транзакционна репликация е подобна на нормалната транзакционна репликация, но може да работи с няколко сървъра наведнъж.

Репликацията между peer-to-peer може да се нарече репликация master-master (за нормална транзакционна репликация би била master-slave). Разгледайте схемата от документацията на Microsoft

Всеки екземпляр на SQL Server, който участва в партньорска репликация, може да обработва операции за четене и запис. Също така при този тип репликация се осигурява механизъм за разрешаване на конфликти, когато една и съща операция пристига на няколко сървъра едновременно, например заявка за актуализация. Но дори и като се има предвид този механизъм, не се препоръчва да се записват данни в няколко случая едновременно..

Този тип репликация може да се използва за балансиране на натоварването, включително операции за актуализиране / вмъкване / изтриване..

Репликация на моментна снимка

Това е специален тип репликация, който не проследява промените в данните на издателя, но според определен график създава моментна снимка и я изпраща на абонати (чрез дистрибутора).

Репликацията на моментната снимка не прилага последователно всички транзакции, както е при доставката на журнали и транзакционната репликация, но копира данни чрез bcp.

Този тип репликация си струва да се използва, когато:

  • Данните рядко се променят
  • Разрешена разлика в данните между издател и абонат
  • Голям обем промени за кратък период от време

Обединяване на репликация

Механизмът е подобен на транзакционната репликация между връстници, но има няколко важни разлики:

  • Репликацията на сливане може да има само един издател и няколко абонати, когато, както при партньорската репликация, всички инстанции са равни (те са както издатели, така и абонати
  • При репликация на сливане абонатите могат да получават различни данни, когато всички сървъри имат еднакви данни при партньорска репликация
  • Репликацията на сливане може да разреши конфликтите, равнопоставена - не
  • Peer-to-peer репликацията е достъпна само в изданието Enterprise

Трябва да се използва репликация на сливане, когато трябва да консолидирате данни..

Двунасочна транзакционна репликация и надградени абонаменти за транзакционна репликация

Двупосочна транзакция е топология, при която нормалната транзакционна репликация е конфигурирана да репликира едни и същи данни. Параметърът @loopback_detection в sp_addsubscription трябва да бъде зададен на TRUE

Абонамент за възобновяема транзакционна репликация е подобен на репликацията на сливане. Тази технология е доста остаряла доста бързо, тъй като практически не се използва и се замества от други видове репликации..

Винаги в групи за наличност в SQL Server

  • Предлага се в издания: стандарт (с ограничения), Предприятие (
  • Работи на ниво: бази данни
  • Версия на SQL Server: SQL Server 2012 и по-нови версии

В изданието на SQL Server 2012. се появиха групи „Always On“, което е алтернатива (макар и по-вероятно развитие) на технологията за огледално предаване на базата данни..

Групите винаги са на разположение Отказоустойчив клъстер на Windows Server, но като се започне от версията за 2017 г., стана възможно да се използва Винаги включен без WSFC. Винаги е включен е подобно на огледалното предаване на базата данни (синхронни и асинхронни режими), но може да има до 8 вторични реплики. Always On поддържа автоматичен отказ (т.е. когато първичен екземпляр от клъстер се срине, WSCF избира нова първична реплика и пренасочва заявки за запис към нея).

Всеки екземпляр в група за наличност може да бъде всеки първичен (главна) или вторичен (Средно). Вторичните реплики могат да бъдат или във само за четене, било в Няма възстановяване. Всеки екземпляр в група за наличност съдържа копия на базите данни на групата за наличност. Имайте предвид, че в синхронен режим скоростта на транзакциите ще зависи от "най-бавния" член на групата за наличност.

В основната настройка Always On е проста, след инсталирането на SQL Server всичко може да бъде конфигурирано с помощта на съветника (WSFC чрез щракването в Windows и самите групи за достъп чрез съветника в SSMS). Но с голям брой сървъри и сложна инфраструктура ще трябва да проучите добре документацията.

Препоръчва се да използвате Always On в същите ситуации при огледално огледало или ако имате нужда от балансиране на натоварването на избрани заявки. Също така се препоръчва да се правят резервни копия от вторични реплики, това е друго приложение на групи за наличност.

За повече информация за групите Винаги в групи за наличност в SQL Server вижте.

SQL Server предоставя голямо разнообразие от решения за наличност на данни. Ако имате Enterprise Edition и SQL Server 2012 (и по-нови), е по-добре да използвате Always On. Репликацията може да се използва за разтоварване на OLTP системи с избрани заявки и за частично съкращаване (въпреки че партньорската репликация се осъществява като пълно средство за излишък на данни). Доставка на журнали за транзакции и огледално огледало на базата данни може да се използва в по-стари версии на SQL Server или ако условията ви принудят да използвате тези технологии..

Имайте предвид, че всички горепосочени технологии за висока достъпност в SQL Server не заместват архивирането..