SQL Server ни предоставя редица решения за висока наличност и възстановяване след бедствие, които помагат да направим данните, които обслужват критичните системи, достъпни за възможно най-дълго време с възможно най-малко престой. Тези решения за висока наличност и аварийно възстановяване, предоставени от Microsoft SQL Server, се обсъждат в статията в дневника на транзакциите на SQL Server и решенията за висока наличност.
В тази статия ще покажем как да настроите и конфигурирате сайт на Availability Group и да го конфигурирате така, че да отговаря на изискванията на компанията. Но нека започнем с кратък преглед на функцията Always-on Availability Group, за да се запознаем с нея.
Общ преглед
SQL Server Always-on Availability Group, въведена във версията на SQL Server 2012, е решение за висока наличност и възстановяване след бедствие на ниво предприятие, което е изградено върху функцията Windows Server Failover Clustering, в която една или няколко бази данни могат да действат като една група за достъпност и се провали като единична единица.
Групата за наличност е контейнер за набор от бази данни, които се хостват в една първична реплика, съдържа копието за четене и запис на базите данни и синхронизирано с до осем вторични реплики, съдържа копие само за четене на тези бази данни.
Като алтернатива за функцията за огледално копиране на база данни, Always on Availability Group може да се използва за намаляване на натоварването на първичния екземпляр чрез конфигуриране на вторичните реплики да обработват работното натоварване само за четене и операциите за архивиране. По този начин Always-on Availability Group може да се използва за подобряване на наличността на базите данни и подобряване на използването на ресурсите на SQL Server за всички реплики.
Процесът на синхронизация между репликите на групата за наличност може да се извърши в един от двата поддържани режима на наличност:
- Режим на синхронно записване :В този режим на наличност, първичната реплика ще изчака вторичните реплики, до две синхронни вторични реплики, да потвърдят записването на регистрационния файл в техния регистрационен файл на транзакциите на базата данни, преди да го запише в първичната реплика. Този режим на наличност увеличава нивото на наличност на данни над цената на забавяне на транзакцията.
- Режим на асинхронно записване :Този режим на наличност се използва главно за синхронизиране с репликите за възстановяване при бедствия, които са разпределени в отдалечени центрове за данни, където първичната реплика няма да чака вторичните реплики, за да потвърди втвърдяването на дневника за извършване на транзакция на първичната страна, осигурявайки по-малко данни ниво на наличност и по-малко забавяне на транзакциите.
Процесът за преодоляване на сривове на Групи за наличност, при който основната роля ще бъде променена между репликите, може да се извърши ръчно от администратора на базата данни или автоматично от самия SQL Server в случай на повреда на ниво сървър, като се има предвид, че това отказът няма да се случи в случай на проблеми на ниво база данни, като например повреда на базата данни.
За всяка група за наличност може да се създаде име на сървър, за да се осигури на клиентите възможността да се свързват директно с основната реплика или репликите само за четене, без да се извикват основните имена и роли на екземпляри на SQL Server в рамките на групата за наличност. Това име на сървъра се нарича Слушател на групата наличност .
Демонстрационен сценарий
След като предоставихме кратко въведение за функцията Always-on Availability Group, ние сме готови да настроим група за наличност и да я конфигурираме правилно. В тази демонстрация ще създадем група за наличност, която да репликира базата данни AdventureWorks2017 между две инстанции на SQL Server; SQL1 и SQL2, с вече инсталиран SQL Server 2017 на тези сървъри.
За тестови и демонстрационни цели услугите на SQL Server както в SQL1, така и в SQL2 екземпляри се изпълняват под акаунта на услугата ay\sqladmin, който има подходящи разрешения за тези екземпляри на SQL Server.
Първи стъпки
Както бе споменато в прегледа на тази статия, функцията Always-on Availability Group е изградена върху функцията Windows Server Failover Cluster. Така че трябва да създадем сайт за клъстериране при отказ, върху който ще дефинираме сайта на групата за наличност.
Създаване на отказен клъстер
На първо място, трябва да се уверим, че функцията Failover Clustering е инсталирана на всички реплики, които ще участват в сайта на Availability Group. Това може да стане, като отворите таблото за управление на мениджъра на сървъра на всяка реплика и изберете опцията Добавяне на роли и функции от менюто Управление, след което проверете и инсталирайте Failover Clustering функция от тези съветници, както е показано по-долу:
След като инсталирате функцията Failover Clustering, отворете Failover Cluster Manager прозорец в една от репликите, използвайки оторизиран акаунт на локален администратор с привилегии на администратор на домейн, които му позволяват да създаде това име на клъстер в активната директория, и щракнете върху Създаване на клъстер опция, както е по-долу:
От отворения Съветник за създаване на клъстер , проверете предоставените инструкции в Преди да започнете прозорец и щракнете върху Напред за да продължите:
На следващата страница посочете името или IP на репликите, които ще участват в групата за наличност, след което щракнете върху Next, за да продължите:
След това трябва да посочите дали да стартирате теста за валидиране на клъстер, за да потвърдите, че ресурсите, налични на тези сървъри, са съвместими с функцията за отказоустойчив клъстер, преди да създадете отказен клъстер или не. Винаги се препоръчва да извършите теста за валидиране на тази стъпка, преди да се опитате да създадете сайт за отказоустойчив клъстер.
Това ще ви насочи към Помощника за проверка на конфигурацията . На първата страница на съветника за валидиране проверете инструкциите на съветника и щракнете върху Напред за да продължите:
След това трябва да посочите дали да стартирате всички валидации на отказоустойчив клъстер, което е препоръчителната опция, или да изберете конкретни по-бързи тестове. В тази демонстрация ще преминем към препоръчаната от Microsoft опция и ще извършим всички тестове за валидиране, след което щракнете върху Напред за да продължите:
И можете да прегледате тестовете за валидиране, които ще бъдат извършени в този съветник за валидиране, и да потвърдите, за да продължите, като щракнете върху Напред , както следва:
Когато процесът на валидиране приключи, можете да щракнете върху бутона Преглед на отчета, за да прегледате резултата от валидиращия тест, или да го експортирате към друг инженер, за да отстраните всеки проблем, или щракнете върху Готово директно, за да започнете процеса на създаване на клъстер, както е по-долу:
Засега проверихме дали нашите сървъри са съвместими с изискванията за функцията за отказоустойчив клъстер и можем да продължим да създаваме сайта за отказоустойчив клъстер. В Точка за достъп за администриране на клъстера прозорец, посочете уникално име и IP адрес за отказоустойчивия клъстер, след което щракнете върху Напред за да продължите:
След това прегледайте предоставените от вас настройки за създаване на клъстер и не забравяйте да премахнете отметката до Добавяне на цялото отговарящо на условията хранилище към клъстера , тъй като функцията Always on Availability Group работи, използвайки специално място за съхранение за всеки сървър и НЕ споделено хранилище. Ако сте добре с настройките, щракнете върху Напред за да продължите:
След като сайтът за отказоустойчив клъстер е създаден успешно, съветникът ще ви уведоми със съобщение, че сайтът за отказен клъстер е създаден напълно, както е по-долу:
Можете да проверите дали сайтът за отказен клъстер е създаден успешно, като отворите Мениджъра на отказния клъстер, който ще ви покаже създадения сайт на клъстер и всички компоненти на този клъстер, както е показано по-долу:
За да поддържате сайта за отказоустойчив клъстер в най-добрия режим на наличност, трябва да конфигурирате кворума на клъстера, който контролира кога да поддържа отказния клъстер онлайн или да го включи офлайн въз основа на гласовете на възлите и ресурсите. За да конфигурирате кворума на клъстера, щракнете с десния бутон върху името на клъстера под мениджъра на клъстер за отказване и изберете Конфигуриране на настройките на кворума на клъстер опция от Още действия меню, както е по-долу. За подробна информация относно настройките на кворума, които отговарят на функцията Always on Availability Group, проверете режимите на кворума за отказ на клъстер на Windows в Групи за винаги на разположение на SQL Server:
Активиране на функцията Always on Availability Group Feature
След като създадем клъстера за отказ, върху който ще бъде създадена групата за наличност, трябва да активираме функцията Always-on Availability Group и да я свържем със сайта на отказния клъстер, който ще се използва.
За да активирате функцията Always-on Availability Group, отворете SQL Server Configuration Manager -> SQL Server Services, след което щракнете с десния бутон върху услугата SQL Server и изберете опцията Properties. От прозореца със свойства на SQL Server Service преминете към Винаги включена наличност страница и поставете отметка в „Активиране на групите за винаги при наличност ” под автоматично откритото име на отказния клъстер, както е показано по-долу:
Имайте предвид, че тази промяна трябва да се извърши на всички реплики, които ще участват в групата за достъпност и ще влезе в сила след рестартиране на услугата SQL Server, както е посочено по-долу:
Създаване на нова група за винаги включена наличност
След като активираме функцията Always-on Availability Group, ще започнем да създаваме новата Availability Group, като разширим възела Always-on High Availability под SSMS Object Explorer, след което щракнете с десния бутон върху възела Availability Groups и изберете New Съветник за група за наличност , както е показано по-долу:
Първата страница в Съветника за нова група наличност е страницата Въведение, в която можете да намерите кратко описание на стъпките, които ще бъдат извършени от този съветник за създаване на нова група за наличност. Прегледайте предоставеното обобщение, след което щракнете върху Напред за да продължите:
В Посочете опциите на групата за наличност прозорец, трябва да посочите името на групата за наличност, типа на клъстера въз основа на версията на SQL Server и операционната система, използвана в репликите, където можете да избирате от Клъстер за отказване на Windows Server , не-Windows ВЪНШЕН клъстер или НЯМА ако не се използва клъстер.
Тази страница ви позволява също да активирате Откриването на здравето на ниво база данни опция, която проверява кога дадена база данни вече не е в онлайн състояние и извършва автоматично превключване при отказ на групата за наличност и активира разпределените транзакции в групи за наличност за всяка база данни, както е показано по-долу:
След това трябва да изберете базата данни, които ще участват в тази група за наличност. Помощникът ще провери предварителните заявки за базата данни, за да бъде добавен към групата Наличност, включително модела за пълно възстановяване на базата данни и че е взето пълно архивиране от тази база данни, преди да я добави. След като изпълните изискванията за включването на базата(ите), опреснете списъка с бази данни, проверете базата данни и след това щракнете върху Напред за да продължите:
На следващата страница под Реплика раздел, трябва да добавите всички реплики на SQL Server, които ще участват в тази група за наличност и ще хоствате копие от включените бази данни. След като добавите репликите, можете да изберете до три екземпляра, които да бъдат конфигурирани с режима на наличност на синхронно записване и да разрешите автоматичното превключване между тези реплики и останалите реплики, които ще бъдат конфигурирани с режим на асинхронно записване. Можете също така да решите дали да конфигурирате всяка реплика като четлива вторична за връзки само за четене или реплика с намерение за четене, за да обработва натоварването само за четене, насочено автоматично от слушателя, както е показано по-долу:
В раздела Крайни точки проверете настройките на крайните точки на връзката, които ще се използват за комуникация между репликите, където трябва да се уверите, че използвания TCP порт е активиран в правилата на защитната стена на всички реплики и че предоставеният акаунт за услуга има Разрешение за свързване на крайната точка на репликите, както е по-долу:
В раздела Предпочитания за архивиране трябва да посочите местоположението, където ще се изпълняват заданията за архивиране в групата за наличност. Позволява ви да извършвате автоматично архивиране от вторичната реплика като предпочитана опция, вторичната като задължителна, основната като задължителна или във всяка реплика. Въз основа на тази опция можете да създадете план за поддръжка, за да направите резервно копие от базите данни, участващи в групата за наличност, както е посочено по-долу:
От същия прозорец можете също да дефинирате настройките на слушателя на групата за наличност под страницата Слушател или да продължите, без да създавате слушателя за момента и да извършите създаването по-късно. В тази демонстрация ще конфигурираме слушателя след създаване на групата за достъпност, както е показано по-долу:
Също така, можете да използвате страницата за маршрутизиране само за четене, за да дефинирате списъка с маршрути само за четене, който се използва за контролиране на работното натоварване само за четене в рамките на вторичните. За повече информация вижте Как да конфигурирате маршрутизиране само за четене за група за наличност в SQL Server 2016:
На следващата страница трябва да посочите механизма, който ще се използва за първоначалния процес на синхронизиране на данни между първичните и вторичните реплики, с възможност за извършване на синхронизацията автоматично или ръчно чрез присъединяване на вторичния към групата за наличност и синхронизиране на базите данни по-късно ръчно.
Има два метода за автоматична синхронизация, налични в този съветник, като първият е посочване на споделена папка за временно копиране на пълните архиви на регистрационните файлове и регистрационните файлове и извършване на възстановяването автоматично, което ще използваме тук в тази демонстрация, или за използване на метод за директно засаждане без вземане на резервно копие, както е описано в SQL Server 2016 Always On Availability Group с Direct Seding:
За да използвате Пълна база данни и архивиране на регистрационни файлове метод, трябва да създадем споделена папка и да предоставим акаунтите на услугите на SQL Server за разрешенията за четене и запис на репликите в тази папка, както е показано по-долу:
След това съветникът за нова група за наличност ще извърши проверка за валидиране за цялата конфигурация, преди да продължи с процеса на създаване на група за наличност. Ако има някаква грешка, можете да я коригирате директно, след което опреснете страницата и щракнете върху Напред за да продължите:
На последния етап съветникът ще ви предостави обобщение за всички конфигурации на съветника, за да го прегледате, след което щракнете върху Край за да започнете да създавате групата за наличност, както е по-долу:
Когато съветникът приключи, той ще ви покаже резултата от всяка стъпка и дали има някаква грешка. В противен случай ще се покаже съобщение, че групата за наличност е създадена успешно без проблем, както е показано по-долу:
Можете също така да потвърдите, че групата Always on Availability е създадена и конфигурирана успешно с помощта на SSMS Object Explorer, като проверите дали участващите бази данни са в синхронизирано състояние във всички реплики и че репликите и базите данни са онлайн под Always-on Възел с висока наличност, както е показано по-долу:
Можете също да се свържете с основната реплика с основната дума до името на групата за наличност и да проверите страницата със свойства на групата наличност, с възможността да изпълнявате същите задачи, които изпълнихме в съветника за нова група за наличност, като например добавяне на нови реплики , добавяне на нова база данни, промяна на конфигурацията на всяка реплика, промяна на предпочитанията за архивиране и дефиниране на списък с маршрути само за четене, както е показано по-долу:
Създаване на слушател на групата за винаги включена наличност
Последната стъпка в конфигурирането на групата за наличност е създаването на слушателя на групата за наличност, който ще се използва при свързване към първичните и вторичните реплики, без да се посочва името на репликата.
За да създадете слушател на групата наличност, щракнете с десния бутон върху възела Availability Group Listener под създадения възел на групата наличност и изберете Add Listener опция. От отворения Нов слушател на групата наличност прозорец, посочете името на този слушател, TCP порта, който ще се използва за свързване с този слушател и статичния IP адрес, който ще бъде присвоен на слушателя, след което щракнете върху OK да го създаде. Когато слушателят бъде създаден успешно, прозорецът ще бъде затворен автоматично и името на слушателя ще се покаже под възела Listener, както е показано по-долу:
За да се свържете с групата за наличност, използвайки името на слушателя, посочете името или IP адреса на слушателя с номера на TCP порта в Connect to Server и той ще се свърже директно с основния възел, както е показано по-долу:
Тестов процес на отказ
След като тестваме връзката към слушателя на Availability Group и репликите, трябва да извършим важен тест за преодоляването на отказ, за да се уверим, че основната роля ще бъде преместена между репликите без проблем и че базите данни ще бъдат достъпни и в синхронизираното състояние след отказ.
За да извършите ръчно преминаване при отказ, щракнете с десния бутон върху името на групата за наличност и изберете Failover опция, както е по-долу:
Първата страница в групата за наличност при отказ wizard е страницата Въведение, която предоставя обобщение на действията, които могат да бъдат извършени в този съветник. Прегледайте въведението и щракнете върху Напред за да продължите:
На следващата страница изберете кой възел ще действа като нова основна реплика, като се уверите, че няма загуба на данни, когато се извърши операцията за преодоляване на срив, след което щракнете върху Напред, за да продължите:
След това трябва да се свържете с новата основна реплика, която изберете, за да сте сигурни, че тази реплика е онлайн и достъпна, както е показано по-долу:
След това прегледайте избора си в съветника за отказване на страницата с обобщение и щракнете върху Готово, за да стартирате процеса на отказ:
Когато преминаването при отказ приключи, прегледайте страницата с резултати, за да се уверите, че няма проблем по време на процеса на отказ, както е посочено по-долу:
От SSMS Object Explorer ролята на SQL1 репликата ще бъде променена директно на Secondary, както е показано по-долу:
В тази статия описахме подробно стъпките, които трябва да се извършат, за да се подготвите за създаването на сайта на групата за наличност и как да създадете и конфигурирате сайта на групата за винаги включена наличност. В следващата статия ще видим как да отстраните проблемите, с които може да се сблъскате със съществуващ сайт на групата за наличност. Останете на линия.