Konfigurowanie zawsze włączonej grupy dostępności programu SQL Server pod kątem wysokiej dostępności w systemie Linux
Dotyczy:programu SQL Server — Linux
W tym artykule opisano sposób tworzenia zawsze włączonej grupy dostępności programu SQL Server w celu zapewnienia wysokiej dostępności w systemie Linux. Istnieją dwa typy konfiguracji dla grup zabezpieczeń. Konfiguracja wysokiej dostępności używa menedżera klastra do zapewnienia ciągłości biznesowej. Ta konfiguracja może również obejmować repliki w skali odczytu. W tym dokumencie wyjaśniono, jak utworzyć Grupę Dostępności (AG) w celu zapewnienia wysokiej dostępności.
Można również utworzyć grupę dostępności bez menedżera klastra do skalowania odczytu dla . Grupa dostępności do skalowania odczytu zapewnia wyłącznie repliki do odczytu na potrzeby skalowania wydajności. Nie zapewnia wysokiej dostępności. Aby utworzyć grupę dostępności (AG) na potrzeby skalowania do odczytu, zobacz Configure a SQL Server Availability Group for read-scale on Linux(Konfigurowanie grupy dostępności programu SQL Server pod kątem skalowania do odczytu w systemie Linux).
Konfiguracje, które gwarantują wysoką dostępność i ochronę danych, wymagają dwóch lub trzech synchronicznych replik zatwierdzeń. Dzięki trzem replikom synchronicznym grupa dostępności może automatycznie odzyskiwać dane, nawet jeśli jeden serwer nie jest dostępny. Aby uzyskać więcej informacji, zobacz Wysoka dostępność i ochrona danych dla konfiguracji grup dostępności.
Wszystkie serwery muszą być fizyczne lub wirtualne, a serwery wirtualne muszą znajdować się na tej samej platformie wirtualizacji. To wymaganie jest spowodowane tym, że agenci ogrodzenia są specyficzni dla konkretnej platformy. Zobacz zasady klastrów gościnnych.
Harmonogram działania
Kroki tworzenia grupy dostępności na serwerach z systemem Linux pod kątem wysokiej dostępności różnią się od kroków w klastrze trybu failover systemu Windows Server. Poniższa lista zawiera opis kroków wysokiego poziomu:
wskazówki dotyczące instalacji programu SQL Server w systemie Linux.
Ważny
Wszystkie trzy serwery grupy dostępności muszą znajdować się na tej samej platformie — fizycznej lub wirtualnej — ponieważ wysoka dostępność systemu Linux używa agentów ogrodzenia do izolowania zasobów na serwerach. Agenci ogrodzenia są specyficzne dla każdej platformy.
Utwórz AG. Ten krok został omówiony w tym bieżącym artykule.
Skonfiguruj menedżera zasobów klastra, takiego jak Pacemaker.
Sposób konfigurowania menedżera zasobów klastra zależy od określonej dystrybucji systemu Linux. Zapoznaj się z następującymi linkami, aby uzyskać instrukcje dotyczące dystrybucji:
Ważny
Środowiska produkcyjne wymagają agenta odgradzającego w celu zapewnienia wysokiej dostępności. Przykłady w tym artykule nie używają agentów ogrodzenia. Są one przeznaczone tylko do testowania i walidacji.
Klaster Pacemaker używa ogrodzenia, aby przywrócić klaster do znanego stanu. Sposób konfigurowania ogrodzenia zależy od dystrybucji i środowiska. Obecnie funkcja fencing nie jest dostępna w niektórych środowiskach chmurowych. Aby uzyskać więcej informacji, zobacz zasady obsługi dla klastrów wysokiej dostępności RHEL — Platformy wirtualizacji.
Aby uzyskać informacje o systemie SLES, zobacz rozszerzenie wysokiej dostępności systemu SUSE Linux Enterprise.
Dodaj AG jako zasób w klastrze.
Sposób dodawania AG (grupy dostępności) jako zasobu w klastrze zależy od dystrybucji systemu Linux. Zapoznaj się z następującymi linkami, aby uzyskać instrukcje dotyczące dystrybucji:
- RHEL
- SLES
- ubuntu
Zagadnienia dotyczące wielu interfejsów sieciowych
Aby uzyskać więcej informacji na temat konfigurowania grupy dostępności dla serwerów z wieloma kartami sieciowymi, zobacz odpowiednie sekcje:
- RHEL
- SLES
- Ubuntu
Warunki wstępne
Przed utworzeniem grupy dostępności należy:
- Ustaw środowisko tak, aby wszystkie serwery, które będą hostować repliki dostępności, mogły współdziałać ze sobą.
- Zainstaluj program SQL Server.
W systemie Linux należy utworzyć grupę dostępności przed dodaniem jej jako zasobu klastra do zarządzania przez klaster. Ten dokument zawiera przykład, który tworzy grupę dostępności.
Zaktualizuj nazwę komputera dla każdego hosta.
Każda nazwa wystąpienia programu SQL Server musi być:
- 15 znaków lub mniej.
- Unikatowe w sieci.
Aby ustawić nazwę komputera, edytuj
/etc/hostname
. Poniższy skrypt umożliwia edytowanie/etc/hostname
przy użyciu vi:sudo vi /etc/hostname
Skonfiguruj plik hosts.
Notatka
Jeśli nazwy hostów są zarejestrowane przy użyciu ich adresu IP na serwerze DNS, nie musisz wykonywać poniższych kroków. Sprawdź, czy wszystkie węzły, które mają być częścią konfiguracji grupy dostępności, mogą komunikować się ze sobą. (Polecenie ping do nazwy hosta powinno odpowiadać odpowiednim adresem IP). Upewnij się również, że plik
/etc/hosts
nie zawiera rekordu mapowania adresu IP hosta lokalnego 127.0.0.1 z nazwą hosta węzła.Plik hosts na każdym serwerze zawiera adresy IP i nazwy wszystkich serwerów, które będą uczestniczyć w grupie dostępności.
Następujące polecenie zwraca adres IP bieżącego serwera:
sudo ip addr show
Zaktualizuj
/etc/hosts
. Poniższy skrypt umożliwia edytowanie/etc/hosts
przy użyciu vi:sudo vi /etc/hosts
Poniższy przykład przedstawia
/etc/hosts
nanode1
z dodatkami dlanode1
,node2
oraznode3
. W tym przykładzienode1
odnosi się do serwera, który hostuje replikę podstawową, anode2
inode3
odnoszą się do serwerów hostujących repliki pomocnicze.127.0.0.1 localhost localhost4 localhost4.localdomain4 ::1 localhost localhost6 localhost6.localdomain6 10.128.18.12 node1 10.128.16.77 node2 10.128.15.33 node3
Instalowanie programu SQL Server
Zainstaluj program SQL Server. Poniższe linki wskazują instrukcje instalacji programu SQL Server dla różnych dystrybucji:
- Szybki start: instalowanie programu SQL Server i tworzenie bazy danych w usłudze Red Hat
- Szybki start: instalowanie programu SQL Server i tworzenie bazy danych w systemie SUSE Linux Enterprise Server
- Szybki start: instalowanie programu SQL Server i tworzenie bazy danych w systemie Ubuntu
Włączanie grup dostępności Always On
Włącz grupy dostępności Always On dla każdego węzła, który hostuje instancję programu SQL Server, a następnie uruchom ponownie mssql-server
. Uruchom następujący skrypt:
sudo /opt/mssql/bin/mssql-conf set hadr.hadrenabled 1
sudo systemctl restart mssql-server
Włącz sesję zdarzeń AlwaysOn_health
Opcjonalnie możesz włączyć zdarzenia rozszerzone (XE), aby ułatwić diagnozowanie głównej przyczyny podczas rozwiązywania problemów z grupą dostępności. Uruchom następujące polecenie w każdym wystąpieniu programu SQL Server:
ALTER EVENT SESSION AlwaysOn_health ON SERVER
WITH
(
STARTUP_STATE = ON
);
GO
Aby uzyskać więcej informacji na temat tej sesji XE, zobacz Konfigurowanie zdarzeń rozszerzonych dla grup dostępności.
Tworzenie certyfikatu
Serwis SQL Server w systemie Linux używa certyfikatów do uwierzytelniania komunikacji między punktami końcowymi mirroring.
Poniższy skrypt Transact-SQL tworzy klucz główny i certyfikat. Następnie tworzy kopię zapasową certyfikatu i zabezpiecza plik przy użyciu klucza prywatnego. Zaktualizuj skrypt przy użyciu silnych haseł. Połącz się z podstawowym wystąpieniem programu SQL Server. Aby utworzyć certyfikat, uruchom następujący skrypt 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>'
);
W tym momencie podstawowa replika programu SQL Server ma certyfikat w /var/opt/mssql/data/dbm_certificate.cer
i klucz prywatny w var/opt/mssql/data/dbm_certificate.pvk
. Skopiuj te dwa pliki do tej samej lokalizacji na wszystkich serwerach, które będą hostować repliki wysokiej dostępności. Użyj użytkownika mssql lub przyznaj użytkownikowi mssql uprawnienia dostępu do tych plików.
Na przykład na serwerze źródłowym następujące polecenie kopiuje pliki na maszynę docelową. Zastąp wartości <node2>
nazwami wystąpień programu SQL Server, które będą hostować repliki.
cd /var/opt/mssql/data
scp dbm_certificate.* root@<node2>:/var/opt/mssql/data/
Na każdym serwerze docelowym przyznaj użytkownikowi mssql uprawnienia dostępu do certyfikatu.
cd /var/opt/mssql/data
chown mssql:mssql dbm_certificate.*
Tworzenie certyfikatu na serwerach pomocniczych
Poniższy skrypt Transact-SQL tworzy klucz główny i certyfikat z kopii zapasowej utworzonej w podstawowej repliki programu SQL Server. Zaktualizuj skrypt przy użyciu silnych haseł. Hasło odszyfrowywania jest tym samym hasłem, które zostało użyte do utworzenia pliku .pvk
w poprzednim kroku. Aby utworzyć certyfikat, uruchom następujący skrypt na wszystkich serwerach pomocniczych:
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>'
);
W poprzednim przykładzie zastąp <private-key-password>
tym samym hasłem użytym podczas tworzenia certyfikatu w repliki podstawowej.
Utwórz punkty końcowe mirroringu bazy danych na wszystkich replikach
Punkty końcowe dublowania bazy danych używają protokołu TCP (Transmission Control Protocol) do wysyłania i odbierania komunikatów między wystąpieniami serwera uczestniczącymi w sesjach dublowania bazy danych lub replikami dostępności hosta. Punkt końcowy dublowania bazy danych nasłuchuje na unikatowym numerze portu TCP.
Poniższy skrypt Transact-SQL tworzy punkt końcowy nasłuchiwania o nazwie Hadr_endpoint
dla grupy dostępności. Uruchamia punkt końcowy i daje uprawnienie połączenia do utworzonego certyfikatu. Przed uruchomieniem skryptu zastąp wartości między < ... >
. Opcjonalnie możesz dołączyć adres IP LISTENER_IP = (0.0.0.0)
. Adres IP odbiornika musi być adresem IPv4. Możesz również użyć 0.0.0.0
.
Zaktualizuj następujący skrypt Transact-SQL dla środowiska we wszystkich wystąpieniach programu SQL Server:
CREATE ENDPOINT [Hadr_endpoint]
AS TCP
(
LISTENER_PORT = 5022
)
FOR DATABASE_MIRRORING
(
ROLE = ALL,
AUTHENTICATION = CERTIFICATE dbm_certificate,
ENCRYPTION = REQUIRED ALGORITHM AES
);
ALTER ENDPOINT [Hadr_endpoint]
STATE = STARTED;
Notatka
Jeśli używasz edycji SQL Server Express w jednym węźle do hostowania repliki przeznaczonej wyłącznie do konfiguracji, jedyną prawidłową wartością ROLE
jest WITNESS
. Uruchom następujący skrypt w wersji SQL Server Express:
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;
Port TCP na zaporze musi być otwarty dla portu nasłuchującego.
Ważny
W przypadku programu SQL Server 2017 (14.x) jedyną metodą uwierzytelniania obsługiwaną dla punktu końcowego dublowania bazy danych jest CERTIFICATE
. Opcja WINDOWS
jest niedostępna.
Aby uzyskać więcej informacji, zobacz Punkt Końcowy Dublowania Bazy Danych (SQL Server).
Tworzenie AG
W przykładach w tej sekcji wyjaśniono, jak utworzyć grupę dostępności przy użyciu języka Transact-SQL. Można również użyć Kreatora grupy dostępności programu SQL Server Management Studio. Podczas tworzenia AG przy użyciu kreatora występuje błąd podczas dołączania replik do AG. Aby rozwiązać ten problem, przyznaj ALTER
, CONTROL
i VIEW DEFINITIONS
do rozrusznika w grupie dostępności we wszystkich replikach. Po nadaniu uprawnień na repliki podstawowej, dołącz węzły do grupy dostępności za pomocą kreatora, ale aby wysoka dostępność działała prawidłowo, nadaj uprawnienia na wszystkich replikach.
W przypadku konfiguracji wysokiej dostępności, która zapewnia automatyczne przejście w tryb failover, grupa dostępności wymaga co najmniej trzech replik. Którakolwiek z następujących konfiguracji może obsługiwać wysoką dostępność:
Aby uzyskać informacje, zobacz Wysoka dostępność i ochrona danych dla konfiguracji grup dostępności.
Notatka
Grupy dostępności mogą obejmować dodatkowe repliki synchroniczne lub asynchroniczne.
Utwórz AG dla wysokiej dostępności w systemie Linux. Użyj CREATE AVAILABILITY GROUP z CLUSTER_TYPE = EXTERNAL
.
Grupa dostępności:
CLUSTER_TYPE = EXTERNAL
.Określa, że zewnętrzny podmiot klastra zarządza grupą dostępności. Pacemaker to przykład jednostki klastra zewnętrznego. Gdy typ klastra grupy dostępności jest zewnętrzny,
Ustaw repliki podstawowe i pomocnicze:
FAILOVER_MODE = EXTERNAL
.Określa, że replika współdziała z zewnętrznym menedżerem klastra, takim jak Pacemaker.
Następujące skrypty Transact-SQL tworzą grupę wysokiej dostępności o nazwie ag1
. Skrypt konfiguruje repliki AG (grupy dostępności) przy użyciu SEEDING_MODE = AUTOMATIC
. To ustawienie powoduje, że program SQL Server automatycznie utworzy bazę danych na każdym serwerze pomocniczym. Zaktualizuj następujący skrypt dla swojego środowiska. Zastąp wartości <node1>
, <node2>
lub <node3>
nazwami wystąpień programu SQL Server hostujących repliki. Zastąp <5022>
portem ustawionym dla punktu końcowego mirroringu danych. Aby utworzyć grupę dostępności, uruchom następujące Transact-SQL w wystąpieniu programu SQL Server, które obsługuje replikę podstawową.
Ważny
W bieżącej implementacji agenta zasobów programu SQL Server nazwa węzła musi być zgodna z właściwością ServerName
z wystąpienia. Jeśli na przykład nazwa węzła to node1, upewnij się, że parametr SERVERPROPERTY('ServerName') zwraca node1 w wystąpieniu programu SQL Server. Jeśli wystąpi niezgodność, repliki przejdą w stan rozwiązania po utworzeniu zasobu pacemaker.
Scenariusz, w którym ta reguła jest ważna w przypadku korzystania z w pełni kwalifikowanych nazw domen. Jeśli na przykład używasz node1.yourdomain.com jako nazwy węzła podczas instalacji klastra, upewnij się, że funkcja SERVERPROPERTY('ServerName') zwraca wartość node1.yourdomain.com, a nie tylko node1. Możliwe obejścia tego problemu to:
- Zmień nazwę hosta na nazwę FQDN i użyj
sp_dropserver
isp_addserver
procedur przechowywania, aby upewnić się, że metadane w programie SQL Server są zgodne ze zmianą. - Użyj opcji
addr
w poleceniupcs cluster auth
, aby dopasować nazwę węzła do wartości SERVERPROPERTY('ServerName') i użyć statycznego adresu IP jako adresu węzła.
Uruchom tylko jeden z następującego skryptu:
- Utwórz grupę dostępności z trzema synchronicznymi replikami
- Utwórz grupę dostępności z dwiema synchronicznymi replikami i repliką konfiguracyjną
- Utwórz grupę dostępności z dwiema synchronicznymi replikami
Utwórz grupę dostępności z trzema synchronicznymi replikami
Utwórz grupę dostępności z trzema synchronicznymi replikami:
CREATE AVAILABILITY GROUP [ag1]
WITH (DB_FAILOVER = ON, 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 = SYNCHRONOUS_COMMIT,
FAILOVER_MODE = EXTERNAL,
SEEDING_MODE = AUTOMATIC
);
ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
Ważny
Po uruchomieniu powyższego skryptu w celu utworzenia grupy dostępności (AG) z trzema replikami synchronicznymi, nie uruchamiaj kolejnego skryptu:
Utwórz grupę dostępności z dwiema synchronicznymi replikami i repliką konfiguracji
Utwórz Grupę dostępności AG z dwiema synchronicznymi replikami i repliką konfiguracji:
Ważny
Ta architektura umożliwia hostowanie trzeciej repliki w dowolnej wersji programu SQL Server. Na przykład trzecia replika może być hostowana w programie SQL Server Express Edition. W wersji Express jedynym prawidłowym typem punktu końcowego jest WITNESS
.
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;
Utwórz grupę dostępności z dwiema synchronicznymi replikami
Tworzenie Grupy Dostępności (AG) z dwiema synchronicznymi replikami
Uwzględnij dwie repliki z trybem dostępności synchronicznej. Na przykład poniższy skrypt tworzy grupę AG o nazwie ag1
.
node1
i node2
hostują repliki w trybie synchronicznym z automatycznym inicjowaniem i automatycznym przełączeniem awaryjnym.
Ważny
Uruchom tylko następujący skrypt, aby utworzyć grupę dostępności z dwiema replikami synchronicznymi. Nie uruchamiaj następującego skryptu, jeśli został uruchomiony poprzedni skrypt.
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
);
ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
Grupę dostępności można skonfigurować również za pomocą CLUSTER_TYPE=EXTERNAL
przy użyciu SQL Server Management Studio lub PowerShell.
Dołączanie replik wtórnych do grupy dostępności
Użytkownik Pacemaker wymaga uprawnień ALTER
, CONTROL
i VIEW DEFINITION
w grupie dostępności każdej repliki. Aby udzielić uprawnień, uruchom następujący skrypt Transact-SQL po utworzeniu grupy dostępności na replice podstawowej oraz na każdej replice pomocniczej niezwłocznie po ich dodaniu do grupy dostępności. Przed uruchomieniem skryptu zastąp <pacemakerLogin>
nazwą konta użytkownika Pacemaker. Jeśli nie masz konta do programu Pacemaker, utwórz konto SQL Server dla programu Pacemaker.
GRANT ALTER, CONTROL, VIEW DEFINITION ON AVAILABILITY GROUP::ag1 TO <pacemakerLogin>
GRANT VIEW SERVER STATE TO <pacemakerLogin>
Poniższy skrypt Transact-SQL dołącza wystąpienie programu SQL Server do Grupy Dostępności o nazwie ag1
. Zaktualizuj skrypt dla środowiska. W każdym wystąpieniu programu SQL Server, które hostuje replikę pomocniczą, uruchom komendę Transact-SQL, aby dołączyć do Grupy Dostępności.
ALTER AVAILABILITY GROUP [ag1] JOIN WITH (CLUSTER_TYPE = EXTERNAL);
ALTER AVAILABILITY GROUP [ag1] GRANT CREATE ANY DATABASE;
Dodawanie bazy danych do grupy dostępności
Upewnij się, że baza danych dodana do grupy dostępności znajduje się w pełnym modelu odzyskiwania i ma prawidłową kopię zapasową dziennika. Jeśli baza danych jest testową bazą danych lub nowo utworzoną bazą danych, utwórz kopię zapasową bazy danych. W podstawowym programie SQL Server uruchom następujący skrypt Transact-SQL (T-SQL), aby utworzyć i utworzyć kopię zapasową bazy danych o nazwie db1
:
CREATE DATABASE [db1];
GO
ALTER DATABASE [db1]
SET RECOVERY FULL;
GO
BACKUP DATABASE [db1]
TO DISK = N'/var/opt/mssql/data/db1.bak';
W podstawowej repliki programu SQL Server uruchom następujący skrypt języka T-SQL, aby dodać bazę danych o nazwie db1
do grupy dostępności o nazwie ag1
:
ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1];
Sprawdź, czy baza danych została utworzona na serwerach pomocniczych
W każdej pomocniczej repliki programu SQL Server uruchom następujące zapytanie, aby sprawdzić, czy baza danych db1
została utworzona i jest zsynchronizowana:
SELECT *
FROM sys.databases
WHERE name = 'db1';
GO
SELECT DB_NAME(database_id) AS 'database',
synchronization_state_desc
FROM sys.dm_hadr_database_replica_states;
GO
Ważny
Po utworzeniu grupy dostępności należy skonfigurować integrację z technologią klastra, aby zapewnić wysoką dostępność, na przykład przy użyciu Pacemaker. W przypadku konfiguracji skalowania odczytu przy użyciu grup AG, począwszy od programu SQL Server 2017 (14.x), konfigurowanie klastra nie jest wymagane.
Jeśli wykonano kroki opisane w tym dokumencie, masz AG (grupa dostępności), która jeszcze nie jest skonfigurowana w klastrze. Następnym krokiem jest dodanie klastra. Ta konfiguracja jest prawidłowa w scenariuszach skalowania odczytu/równoważenia obciążenia, ale nie jest kompletna do zapewnienia wysokiej dostępności. Aby zapewnić wysoką dostępność, należy dodać grupę dostępności jako zasób klastra. Aby uzyskać instrukcje, zobacz Powiązana zawartość.
Uwagi
Ważny
Po skonfigurowaniu klastra i dodaniu grupy dostępności jako zasobu klastra, nie można użyć Transact-SQL, aby przełączyć zasoby grupy dostępności na tryb failover. Zasoby klastra programu SQL Server w systemie Linux nie są ściśle powiązane z systemem operacyjnym, ponieważ znajdują się w klastrze trybu failover systemu Windows Server (WSFC). Usługa SQL Server nie jest świadoma obecności klastra. Wszystkie aranżacje są wykonywane za pomocą narzędzi do zarządzania klastrem. W systemie RHEL lub Ubuntu użyj pcs
. W systemie SLES użyj crm
.
Ważny
Jeśli grupa dostępności jest zasobem klastra, w bieżącej wersji występuje znany problem polegający na tym, że wymuszone przejście w tryb awaryjny z utratą danych do repliki asynchronicznej nie działa. Zostanie to naprawione w nadchodzącej wersji. Ręczne lub automatyczne przełączenie awaryjne do repliki synchronicznej kończy się powodzeniem.