Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Внедряване на SQL Server AlwaysOn Availability Groups на Linux

В предишната статия обясних как можем да инсталираме Ubuntu 18.04 и SQL Server 2019 на виртуалните машини. Сега, преди да продължим по-нататък, нека преминем през конфигурацията.

Създадохме три виртуални машини и подробностите са следните:

Име на хост IP адрес Роля
LinuxSQL01 192.168.0.140 Основна реплика
LinuxSQL02 192.168.0.141 Синхронна вторична реплика
LinuxSQL03 192.168.0.142 Асинхронна вторична реплика

Актуализирайте хост файла.

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

Хост файлът се намира на /etc директория. Изпълнете командата по-долу, за да редактирате файла:

[email protected]:/# vim /etc/hosts

Във файла хост въведете имената на хостове и IP адресите на всички виртуални машини:

Запазете хост файла.

Изпълнете същите стъпки на всички виртуални машини.

Активиране на групите за наличност на SQL Server AlwaysOn

Преди да разположим AlwaysOn, трябва да активираме функцията за висока наличност в SQL Server.

В Windows Server 2016 тази опция може да бъде активирана от конфигурационния мениджър на SQL Server, но в платформата Linux трябва да го направим с команда bash.

Свържете се с LinuxSQL01 с помощта на Putty и изпълнете следната команда:

[email protected]:~# sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled  1

Рестартирайте услугите на SQL Server:

[email protected]:~# service mssql-server restart

Изпълнете горните стъпки на всички виртуални машини.

Създайте сертификатите за удостоверяване

За разлика от AlwaysOn на сървъра на Windows, внедряването на Linux не изисква контролер на домейн. За удостоверяване и комуникация между първични и вторични реплики, той използва сертификата.

Следният скрипт създава сертификат и главен ключ. След това архивира сертификата и го защитава с парола.

Свържете се с LinuxSQL01 и изпълнете следния скрипт:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'abcd!1234';
CREATE CERTIFICATE AG_Auth_Cert WITH SUBJECT = 'dbm';
BACKUP CERTIFICATE AG_Auth_Cert
   TO FILE = '/var/opt/mssql/data/ AG_Auth_Cert_backup.cer'
   WITH PRIVATE KEY (
           FILE = '/var/opt/mssql/data/ AG_Auth_Cert_backup.pvk',
           ENCRYPTION BY PASSWORD = 'abcd!1234'
       );

След като създадем сертификата и главния ключ, ние ги копираме във вторични реплики (LinuxSQL02 и LinuxSQL03), като изпълним командата по-долу.

Уверете се, че главният ключ и местоположението на сертификата са еднакви за всички реплики и имат разрешение за четене и запис.

/*Copy certificate and the key to LinuxSQL02*/

scp /var/opt/mssql/data/AG_Auth_Cert_backup.cer [email protected]:/var/opt/mssql/data/
scp /var/opt/mssql/data/AG_Auth_Cert_backup.pvk   [email protected]:/var/opt/mssql/data/

/*Copy certificate and the key to LinuxSQL03*/

scp /var/opt/mssql/data/AG_Auth_Cert_backup.cer   [email protected]:/var/opt/mssql/data/
scp /var/opt/mssql/data/AG_Auth_Cert_backup.pvk   [email protected]:/var/opt/mssql/data/

Изпълнете следната команда на вторични възли, за да предоставите разрешение за четене и запис на сертификата и частния ключ:

/*Grant read-write permission on certificate and key to [email protected]*/

[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.pvk
[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.cer

/*Grant read-write permission on certificate and key to [email protected]*/

[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.pvk
[email protected]:~# chmod 777 /var/opt/mssql/data/AG_Auth_Cert_backup.cer

След като се даде разрешение, ние създаваме сертификата и главния ключ, използвайки архива на сертификата и главния ключ, създаден на LinuxSQL01.

За да направите това, изпълнете следната команда и на двете вторични реплики:

CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'abcd!1234';
CREATE CERTIFICATE AG_Auth_Cert
    FROM FILE = '/var/opt/mssql/data/AG_Auth_Cert_backup.cer'
    WITH PRIVATE KEY (
    FILE = '/var/opt/mssql/data/AG_Auth_Cert_backup.pvk',
    DECRYPTION BY PASSWORD = 'abcd!1234'
            );

След като създадем сертификата и главния ключ, ще конфигурираме огледалните точки на базата данни.

Създайте огледални крайни точки

За да комуникира между първичните и вторичните реплики, SQL Server използва огледални крайни точки.

Крайната точка за огледално отразяване използва протокола TCP/IP за изпращане и получаване на съобщения от първични и вторични реплики и слуша на уникален TCP/IP порт.

Изпълнете следния скрипт, за да създадете крайна точка на първични и вторични възли:

/*Run this script on LinuxSQL01*/

CREATE ENDPOINT [AG_LinuxSQL01]
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (
	    ROLE = ALL,
	    AUTHENTICATION = CERTIFICATE AG_Auth_Cert,
		ENCRYPTION = REQUIRED ALGORITHM AES
		);
ALTER ENDPOINT [AG_LinuxSQL01] STATE = STARTED;

/*Run this script on LinuxSQL02*/

CREATE ENDPOINT [AG_LinuxSQL02]
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (
	    ROLE = ALL,
	    AUTHENTICATION = CERTIFICATE AG_Auth_Cert,
		ENCRYPTION = REQUIRED ALGORITHM AES
		);

ALTER ENDPOINT [AG_LinuxSQL02] STATE = STARTED;

/*Run this script on LinuxSQL03*/

CREATE ENDPOINT [AG_LinuxSQL03]
    AS TCP (LISTENER_PORT = 5022)
    FOR DATABASE_MIRRORING (
	    ROLE = ALL,
	    AUTHENTICATION = CERTIFICATE AG_Auth_Cert,
		ENCRYPTION = REQUIRED ALGORITHM AES
		);
ALTER ENDPOINT [AG_LinuxSQL03] STATE = STARTED;

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

Създаване на група за наличност

Ще конфигурираме AlwaysON с помощта на SQL Server Management Studio.

Първо го стартирайте и се свържете с LinuxSQL01 екземпляр, като използвате sa акредитивни писма. След като се свържете с екземпляра на SQL Server, щракнете с десния бутон върху Винаги при висока достъпност и изберете Помощника за нова група наличност .

Съветникът за групата наличност започва.

1. Въведение

ВВъведение екран, вижте списъка със задачи, които ще бъдат изпълнени от съветника на групата за наличност. Щракнете върху Напред.

2. Посочете опция за група за наличност

На екрана Указване на опция за група наличност посочете желаното име на групата за наличност и изберете ВЪНШНА от Тип клъстер падащо меню.

Също така поставете отметка за Откриване на здравето на ниво база данни квадратче за отметка. Той позволява разширената сесия на събитието за наличност на групово здраве.

3. Изберете бази данни

Можете да изберете базата данни, която да добавите към групата за наличност в Избор на бази данни екран. Забележка:Базата данни трябва да отговаря на следните предпоставки:

  1. Базата данни трябва да е в модела на ПЪЛНО възстановяване.
  2. Трябва да се създаде ПЪЛНО архивно копие на базата данни.

Възстанових резервно копие на WideWorldImportors база данни на първичната реплика. Базата данни е вПЪЛНА модел за възстановяване и е генерирано пълно архивиране.

Изберете WideWorldImportors база данни от списъка и щракнете върху Напред .

4. Посочете реплики

В Определете реплики екран, имаме няколко раздела за конфигуриране на различни опции. Нека ги прегледаме всички.

Раздел реплики

Тук указваме първичните и вторичните реплики, режима на наличност и режимите на отказ.

Използваме LinuxSQL01 като основна реплика. LinuxSQL02 и LinuxSQL03 са вторична реплика.

Режимът на наличност за LinuxSQL02 ще бъде Синхронно записване и за LinuxSQL03 ще бъде Асинхронен комит .

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

Раздел „Крайни точки“

Тук можем да видим списъка с реплики и техните огледални крайни точки със съответните номера на портове и имена:

Предпочитания за архивиране

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

Можете да изберете някоя от следните опции:

  1. Предпочитай вторично:Резервно копие ще бъде генерирано на вторичната реплика. Ако вторичната реплика не е налична, резервното копие ще бъде генерирано на първичната реплика.
  2. Само вторично:Всички резервни копия ще бъдат генерирани на вторичната реплика.
  3. Основно:Резервните копия ще бъдат генерирани на основната реплика.
  4. Всяка реплика:Архивът ще бъде генериран от всяка от репликите.

Ще използваме Предпочитам вторично опция:

Слушател

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

Изберете Статичен IP от Мрежов режим падащо меню.

За да добавите IP адреса за слушателя на групата наличност, щракнете върху Добавяне >Въведете IP адрес иSubnet Mask .

Маршрутиране само за четене

Тук можете да предоставите URL за маршрутизиране само за четене и Списък за маршрутизиране само за четене за първични и вторични реплики.

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

Сега да се върнем към основния процес, върху който работим.

5. Изберете първоначална синхронизация на данни

В Изберете първоначална синхронизация на данни екран, задайте вашите предпочитания за първоначално синхронизиране на данни. Подробности за всяка опция са предоставени на екрана на съветника и можете да изберете някоя от тях:

  1. Автоматично засяване.
  2. Пълно архивиране на база данни и регистрационни файлове.
  3. Само за присъединяване.
  4. Пропуснете първоначалното синхронизиране на данни.

Не съм създал WideWorldImportors база данни на LinuxSQL02 и LinuxSQL03 реплика, като изберете Автоматично зареждане опция. Той ще създаде базата данни на двете реплики и ще започне синхронизирането на данните. Щракнете върху Напред.

6. Валидиране и обобщение

На Валдиране екран, съветникът потвърждава всички конфигурации.

За да внедрите успешно групата за наличност Always On, трябва всички проверки да са успешни. Ако има някаква грешка, трябва да я отстраните.

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

Прегледайте подробностите още веднъж и кликнете върху Край – стартира процеса на внедряване.

Ако искате да генерирате скрипта на процеса на внедряване, щракнете върху Скрипт .

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

По този начин разполагането на групата за наличност AlwaysOn на SQL Server 2019 е завършено.

Резюме

Тази статия ни помага да разберем стъпка по стъпка процеса на внедряване на групата за достъпност на SQL Server AlwaysOn в Linux.

Следващата статия ще обясни как можем да конфигурираме слушателя на групата за наличност и да извършим ръчно преодоляване на отказ с помощта на SQL Server Management Studio. Останете на линия!


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Кога да използвате клъстерни или неклъстерни индекси в SQL Server

  2. Съвети за коригиране на фрагментацията на индекса на SQL Server

  3. Каква е целта на системната таблица master..spt_values ​​и какво е значението на нейните стойности?

  4. Преместване на системни бази данни в клъстера за отказване на SQL Server

  5. Има ли Entity Framework 7 база данни – първи POCO генератор?