Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server v Linuxu
Tento kurz vysvětluje, jak nakonfigurovat skupiny dostupnosti SQL Serveru pomocí nástroje HPE ServiceGuard pro Linux, spuštěných na místních virtuálních počítačích nebo ve virtuálních počítačích založených na Azure.
Přehled clusterů HPE Serviceguard najdete v tématu Clustery HPE Serviceguard.
Poznámka:
Microsoft podporuje přesun dat, skupinu dostupnosti a komponenty SQL Serveru. Pokud potřebujete podporu týkající se dokumentace k clusteru HPE Serviceguard a správě kvora, obraťte se na HPE.
Tento kurz se skládá z následujících úloh:
- Nainstalujte SQL Server na všechny tři virtuální počítače, které plánujete zahrnout do skupiny dostupnosti.
- Nainstalujte službu HPE ServiceGuard na virtuální počítače.
- Vytvořte cluster HPE Serviceguard.
- Na webu Azure Portal vytvořte nástroj pro vyrovnávání zatížení.
- Vytvořte skupinu dostupnosti a přidejte do skupiny dostupnosti ukázkovou databázi.
- Nasaďte pracovní zátěž SQL Serveru ve skupině dostupnosti prostřednictvím správce Serviceguard clusteru.
- Proveďte automatické převzetí služeb při selhání a znovu připojte uzel ke clusteru.
Požadavky
V Azure vytvořte tři virtuální počítače s Linuxem (Virtual Machines). Pokud chcete vytvořit virtuální počítače s Linuxem v Azure, projděte si rychlý start: Vytvoření virtuálního počítače s Linuxem na webu Azure Portal. Při nasazování virtuálních počítačů nezapomeňte použít podporu linuxových distribucí HPE Serviceguard. Pokud chcete, můžete virtuální počítače nasadit také místně v místním prostředí.
Příklad podporované distribuce najdete v tématu HPE Serviceguard pro Linux. Obraťte se na HPE pro informace o podpoře prostředí veřejného cloudu.
Pokyny v tomto kurzu jsou ověřeny proti službě HPE ServiceGuard pro Linux. Zkušební edice je k dispozici ke stažení z prostředí HPE.
Soubory databáze SQL Serveru na logickém svazku (LVM) pro všechny tři virtuální počítače. Podívejte se na Průvodce rychlým startem pro Serviceguard Linux (HPE).
Ujistěte se, že máte na virtuálních počítačích nainstalovaný modul runtime Java OpenJDK. Sada IBM Java SDK není podporovaná.
Instalace SQL Serveru
Na všech třech virtuálních počítačích postupujte podle jednoho z kroků v následující části na základě distribuce Linuxu, kterou zvolíte pro účely tohoto kurzu. Kroky nainstalují SQL Server a nástroje.
Red Hat Enterprise Linux (RHEL)
SUSE Linux Enterprise Server (SLES)
Poznámka:
Počínaje SQL Serverem 2025 (17.x) se nepodporuje SUSE Linux Enterprise Server (SLES).
Po dokončení tohoto kroku máte na všech třech virtuálních počítačích nainstalovaných službu a nástroje SQL Serveru, které se budou účastnit skupiny dostupnosti.
Instalace služby HPE ServiceGuard na virtuální počítače
V tomto kroku nainstalujte službu HPE Serviceguard pro Linux na všechny tři virtuální počítače. Následující tabulka popisuje roli, která každý server hraje v clusteru.
| Počet virtuálních strojů | Role HPE ServiceGuard | Role repliky skupiny dostupnosti Microsoft SQL Serveru |
|---|---|---|
| 1 | Uzly clusteru HPE ServiceGuard | Primární replika |
| 1 nebo více | Uzel clusteru HPE ServiceGuard | Sekundární replika |
| 1 | HPE Serviceguard kvorový server | Replika pouze pro konfiguraci |
Poznámka:
Podívejte se na toto video z prostředí HPE, které popisuje , jak nainstalovat a nakonfigurovat cluster HPE Serviceguard prostřednictvím uživatelského rozhraní.
K instalaci Serviceguard použijte metodu cminstaller . Konkrétní pokyny jsou k dispozici na následujících odkazech:
- Nainstalujte Serviceguard pro Linux na dva uzly. Odkazujte na oddíl Install_serviceguard_using_cminstaller.
- Nainstalujte server kvora Serviceguard na třetí uzel. Podívejte se na oddíl Install_QS_from_the_ISO.
Po dokončení instalace clusteru HPE Serviceguard můžete povolit portál pro správu clusteru na portu TCP 5522 na uzlu primární repliky. Následující postup přidá do brány firewall pravidlo, které povolí 5522. Následující příkaz je pro Red Hat Enterprise Linux (RHEL). Potřebujete spustit podobné příkazy pro jiné distribuce:
sudo firewall-cmd --zone=public --add-port=5522/tcp --permanent
sudo firewall-cmd --reload
Vytvoření clusteru HPE Serviceguard
Podle těchto pokynů nakonfigurujte a vytvořte cluster HPE Serviceguard. V tomto kroku nakonfigurujete také server kvora.
- Nakonfigurujte server kvora Serviceguard na třetím uzlu. Projděte si část Configure_QS .
- Nakonfigurujte a vytvořte cluster Serviceguard na dalších dvou uzlech. Projděte si část Configure_and_create_Cluster .
Poznámka:
Ruční instalaci clusteru HPE Serviceguard a kvora můžete obejít přidáním rozšíření HPE Serviceguard pro Linux (SGLX) z webu Azure VM Marketplace při vytváření virtuálního počítače.
Vytvoření skupiny dostupnosti a přidání ukázkové databáze
V tomto kroku vytvoříte skupinu dostupnosti se dvěma nebo více synchronními replikami a jedinou replikou konfigurace, která poskytuje ochranu dat a může také poskytovat vysokou dostupnost. Následující diagram představuje tuto architekturu:
Synchronní replikace uživatelských dat do sekundární repliky Zahrnuje také metadata týkající se konfigurace skupiny dostupnosti.
Synchronní replikace metadat konfigurace skupiny dostupnosti Nezahrnuje uživatelská data.
Další informace najdete v tématu Vysoká dostupnost a ochrana dat pro konfigurace skupin dostupnosti.
Skupinu dostupnosti vytvoříte takto:
- Povolte skupiny dostupnosti a restartujte mssql-server na všech virtuálních počítačích, včetně pouze konfigurační repliky.
-
Povolte
AlwaysOn_healthrelaci událostí (volitelné) - Vytvoření certifikátu na primárním virtuálním počítači
- Vytvoření certifikátu na sekundárních serverech
- Vytvořte koncové body zrcadlení databáze na replikách
- Vytvoření skupiny dostupnosti
- Připojení sekundárních replik
- Přidání databáze do skupiny dostupnosti
Povolení skupin dostupnosti a restartování serveru mssql-server
Povolte skupiny dostupnosti na všech uzlech, které hostují instanci SQL Serveru. Pak restartujte mssql-server. Na všech třech uzlech spusťte následující skript:
sudo /opt/mssql/bin/mssql-conf
set hadr.hadrenabled 1 sudo systemctl restart mssql-server
Povolte relaci událostí AlwaysOn_health (volitelné)
Volitelně můžete povolit rozšířené události skupin dostupnosti AlwaysOn, které vám pomůžou s diagnostikou původní příčiny při řešení potíží se skupinou dostupnosti. Na každé instanci SQL Serveru spusťte následující příkaz:
ALTER EVENT SESSION AlwaysOn_health ON SERVER
WITH (STARTUP_STATE = ON);
GO
Vytvoření certifikátu na primárním virtuálním počítači
Následující Transact-SQL skript vytvoří hlavní klíč a certifikát. Pak zálohuje certifikát a zabezpečí soubor privátním klíčem. Aktualizujte skript silnými hesly. Připojte se k primární instanci SQL Serveru a spusťte následující skript Transact-SQL:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>';
CREATE CERTIFICATE dbm_certificate
WITH SUBJECT = 'dbm';
BACKUP CERTIFICATE dbm_certificate TO FILE = '/var/opt/mssql/data/dbm_certificate.cer'
WITH PRIVATE KEY (
FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
ENCRYPTION BY PASSWORD = '<private-key-password>'
);
V tomto okamžiku má primární replika SQL Serveru certifikát na /var/opt/mssql/data/dbm_certificate.cer a privátní klíč na adrese var/opt/mssql/data/dbm_certificate.pvk. Zkopírujte tyto dva soubory do stejného umístění na všech serverech, které hostují repliky dostupnosti. Pokud chcete získat přístup k těmto souborům, použijte uživatele mssql nebo udělte oprávnění uživateli mssql.
Například na zdrojovém serveru následující příkaz zkopíruje soubory do cílového počítače.
node2 Nahraďte hodnoty názvem hostitele, na kterém běží sekundární instance SQL Serveru. Zkopírujte certifikát také do repliky pouze konfigurace a na tomto uzlu spusťte následující příkazy.
cd /var/opt/mssql/data
scp dbm_certificate.* root@<node2>:/var/opt/mssql/data/
Teď na sekundárních virtuálních počítačích, na kterých běží sekundární instance a pouze replika konfigurace SQL Serveru, spusťte následující příkazy, aby mssql uživatel mohl vlastnit zkopírovaný certifikát:
cd /var/opt/mssql/data
chown mssql:mssql dbm_certificate.*
Vytvoření certifikátu na sekundárních serverech
Následující skript Transact-SQL vytvoří hlavní klíč a certifikát ze zálohy, kterou jste vytvořili na primární replice SQL Serveru. Aktualizujte skript silnými hesly. Dešifrovací heslo je stejné heslo, které jste použili k vytvoření .pvk souboru v předchozím kroku. Certifikát vytvoříte spuštěním následujícího skriptu na všech sekundárních serverech s výjimkou repliky jen pro konfiguraci:
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<master-key-password>';
CREATE CERTIFICATE dbm_certificate
FROM FILE = '/var/opt/mssql/data/dbm_certificate.cer'
WITH PRIVATE KEY (
FILE = '/var/opt/mssql/data/dbm_certificate.pvk',
DECRYPTION BY PASSWORD = '<private-key-password>'
);
V předchozím příkladu nahraďte <private-key-password> stejným heslem, které jste použili při vytváření certifikátu na primární replice.
Vytvořte koncové body zrcadlení databáze na replikách
Na primární a sekundární replice spusťte následující příkazy, které vytvoří koncové body zrcadlení databáze:
CREATE ENDPOINT [hadr_endpoint]
AS TCP (LISTENER_PORT = 5022)
FOR DATABASE_MIRRORING
(
ROLE = WITNESS,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
ALTER ENDPOINT [hadr_endpoint]
STATE = STARTED;
Poznámka:
5022 je standardní port používaný pro koncový bod zrcadlení databáze, ale můžete ho změnit na libovolný dostupný port.
Na replice pouze pro konfiguraci vytvořte koncový bod zrcadlení databáze pomocí následujícího příkazu. Nastavte hodnotu pro Role na WITNESS, což je požadovaná role pro repliku určenou pouze pro konfiguraci.
CREATE ENDPOINT [hadr_endpoint]
AS TCP (LISTENER_PORT = 5022)
FOR DATABASE_MIRRORING
(
ROLE = WITNESS,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
ALTER ENDPOINT [hadr_endpoint]
STATE = STARTED;
Vytvoření skupiny dostupnosti
V instanci primární repliky spusťte následující příkazy. Tyto příkazy vytvoří skupinu dostupnosti s názvem ag1, která má EXTERNAL cluster_type a udělí oprávnění k vytvoření databáze této skupině dostupnosti.
Před spuštěním následujících skriptů nahraďte zástupné symboly <node1>, <node2> a <node3> (replika pouze pro konfiguraci) názvy virtuálních počítačů, které jste vytvořili v předchozích krocích.
CREATE AVAILABILITY GROUP [ag1]
WITH (CLUSTER_TYPE = EXTERNAL)
FOR REPLICA ON
N'<node1>' WITH (
ENDPOINT_URL = N'tcp://<node1>:<5022>',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<node2>' WITH (
ENDPOINT_URL = N'tcp://<node2>:\<5022>',
AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
),
N'<node3>' WITH (
ENDPOINT_URL = N'tcp://<node3>:<5022>',
AVAILABILITY_MODE = CONFIGURATION_ONLY
);
ALTER AVAILABILITY GROUP [ag1]
GRANT CREATE ANY DATABASE;
Připojte sekundární repliky
Na všech sekundárních replikách spusťte následující příkazy. Tyto příkazy připojují sekundární repliky ke ag1 skupině dostupnosti s primární replikou a umožňují vytvořit přístup k databázi ve ag1 skupině dostupnosti.
ALTER AVAILABILITY GROUP [ag1]
JOIN WITH (CLUSTER_TYPE = EXTERNAL);
GO
ALTER AVAILABILITY GROUP [ag1]
GRANT CREATE ANY DATABASE;
GO
Přidání databáze do skupiny dostupnosti
Připojte se k primární replice a spusťte následující příkazy T-SQL pro:
Vytvořte ukázkovou databázi s názvem
db1, kterou přidáte do skupiny dostupnosti.CREATE DATABASE [db1]; GONastavte model obnovení databáze na úplné. Všechny databáze ve skupině dostupnosti vyžadují úplný model obnovení.
ALTER DATABASE [db1] SET RECOVERY FULL;Zálohujte databázi. Databáze vyžaduje aspoň jednu úplnou zálohu, abyste ji mohli přidat do skupiny dostupnosti.
BACKUP DATABASE [db1] TO DISK = N'/var/opt/mssql/data/db1.bak';Nastavte databázi na úplný model obnovení.
ALTER DATABASE [db1] SET RECOVERY FULL;Zálohujte databázi na disk.
BACKUP DATABASE [db1] TO DISK = N'/var/opt/mssql/data/db1.bak';Přidejte databázi
db1do skupiny dostupnosti.ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1];
Po dokončení předchozích kroků se zobrazí ag1 skupina dostupnosti. Tři virtuální počítače se přidají jako repliky s jednou primární replikou, jednou sekundární replikou a jednou replikou jen pro konfiguraci.
ag1 obsahuje jednu databázi.
Nasazení úlohy skupiny dostupnosti v SQL Serveru (HPE Cluster Manager)
V prostředí HPE Serviceguard nasaďte pracovní zátěž SQL Serveru v rámci skupiny dostupnosti prostřednictvím uživatelského rozhraní správce clusteru Serviceguard.
Nasadit úlohu pro skupinu vysoké dostupnosti a umožnit vysokou dostupnost (HA), zotavení po havárii (DR) prostřednictvím clusteru Serviceguard pomocí grafického uživatelského rozhraní Serviceguard Manager. Přečtěte si část Ochrana Microsoft SQL Serveru v Linuxu pro skupiny dostupnosti AlwaysOn.
Vytvoření nástroje pro vyrovnávání zatížení na webu Azure Portal
V případě nasazení v Azure Cloudu vyžaduje hpe Serviceguard pro Linux nástroj pro vyrovnávání zatížení, který umožňuje připojení klientů k primární replice, aby nahradil tradiční IP adresy.
Na webu Azure Portal otevřete skupinu prostředků, která obsahuje uzly clusteru Serviceguard nebo virtuální počítače.
Ve skupině prostředků vyberte Přidat.
Vyhledejte "nástroj pro vyrovnávání zatížení" a pak ve výsledcích hledání vyberte Load Balancer , který publikuje Microsoft.
V podokně Load Balancer vyberte Vytvořit.
Nástroj pro vyrovnávání zatížení nakonfigurujte následujícím způsobem:
Nastavení Hodnota název Název nástroje pro vyrovnávání zatížení. Například: SQLAvailabilityGroupLB.Typ Interní SKU Basic nebo Standard Virtuální síť Virtuální síť používaná pro repliky virtuálních počítačů Podsíť Podsíť, ve které jsou hostované instance SQL Serveru Přiřazení IP adres Statický. Privátní IP adresa Vytvoření privátní IP adresy v podsíti Předplatné Zvolte příslušné předplatné. Skupina prostředků Zvolte příslušnou skupinu prostředků. Umístění Výběr stejného umístění jako uzly SQL
Konfigurace backendového fondu
Back-endový fond jsou adresy dvou instancí, na kterých je nakonfigurován cluster Serviceguard.
- Ve skupině prostředků vyberte nástroj pro vyrovnávání zatížení, který jste vytvořili.
- Přejděte do Nastavení>Back-endové fondy a vyberte Přidat pro vytvoření back-endového fondu adres.
- Na stránce Přidat back-endový fond do pole Název zadejte název pro back-endový fond.
- V části Přidruženo vyberte Virtuální počítač.
- Vyberte virtuální počítač v prostředí a přidružte k jednotlivým možnostem příslušnou IP adresu.
- Vyberte Přidat.
Vytvořte sondu
Sonda definuje, jak Azure ověří, který uzel clusteru Serviceguard je primární replikou. Azure testuje službu na základě IP adresy na portu, který definujete při vytváření testu.
V podokně Nastavení vyrovnávání zatížení vyberte Kontrolní sondy.
V podokně Sondy stavu vyberte Přidat.
Ke konfiguraci sondy použijte následující hodnoty:
Nastavení Hodnota název Název představující sondu Například: SQLAGPrimaryReplicaProbe.Protokol protokol TCP Port Můžete použít libovolný dostupný port. Například 59999. Interval 5 Prahová hodnota pro nezdravý stav 2 Vyberte OK.
Přihlaste se ke všem virtuálním počítačům a otevřete port sondy pomocí následujících příkazů:
sudo firewall-cmd --zone=public --add-port=59999/tcp --permanent sudo firewall-cmd --reload
Azure vytvoří sondu a pak ji použije k otestování uzlu Serviceguard, na kterém je spuštěná instance primární repliky skupiny dostupnosti. Pamatujte si port, který jste nakonfigurovali (59999), protože je nezbytný k nasazení AG v Serviceguard clusteru.
Nastavení pravidel vyrovnávání zatížení
Pravidla vyrovnávání zatížení konfigurují, jak nástroj pro vyrovnávání zatížení směruje provoz do uzlu Serviceguard, což je primární replika v clusteru. U tohoto nástroje pro vyrovnávání zatížení povolte přímé vrácení serveru, protože primární replikou může být současně pouze jeden z uzlů clusteru Serviceguard.
V nastavení nástroje pro vyrovnávání zatížení vyberte pravidla vyrovnávání zatížení.
V pravidlech vyrovnávání zatížení vyberte Přidat.
Nakonfigurujte pravidlo vyrovnávání zatížení pomocí následujících nastavení:
Nastavení Hodnota název Název představující pravidla vyrovnávání zatížení Například: SQLAGPrimaryReplicaListener.Protokol protokol TCP Port 1433 Back-endový port 1433. Tato hodnota je ignorována, protože toto pravidlo používá plovoucí IP adresu. sondy Použijte název sondy, kterou jste vytvořili pro tento nástroj pro vyrovnávání zatížení. Trvalost relace Žádné Časový limit nečinnosti (minuty) 4 Plovoucí IP adresa Povoleno Vyberte OK.
Azure nakonfiguruje pravidlo vyrovnávání zatížení. Teď je nástroj pro vyrovnávání zatížení nakonfigurovaný tak, aby směroval provoz do uzlu Serviceguard, který je instancí primární repliky v clusteru.
Poznamenejte si front-endovou IP adresu nástroje pro vyrovnávání zatížení LbReadWriteIP, kterou potřebujete nasadit v clusteru Serviceguard.
V tomto okamžiku má skupina prostředků vyrovnávač zátěže, který se připojuje ke všem uzlům Serviceguard. Nástroj pro vyrovnávání zatížení také obsahuje IP adresu pro klienty, kteří se mají připojit k instanci primární repliky v clusteru, aby každý počítač, který je primární replikou, mohl reagovat na požadavky skupiny dostupnosti.
Provedení automatického převzetí služeb při selhání a připojení uzlu zpět ke clusteru
V případě testu automatického převzetí služeb při selhání přepněte primární repliku do offline režimu (vypněte). Tato akce replikuje náhlé nedostupnosti primárního uzlu. Očekávané chování je:
Správce clusteru povýší jednu ze sekundárních replik ve skupině dostupnosti na primární.
Neúspěšná primární replika se po restartování clusteru automaticky připojí. Správce clusteru ho povýší na sekundární repliku.
Informace o službě HPE Serviceguard najdete v tématu Testování nastavení pro připravenost převzetí služeb při selhání.