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
Tato příručka obsahuje pokyny k vytvoření sdíleného diskového clusteru se dvěma uzly pro SQL Server na SUSE Linux Enterprise Serveru (SLES). Vrstva clusteringu je založená na rozšíření SUSE s vysokou dostupností (HAE) postavené na Pacemakeru.
Poznámka
Počínaje SQL Serverem 2025 (17.x) se nepodporuje SUSE Linux Enterprise Server (SLES).
Další informace o konfiguraci clusteru, možnostech agentů prostředků, správě, osvědčených postupech a doporučeních najdete v SUSE Linux Enterprise High Availability Extension 12 SP5 ().
Požadavky
K dokončení následujícího kompletního scénáře potřebujete dva počítače pro nasazení clusteru se dvěma uzly a dalším serverem pro konfiguraci sdílené složky NFS. Následující kroky popisují, jak tyto servery nakonfigurovat.
Nastavení a konfigurace operačního systému na každém uzlu clusteru
Prvním krokem je konfigurace operačního systému na uzlech clusteru. Pro účely tohoto postupu použijte SLES s platným předplatným doplňku HA.
Instalace a konfigurace SQL Serveru na každém uzlu clusteru
Instalace a nastavení SQL Serveru na obou uzlech Podrobné pokyny najdete v tématu Pokyny k instalaci SQL Serveru v Linuxu.
Označte jeden uzel jako primární a druhý jako sekundární pro účely konfigurace. Tyto podmínky použijte a následujte tento návod.
Na sekundárním uzlu zastavte a zakažte SQL Server. Následující příklad zastaví a zakáže SQL Server:
sudo systemctl stop mssql-server sudo systemctl disable mssql-serverPoznámka
V době instalace se pro instanci SQL Serveru vygeneruje hlavní klíč serveru (SMK) a umístí se do
/var/opt/mssql/secrets/machine-key. V Linuxu SQL Server vždy běží jako místní účet s názvemmssql. Vzhledem k tomu, že se jedná o místní účet, jeho identita se nesdílí napříč uzly. Šifrovací klíč musíte zkopírovat z primárního uzlu do každého sekundárního uzlu, aby k němu měl každý místnímssqlúčet přístup, aby mohl dešifrovat sadu SMK.Na primárním uzlu vytvořte přihlášení k SQL Serveru pro Pacemaker a udělte přihlašovací oprávnění ke spuštění
sp_server_diagnostics. Pacemaker používá tento účet k ověření, na kterém uzlu běží SQL Server.sudo systemctl start mssql-serverPřipojte se k databázi SQL Serveru
masterpomocísaúčtu a spusťte následující skript:USE [master]; GO CREATE LOGIN [<loginName>] with PASSWORD = N'<password>'; GRANT VIEW SERVER STATE TO <loginName>;Opatrnost
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Na primárním uzlu zastavte a zakažte SQL Server.
Postupujte podle pokynů v dokumentaci SUSE ke konfiguraci a aktualizaci souboru hostitelů pro každý uzel clusteru. Soubor
hostsmusí obsahovat IP adresu a název každého uzlu clusteru.Pokud chcete zkontrolovat IP adresu aktuálního uzlu, spusťte:
sudo ip addr showNastavte název počítače na každém uzlu. Dejte každému uzlu jedinečný název, který je 15 znaků nebo méně. Nastavte název počítače tak, že ho přidáte do
/etc/hostnamepomocí YAST nebo ručně.Následující příklad ukazuje
/etc/hostss přidáním pro dva uzly pojmenovanéSLES1aSLES2.127.0.0.1 localhost 10.128.18.128 SLES1 10.128.16.77 SLES2Všechny uzly clusteru musí mít k sobě přístup SSH bez hesla. V opačném případě můžou nástroje jako
hb_report,crm_reporta Průzkumník historie Hawku shromažďovat data pouze z místního uzlu. Pokud používáte nestandardní port SSH, použijte-Xtuto možnost (viz Další požadavky a doporučení). Pokud je například port SSH 3479, vyvolejtecrm_reportpomocí:crm_report -X "-p 3479" [...]Další informace naleznete v Příručka pro správu.
V další části nakonfigurujete sdílené úložiště a přesunete soubory databáze do úložiště.
Konfigurace sdíleného úložiště a přesun databázových souborů
Pro poskytování sdíleného úložiště můžete použít různá řešení. Tento návod ukazuje konfiguraci sdíleného úložiště se systémem souborů NFS. Postupujte podle osvědčených postupů a zabezpečte systém souborů NFS pomocí protokolu Kerberos:
Pokud se těmito pokyny neřídíte, může každý, kdo má přístup k vaší síti a falšuje IP adresu SQL uzlu, získat přístup k vašim datovým souborům. Jako vždy proveďte modelování hrozeb ve vašem systému předtím, než ho použijete v produkčním prostředí.
Další možností úložiště je použití sdílené složky SMB:
Konfigurace serveru NFS
Pokud chcete nakonfigurovat server NFS, přečtěte si následující kroky v dokumentaci k SUSE: Konfigurace serveru NFS.
Konfigurace všech uzlů clusteru pro připojení ke sdílenému úložišti NFS
Před konfigurací systému souborů NFS klienta pro připojení cesty k souborům databáze SQL Serveru tak, aby odkazovaly na umístění sdíleného úložiště, nezapomeňte uložit soubory databáze do dočasného umístění, abyste je mohli později zkopírovat do sdílené složky:
Pouze na primárním uzluuložte soubory databáze do dočasného umístění. Následující skript vytvoří nový dočasný adresář, zkopíruje soubory databáze do nového adresáře a odebere staré soubory databáze. Vzhledem k tomu, že SQL Server běží jako místní uživatel
mssql, musíte se ujistit, že po přenosu dat do připojené sdílené složky má místní uživatel přístup ke sdílené složce pro čtení i zápis.su mssql mkdir /var/opt/mssql/tmp cp /var/opt/mssql/data/* /var/opt/mssql/tmp rm /var/opt/mssql/data/* exitNakonfigurujte klienta NFS na všech uzlech clusteru:
Poznámka
Osvědčené postupy a doporučení pro SUSE týkající se vysoce dostupného úložiště NFS najdete v tématu Vysoce dostupné úložiště NFS s DRBD a Pacemakerem.
Na každém uzlu ověřte, že SQL Server úspěšně spustí novou cestu k souboru. V tuto chvíli může SQL Server běžet pouze na jediném uzlu. Oba nemůžou běžet současně, protože se oba snaží získat přístup k datovým souborům současně.
Pokud chcete zabránit spuštění SQL Serveru na obou uzlech, použijte prostředek clusteru systému souborů, abyste zajistili, že je sdílená složka připojená jenom jedním uzlem najednou.
Následující příkazy spustí SQL Server, zkontrolují stav a pak zastaví SQL Server.
sudo systemctl start mssql-server sudo systemctl status mssql-server sudo systemctl stop mssql-server
V tomto okamžiku jsou obě instance SQL Serveru nakonfigurované tak, aby běžely se soubory databáze ve sdíleném úložišti. Dalším krokem je konfigurace SQL Serveru pro Pacemaker.
Instalace a konfigurace Pacemakeru na každém uzlu clusteru
Na obou uzlech klastru vytvořte soubor pro uložení uživatelského jména a hesla SQL Serveru pro přihlašování Pacemakeru. Následující příkaz vytvoří a naplní tento soubor:
sudo touch /var/opt/mssql/secrets/passwd sudo echo '<loginName>' >> /var/opt/mssql/secrets/passwd sudo echo '<password>' >> /var/opt/mssql/secrets/passwd sudo chown root:root /var/opt/mssql/secrets/passwd sudo chmod 600 /var/opt/mssql/secrets/passwdOpatrnost
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Všechny uzly clusteru se musí vzájemně přistupovat přes SSH. Nástroje jako
hb_reportnebocrm_report(pro řešení potíží) a Průzkumník historie Hawku vyžadují mezi uzly přístup SSH bez hesla. Jinak můžou shromažďovat data pouze z aktuálního uzlu. Pokud používáte nestandardní port SSH, použijte-Xmožnost (vizmanstránka). Pokud je například port SSH 3479, použijte následující příkazhb_report:crm_report -X "-p 3479" [...]Další informace naleznete v tématu Požadavky na systém a doporučení v dokumentaci SUSE.
Nainstalovat rozšíření pro vysokou dostupnost. Pokud chcete rozšíření nainstalovat, postupujte podle kroků v následujícím článku SUSE:
Nainstalujte agenta prostředků FCI pro SQL Server. Na obou uzlech spusťte následující příkazy:
sudo zypper addrepo -fc https://packages.microsoft.com/config/sles/12/mssql-server-2017.repo sudo zypper --gpg-auto-import-keys refresh sudo zypper install mssql-server-haautomaticky nastavit první uzel. Dalším krokem je nastavení spuštěného clusteru s jedním uzlem konfigurací prvního uzlu SLES1. Postupujte podle pokynů v článku SUSE Nastavení prvního uzlu.
Po dokončení zkontrolujte stav clusteru pomocí
crm status:crm statusUkazuje, že je nakonfigurovaný jeden uzel SLES1.
Přidání uzlů do existujícího clusteru. Dále připojte uzel SLES2 ke clusteru. Postupujte podle pokynů v článku SUSE Přidání druhého uzlu.
Po dokončení zkontrolujte stav klastru pomocí příkazu crm status. Pokud úspěšně přidáte druhý uzel, výstup vypadá podobně jako v následujícím příkladu:
2 nodes configured 1 resource configured Online: [ SLES1 SLES2 ] Full list of resources: admin_addr (ocf::heartbeat:IPaddr2): Started SLES1Poznámka
admin_addr je virtuální IP prostředek clusteru, který konfigurujete po počátečním nastavení clusteru s jedním uzlem.
Postupy odstranění. Pokud potřebujete odebrat uzel z clusteru, použijte skript ha-cluster-remove bootstrap. Další informace naleznete v tématu Přehled skriptů bootstrap.
Konfigurace prostředků clusteru pro SQL Server
Následující kroky vysvětlují, jak nakonfigurovat prostředek clusteru pro SQL Server. Přizpůsobte následující dvě nastavení:
- Název prostředku clusterovaného SQL Serveru: Název pro prostředek clusterovaného SQL Serveru.
-
hodnota časového limitu: Hodnota časového limitu je doba, po kterou cluster čeká, když se prostředek uvede do režimu online. U SQL Serveru představuje tato hodnota dobu, kterou očekáváte, že sql Server bude trvat, než databázi přenese do
masterrežimu online.
Aktualizujte hodnoty v následujícím skriptu pro vaše prostředí. Spuštěním skriptu na jednom uzlu nakonfigurujte a spusťte clusterovou službu.
sudo crm configure
primitive <sqlServerResourceName> ocf:mssql:fci op start timeout=<timeout_in_seconds>
colocation <constraintName> inf: <virtualIPResourceName> <sqlServerResourceName>
show
commit
exit
Například následující skript vytvoří clusterovaný prostředek SQL Serveru s názvem mssqlha.
sudo crm configure
primitive mssqlha ocf:mssql:fci op start timeout=60s
colocation admin_addr_mssqlha inf: admin_addr mssqlha
show
commit
exit
Po potvrzení konfigurace se SQL Server spustí na stejném uzlu jako virtuální IP zdroj.
Další informace najdete v tématu Konfigurace a správa prostředků clusteru (příkazový řádek).
Ověřte, že je sql Server spuštěný.
Pokud chcete ověřit, že je SQL Server spuštěný, spusťte příkaz crm status:
crm status
Následující příklad ukazuje výsledky, když se Pacemaker úspěšně spustí jako klastrový prostředek.
2 nodes configured
2 resources configured
Online: [ SLES1 SLES2 ]
Full list of resources:
admin_addr (ocf::heartbeat:IPaddr2): Started SLES1
mssqlha (ocf::mssql:fci): Started SLES1
Správa prostředků clusteru
Informace o správě prostředků clusteru najdete v následujícím článku SUSE: Správa prostředků clusteru
Ruční převzetí služeb při selhání
I když jsou prostředky nakonfigurované tak, aby automaticky převzaly funkce nebo migrovaly do jiných uzlů clusteru při selhání hardwaru nebo softwaru, je také můžete přesunout ručně pomocí grafického uživatelského rozhraní Pacemaker nebo příkazového řádku.
migrate Použijte příkaz pro tento úkol. Pokud chcete například migrovat prostředek SQL na uzel clusteru s názvem SLES2, spusťte:
crm resource
migrate mssqlha SLES2