sql >> Databáze >  >> RDS >> Sqlserver

Nasaďte skupiny dostupnosti SQL Server AlwaysOn v systému Linux

V předchozím článku jsem vysvětlil, jak bychom mohli nainstalovat Ubuntu 18.04 a SQL Server 2019 na virtuální počítače. Nyní, než budeme pokračovat, projdeme si konfiguraci.

Vytvořili jsme tři virtuální stroje a podrobnosti jsou následující:

Název hostitele IP adresa Role
LinuxSQL01 192.168.0.140 Primární replika
LinuxSQL02 192.168.0.141 Synchronní sekundární replika
LinuxSQL03 192.168.0.142 Asynchronní sekundární replika

Aktualizujte soubor hostitele.

V konfiguraci nepoužíváme doménový server. Proto, abychom přeložili název hostitele, musíme přidat položku do souboru hostitele.

Hostitelský soubor je umístěn na /etc adresář. Spusťte níže uvedený příkaz pro úpravu souboru:

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

Do souboru hostitele zadejte názvy hostitelů a adresy IP všech virtuálních počítačů:

Uložte soubor hostitele.

Proveďte stejné kroky na všech virtuálních počítačích.

Povolit skupiny dostupnosti SQL Server AlwaysOn

Před nasazením AlwaysOn musíme povolit funkci vysoké dostupnosti v SQL Server.

V systému Windows Server 2016 lze tuto možnost povolit ze správce konfigurace serveru SQL, ale na platformě Linux to musíme provést pomocí příkazu bash.

Připojte se k LinuxSQL01 pomocí Putty a spusťte následující příkaz:

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

Restartujte služby SQL Server:

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

Výše uvedené kroky proveďte na všech virtuálních počítačích.

Vytvořte certifikáty pro ověření

Na rozdíl od AlwaysOn na serveru Windows nevyžaduje nasazení Linuxu řadič domény. Pro autentizaci a komunikaci mezi primární a sekundární replikou používá certifikát.

Následující skript vytvoří certifikát a hlavní klíč. Poté zazálohuje certifikát a zabezpečí jej heslem.

Připojte se k LinuxSQL01 a spusťte následující skript:

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'
       );

Jakmile vytvoříme certifikát a hlavní klíč, zkopírujeme je do sekundárních replik (LinuxSQL02 a LinuxSQL03) spuštěním příkazu níže.

Ujistěte se, že umístění hlavního klíče a certifikátu je u všech replik stejné a mají oprávnění pro čtení a zápis.

/*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/

Provedením následujícího příkazu na sekundárních uzlech udělte oprávnění pro čtení a zápis na certifikát a soukromý klíč:

/*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

Jakmile je oprávnění přiděleno, vytvoříme certifikát a hlavní klíč pomocí zálohy certifikátu a hlavního klíče vytvořené na LinuxSQL01.

Chcete-li to provést, spusťte následující příkaz na obou sekundárních replikách:

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'
            );

Jakmile vytvoříme certifikát a hlavní klíč, nakonfigurujeme body zrcadlení databáze.

Vytvořte koncové body zrcadlení

Ke komunikaci mezi primární a sekundární replikou používá SQL Server zrcadlení koncových bodů.

Koncový bod zrcadlení používá protokol TCP/IP k odesílání a přijímání zpráv z primárních a sekundárních replik a naslouchá na jedinečném portu TCP/IP.

Spuštěním následujícího skriptu vytvořte koncový bod na primárním a sekundárním uzlu:

/*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;

Po vytvoření bodů zrcadlení vytvoříme skupinu dostupnosti.

Vytvořit skupinu dostupnosti

Nakonfigurujeme AlwaysON pomocí SQL Server Management Studio.

Nejprve jej spusťte a připojte se k instanci LinuxSQL01 pomocí sa pověření. Po připojení k instanci SQL Server klikněte pravým tlačítkem na Vždy s vysokou dostupností a vyberte Průvodce novou skupinou dostupnosti .

Průvodce skupinou dostupnosti začíná.

1. Úvod

V Úvodu na obrazovce, podívejte se na seznam úkolů, které provede průvodce skupinou dostupnosti. Klikněte na Další.

2. Zadejte možnost skupiny dostupnosti

Na obrazovce Specify Availability Group Option zadejte požadovaný název skupiny dostupnosti a zvolte EXTERNAL z typu clusteru rozbalovací nabídka.

Zaškrtněte také Detekce stavu na úrovni databáze zaškrtávací políčko. Umožňuje rozšířenou relaci události pro dostupnost stavu skupiny.

3. Vyberte Databáze

Můžete si vybrat databázi, kterou chcete přidat do skupiny dostupnosti na Vybrat databáze obrazovka. Poznámka:Databáze musí splňovat následující předpoklady:

  1. Databáze musí být v modelu FULL recovery.
  2. Musí být vytvořena ÚPLNÁ záloha databáze.

Obnovil jsem zálohu WideWorldImportors databáze na primární replice. Databáze je PLNÁ model obnovy a byla vygenerována plná záloha.

Vyberte WideWorldImportors databáze ze seznamu a klikněte na Další .

4. Určit repliky

Na stránce Určit repliky na obrazovce, máme několik karet pro konfiguraci různých možností. Pojďme si je všechny prohlédnout.

Karta Repliky

Zde specifikujeme primární a sekundární repliky, režim dostupnosti a režimy převzetí služeb při selhání.

Používáme LinuxSQL01 jako primární replika. LinuxSQL02 a LinuxSQL03 jsou sekundární replikou.

Režim dostupnosti pro LinuxSQL02 bude Synchronní potvrzení a pro LinuxSQL03 bude Asynchronní potvrzení .

Chcete-li přidat repliku, klikněte na Přidat repliku . Poté na Připojit k serveru dialogovém okně zadejte název serveru a přihlašovací údaje SQL pro připojení k instanci:

Karta Koncové body

Zde si můžeme prohlédnout seznam replik a jejich zrcadlení koncových bodů s odpovídajícími čísly a názvy portů:

Předvolby zálohování

Zde určíte repliku, kterou chcete použít ke generování zálohy. Tato možnost je užitečná, když chcete snížit zátěž procesu zálohování databáze SQL v rámci skupiny dostupnosti.

Můžete si vybrat kteroukoli z následujících možností:

  1. Upřednostnit sekundární:Záloha bude vygenerována na sekundární replice. Pokud sekundární replika není k dispozici, záloha se vygeneruje na primární replice.
  2. Pouze sekundární:Všechny zálohy budou generovány na sekundární replice.
  3. Primární:Zálohy budou generovány na primární replice.
  4. Jakákoli replika:Záloha bude vygenerována z jakékoli repliky.

Použijeme Upřednostňovat sekundární možnost:

Posluchač

Posluchač skupiny dostupnosti je virtuální název používaný aplikací k připojení databází skupiny dostupnosti. Zadejte název DNS posluchače a jeho port v Název DNS posluchače a Port textová pole.

Vyberte Statická IP z režimu sítě rozevírací nabídky.

Chcete-li přidat IP adresu pro posluchače skupiny dostupnosti, klikněte na Přidat >Zadejte IP adresu a Maska podsítě .

Směrování pouze pro čtení

Zde můžete zadat Směrovací adresu URL pouze pro čtení a Seznam směrování pouze pro čtení pro primární a sekundární repliky.

V naší ukázce nebudeme konfigurovat směrování pouze pro čtení. Klepněte proto na tlačítko Další. Chcete-li se dozvědět více o směrování pouze pro čtení, můžete se podívat na Směrování pouze pro čtení pro funkci Always On.

Nyní se vraťme k hlavnímu procesu, na kterém pracujeme.

5. Vyberte možnost Počáteční synchronizace dat

Na stránce Vyberte počáteční synchronizaci dat nastavte předvolby pro počáteční synchronizaci dat. Podrobnosti o každé možnosti jsou uvedeny na obrazovce průvodce a můžete si vybrat kteroukoli z nich:

  1. Automatické nasazování.
  2. Úplná záloha databáze a protokolu.
  3. Pouze se připojit.
  4. Přeskočit počáteční synchronizaci dat.

Nevytvořil jsem WideWorldImportors databáze na repliku LinuxSQL02 a LinuxSQL03, vyberte možnost Automatické seeding volba. Vytvoří databázi na obou replikách a spustí synchronizaci dat. Klikněte na Další.

6. Ověření a shrnutí

Na stránce Ověření na obrazovce, průvodce ověří všechny konfigurace.

Chcete-li úspěšně nasadit skupinu dostupnosti Always On, musíte úspěšně provést veškeré ověření. Pokud dojde k nějaké chybě, musíte ji vyřešit.

Na stránce Souhrn na obrazovce, můžete vidět seznam konfigurací vybraných pro nasazení skupiny dostupnosti.

Zkontrolujte podrobnosti ještě jednou a klikněte na Dokončit – spustí proces nasazení.

Pokud chcete vygenerovat skript procesu nasazení, klikněte na Skript .

Jak vidíme, spustí se proces nasazení AlwaysOn. Po úspěšném dokončení klikněte na Zavřít ukončíte průvodce.

Tím je nasazení skupiny dostupnosti AlwaysOn na SQL Server 2019 dokončeno.

Shrnutí

Tento článek nám pomáhá porozumět podrobnému procesu nasazení skupiny dostupnosti SQL Server AlwaysOn v systému Linux.

Následující článek vysvětlí, jak můžeme nakonfigurovat posluchače skupiny dostupnosti a provést ruční převzetí služeb při selhání pomocí SQL Server Management Studio. Zůstaňte naladěni!


  1. Jak zkopírovat data velké tabulky do jiné tabulky v SQL Server

  2. Chyba MySQL 1064 syntaxe, ale vše se zdá být v pořádku

  3. Desetinné hodnoty v SQL pro dělení výsledků

  4. jak převést csv na tabulku v oracle