Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:SQL Server - Linux
In deze zelfstudie wordt uitgelegd hoe u SQL Server-beschikbaarheidsgroepen configureert met HPE Serviceguard voor Linux, die worden uitgevoerd op on-premises virtuele machines (VM's) of in virtuele Machines op basis van Azure.
Raadpleeg HPE Serviceguard-clusters voor een overzicht van de HPE Serviceguard-clusters.
Opmerking
Microsoft ondersteunt gegevensverplaatsing, de beschikbaarheidsgroep en de SQL Server-onderdelen. Neem contact op met HPE voor ondersteuning met betrekking tot de documentatie van het HPE Serviceguard-cluster en quorumbeheer.
Deze zelfstudie bestaat uit de volgende taken:
- INSTALLEER SQL Server op alle drie de VM's die deel uitmaken van de beschikbaarheidsgroep
 - HPE Serviceguard installeren op de VM's
 - Het HPE Serviceguard-cluster maken
 - De load balancer maken in Azure Portal
 - De beschikbaarheidsgroep maken en een voorbeelddatabase toevoegen aan de beschikbaarheidsgroep
 - De SQL Server-workload implementeren in de beschikbaarheidsgroep via Serviceguard-clusterbeheer
 - Een automatische failover uitvoeren en het knooppunt weer koppelen aan het cluster
 
Vereiste voorwaarden
Maak in Azure drie op Linux gebaseerde VM's (virtuele machines). Als u virtuele Linux-machines in Azure wilt maken, raadpleegt u de quickstart: Een virtuele Linux-machine maken in Azure Portal. Zorg er bij het implementeren van de VM's voor dat u HPE Serviceguard ondersteunde Linux-distributies gebruikt. U kunt de VM's desgewenst ook lokaal implementeren in een on-premises omgeving.
Zie HPE Serviceguard voor Linux voor een voorbeeld van een ondersteunde distributie. Neem contact op met HPE voor informatie over ondersteuning voor openbare cloudomgevingen.
De instructies in deze zelfstudie worden gevalideerd op basis van HPE Serviceguard voor Linux. Er is een proefversie beschikbaar om te downloaden van HPE.
SQL Server-databasebestanden op logische volumes (LVM) voor alle drie virtuele machines. Zie snelstartgids voor Serviceguard Linux (HPE)
Zorg ervoor dat er een OpenJDK Java-runtime is geïnstalleerd op de VM's. De IBM Java SDK wordt niet ondersteund.
SQL Server installeren
Volg op alle drie de VM's een van de onderstaande stappen op basis van de Linux-distributie die u voor deze zelfstudie kiest om SQL Server en hulpprogramma's te installeren.
Red Hat Enterprise Linux (RHEL)
SUSE Linux Enterprise Server (SLES)
Nadat u deze stap hebt voltooid, moeten de SQL Server-service en -hulpprogramma's zijn geïnstalleerd op alle drie de VM's die deelnemen aan de beschikbaarheidsgroep.
HPE Serviceguard installeren op de VM's
In deze stap installeert u HPE Serviceguard voor Linux op alle drie de VM's. In de volgende tabel wordt beschreven welke rol elke server in het cluster speelt.
| Aantal virtuele machines | HPE Serviceguard-rol | Rol van replica in Microsoft SQL Server-beschikbaarheidsgroep | 
|---|---|---|
| 1 | HPE Serviceguard-clusterknooppunten | Primaire replica | 
| 1 of meer | HPE Serviceguard-clusterknooppunt | Secundaire replica | 
| 1 | HPE Serviceguard-quorumserver | Alleen replica configureren | 
Opmerking
Raadpleeg deze video van HPE, waarin wordt beschreven hoe u een HPE Serviceguard-cluster installeert en configureert via de gebruikersinterface.
Gebruik de cminstaller methode om Serviceguard te installeren. Specifieke instructies zijn beschikbaar in de volgende koppelingen:
- Installeer Serviceguard voor Linux op twee knooppunten. Raadpleeg de sectie Install_serviceguard_using_cminstaller.
 - Installeer de Serviceguard-quorumserver op het derde knooppunt. Raadpleeg de sectie Install_QS_from_the_ISO.
 
Nadat u de installatie van het HPE Serviceguard-cluster hebt voltooid, kunt u de portal voor clusterbeheer inschakelen op TCP-poort 5522 op het primaire replicaknooppunt. Met de volgende stappen voegt u een regel toe aan de firewall om 5522 toe te staan. De volgende opdracht is voor een Red Hat Enterprise Linux (RHEL). U moet vergelijkbare opdrachten uitvoeren voor andere distributies:
sudo firewall-cmd --zone=public --add-port=5522/tcp --permanent
sudo firewall-cmd --reload
HPE Serviceguard-cluster maken
Volg deze instructies om het HPE Serviceguard-cluster te configureren en te maken. In deze stap configureert u ook de quorumserver.
- Configureer de Serviceguard-quorumserver op het derde knooppunt. Raadpleeg de sectie Configure_QS .
 - Configureer en maak een Serviceguard-cluster op de andere twee knooppunten. Raadpleeg de sectie Configure_and_create_Cluster .
 
Opmerking
U kunt handmatige installatie van uw HPE Serviceguard-cluster en quorum overslaan door de EXTENSIE HPE Serviceguard voor Linux (SGLX) toe te voegen vanuit de Azure VM Marketplace wanneer u uw VIRTUELE machine maakt.
De beschikbaarheidsgroep maken en een voorbeelddatabase toevoegen
In deze stap maakt u een beschikbaarheidsgroep met twee (of meer) synchrone replica's en een alleen-configuratiereplica, die gegevensbeveiliging biedt en mogelijk ook hoge beschikbaarheid biedt. Het volgende diagram vertegenwoordigt deze architectuur:
              
              
              
              
            
Synchrone replicatie van gebruikersgegevens naar de secundaire replica. Het bevat ook metagegevens van de configuratie van beschikbaarheidsgroepen.
Synchrone replicatie van metagegevens van de configuratie van beschikbaarheidsgroepen. Het bevat geen gebruikersgegevens.
Zie Hoge beschikbaarheid en gegevensbeveiliging voor configuraties van beschikbaarheidsgroepenvoor meer informatie.
Voer de volgende stappen uit om de beschikbaarheidsgroep te maken:
- Schakel beschikbaarheidsgroepen in en start mssql-server opnieuw op alle VM's, met inbegrip van de alleen-configuratiereplica.
 - 
              Een 
AlwaysOn_healthgebeurtenissessie inschakelen (optioneel) - Een certificaat maken op de primaire VM
 - Het certificaat maken op secundaire servers
 - De eindpunten voor databasespiegeling maken op de replica's
 - Beschikbaarheidsgroep maken
 - Secundaire replica's toevoegen
 - Een database toevoegen aan de beschikbaarheidsgroep
 
Beschikbaarheidsgroepen inschakelen en mssql-server opnieuw starten
Schakel beschikbaarheidsgroepen in op alle knooppunten waarop een SQL Server-exemplaar wordt gehost. Start vervolgens mssql-server opnieuw op. Voer het volgende script uit op alle drie de knooppunten:
sudo /opt/mssql/bin/mssql-conf
set hadr.hadrenabled 1 sudo systemctl restart mssql-server
Een AlwaysOn_health gebeurtenissessie inschakelen (optioneel)
Schakel eventueel uitgebreide gebeurtenissen van AlwaysOn-beschikbaarheidsgroepen in om u te helpen bij de diagnose van de hoofdoorzaak bij het oplossen van problemen met een beschikbaarheidsgroep. Voer de volgende opdracht uit op elk exemplaar van SQL Server:
ALTER EVENT SESSION AlwaysOn_health ON SERVER
WITH
(
        STARTUP_STATE = ON
);
GO
Een certificaat maken op de primaire VM
Met het volgende Transact-SQL script maakt u een hoofdsleutel en een certificaat. Vervolgens wordt een back-up van het certificaat gemaakt en wordt het bestand beveiligd met een persoonlijke sleutel. Werk het script bij met sterke wachtwoorden. Maak verbinding met het primaire SQL Server-exemplaar en voer het volgende Transact-SQL script uit:
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>'
);
Op dit moment heeft de primaire SQL Server-replica een certificaat op /var/opt/mssql/data/dbm_certificate.cer en een persoonlijke sleutel op var/opt/mssql/data/dbm_certificate.pvk. Kopieer deze twee bestanden naar dezelfde locatie op alle servers waarop beschikbaarheidsreplica's worden gehost. Gebruik de mssql gebruiker of geef de mssql gebruiker toestemming om toegang te krijgen tot deze bestanden.
Op de bronserver kopieert de volgende opdracht bijvoorbeeld de bestanden naar de doelcomputer. Vervang de node2 waarden door de naam van de host waarop het secundaire SQL Server-exemplaar wordt uitgevoerd. Kopieer het certificaat op de alleen replica van de configuratie en voer ook de onderstaande opdrachten uit op dat knooppunt.
cd /var/opt/mssql/data
scp dbm_certificate.* root@<node2>:/var/opt/mssql/data/
Voer nu op de secundaire VM's, waarop het secundaire exemplaar en de alleen-configuratiereplica van SQL Server draaien, de onderstaande commando's uit zodat de mssql gebruiker eigenaar kan zijn van het gekopieerde certificaat:
cd /var/opt/mssql/data
chown mssql:mssql dbm_certificate.*
Het certificaat maken op secundaire servers
Met het volgende Transact-SQL script maakt u een hoofdsleutel en een certificaat op basis van de back-up die u hebt gemaakt op de primaire SQL Server-replica. Werk het script bij met sterke wachtwoorden. Het ontsleutelingswachtwoord is hetzelfde wachtwoord dat u in een vorige stap hebt gebruikt om het .pvk-bestand te maken. Als u het certificaat wilt maken, voert u het volgende script uit op alle secundaire servers, met uitzondering van de alleen-configuratiereplica:
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>'
);
Vervang in het vorige voorbeeld <private-key-password> door hetzelfde wachtwoord dat u hebt gebruikt bij het maken van het certificaat op de primaire replica.
De eindpunten voor databasespiegeling maken op de replica's
Voer op de primaire en secundaire replica's de onderstaande opdrachten uit om de eindpunten voor databasespiegeling te maken:
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;
Opmerking
5022 is de standaardpoort die wordt gebruikt voor het eindpunt voor databasespiegeling, maar u kunt deze wijzigen in elke beschikbare poort.
Op de replica die alleen voor configuratie is bedoeld, maakt u het eindpunt voor databasespiegeling met behulp van de onderstaande opdracht. Noteer dat de waarde voor de rol hier is ingesteld op WITNESS, wat nodig is voor de replica met alleen configuratie.
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;
Beschikbaarheidsgroep maken
Voer op het primaire replica-exemplaar de volgende opdrachten uit. Met deze opdrachten maakt u een beschikbaarheidsgroep met de naam ag1, die een EXTERNE cluster_type heeft en create database-rechten verleent aan de beschikbaarheidsgroep.
Voordat u de volgende scripts uitvoert, vervangt u de tijdelijke aanduidingen <node1>, <node2> en <node3> (slechts configuratie-replica) door de namen van de virtuele machines die u in de vorige stappen hebt gemaakt.
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;
De secundaire replica's verbinden
Voer de volgende opdrachten uit op alle secundaire replica's. Deze opdrachten voegen de secundaire replica's toe aan de ag1 beschikbaarheidsgroep met de primaire replica en bieden databasetoegang tot de ag1 beschikbaarheidsgroep.
ALTER AVAILABILITY GROUP [ag1]
JOIN WITH (CLUSTER_TYPE = EXTERNAL);
GO
ALTER AVAILABILITY GROUP [ag1]
GRANT CREATE ANY DATABASE;
GO
Een database toevoegen aan de beschikbaarheidsgroep
Maak verbinding met de primaire replica en voer de volgende T-SQL-opdrachten uit om:
Maak een voorbeelddatabase met de naam
db1, die wordt toegevoegd aan de beschikbaarheidsgroep.CREATE DATABASE [db1]; GOStel het herstelmodel van de database in op volledig. Voor alle databases in een beschikbaarheidsgroep is een volledig herstelmodel vereist.
ALTER DATABASE [db1] SET RECOVERY FULL; GOEen back-up maken van de database. Voor een database is ten minste één volledige back-up vereist voordat u deze kunt toevoegen aan een beschikbaarheidsgroep.
BACKUP DATABASE [db1] TO DISK = N'/var/opt/mssql/data/db1.bak'; GOStel de database in op het volledige herstelmodel.
ALTER DATABASE [db1] SET RECOVERY FULL; GOEen back-up maken van de database naar schijf
BACKUP DATABASE [db1] TO DISK = N'/var/opt/mssql/data/db1.bak'; GOVoeg de database
db1toe aan de beschikbaarheidsgroep.ALTER AVAILABILITY GROUP [ag1] ADD DATABASE [db1];
Nadat u de vorige stappen hebt voltooid, ziet u een ag1 beschikbaarheidsgroep die is gemaakt en worden de drie virtuele machines toegevoegd als replica met één primaire replica, één secundaire replica en één configuratie-alleen replica. 
              ag1 bevat één database.
De workload van de SQL Server-beschikbaarheidsgroep implementeren (HPE-clusterbeheer)
Implementeer in HPE Serviceguard de SQL Server-workload in de beschikbaarheidsgroep via de gebruikersinterface van Serviceguard-clusterbeheer.
Implementeer de workload van de beschikbaarheidsgroep en schakel hoge beschikbaarheid (HA) in, herstel na noodgevallen via een Serviceguard-cluster met behulp van de grafische gebruikersinterface van Serviceguard Manager. Raadpleeg de sectie Microsoft SQL Server beveiligen in Linux voor AlwaysOn-beschikbaarheidsgroepen.
De load balancer maken in Azure Portal
Voor implementaties in Azure Cloud vereist HPE Serviceguard voor Linux een load balancer om clientverbindingen met de primaire replica in te schakelen om traditionele IP-adressen te vervangen.
Open de resourcegroep in de Azure Portal die de Serviceguard-clusterknooppunten of virtuele machines bevat.
Selecteer Toevoegen in de resourcegroep.
Zoek naar 'load balancer' en selecteer vervolgens in de zoekresultaten de Load Balancer die door Microsoft is gepubliceerd.
Op het deelvenster Load Balancer, selecteer Maken.
Configureer de load balancer als volgt:
Configuratie Waarde Naam De naam van de load balancer. Bijvoorbeeld: SQLAvailabilityGroupLB.Typ Intern SKU Basis of Standaard Virtueel netwerk Virtueel netwerk dat wordt gebruikt voor de VM-replica's Subnet Subnet waarin SQL Server-exemplaren worden gehost TOEWIJZING VAN IP-adres Statisch Privé-IP-adres Een privé-IP maken binnen het subnet Abonnement Kies het betreffende abonnement Resourcegroep Kies de betreffende resourcegroep Plaats Dezelfde locatie selecteren als SQL-knooppunten 
De back-endpool configureren
De back-endpool bevat de adressen van de twee instanties waarop het Serviceguard-cluster is geconfigureerd.
- Selecteer in uw resourcegroep de load balancer die u hebt gemaakt.
 - Ga naar Back-endpools voor instellingen >en selecteer Toevoegen om een back-endadresgroep te maken.
 - Typ bij Back-endpool toevoegen, onder Naam, een naam voor de back-endpool.
 - Selecteer virtuele machine onder Gekoppeld aan.
 - Selecteer de virtuele machine in de omgeving en koppel het juiste IP-adres aan elke selectie.
 - Selecteer Toevoegen.
 
Een sonde maken
De test definieert hoe Azure controleert welke van het Serviceguard-clusterknooppunt primaire replica is. Azure test de service op basis van het IP-adres op een poort die u definieert wanneer u de test maakt.
Selecteer statustests in het deelvenster Load balancer-instellingen.
Selecteer Toevoegen in het deelvenster Gezondheidstesten.
Gebruik de volgende waarden om de test te configureren:
Configuratie Waarde Naam Naam die de sonde vertegenwoordigt. Bijvoorbeeld: SQLAGPrimaryReplicaProbe.Protocol TCP port U kunt elke beschikbare poort gebruiken. Bijvoorbeeld 59999. Interval 5 Ongezonde drempelwaarde 2 Kies OK.
Meld u aan bij al uw virtuele machines en open de testpoort met behulp van de volgende opdrachten:
sudo firewall-cmd --zone=public --add-port=59999/tcp --permanent sudo firewall-cmd --reload
Azure maakt de test en gebruikt deze vervolgens om het Serviceguard-knooppunt te testen waarop het primaire replica-exemplaar van de beschikbaarheidsgroep wordt uitgevoerd. Onthoud dat de poort is geconfigureerd (59999), die is vereist voor het implementeren van de AG in het Serviceguard-cluster.
De taakverdelingsregels instellen
De taakverdelingsregels configureren hoe de load balancer verkeer routeert naar het Serviceguard-knooppunt. Dit is de primaire replica in het cluster. Schakel voor deze load balancer de directe server return in, omdat slechts één van de Serviceguard-clusterknooppunten tegelijk een primaire replica kan zijn.
Selecteer taakverdelingsregels in het deelvenster Load balancer-instellingen.
Selecteer Toevoegen in het deelvenster Taakverdelingsregels.
Configureer de taakverdelingsregel met behulp van de volgende instellingen:
Configuratie Waarde Naam Naam die de taakverdelingsregels vertegenwoordigt. Bijvoorbeeld: SQLAGPrimaryReplicaListener.Protocol TCP port 1433 Back-end-poort 1433. Deze waarde wordt genegeerd omdat deze regel gebruikmaakt van zwevend IP-adres. test Gebruik de naam van de probe die u voor deze load balancer hebt gemaakt. Sessiepersistentie Geen Time-out voor inactiviteit (minuten) 4 Floating IP Ingeschakeld Kies OK.
Azure configureert de taakverdelingsregel. De load balancer is nu geconfigureerd om verkeer te routeren naar het Serviceguard-knooppunt dat het primaire replica-exemplaar in het cluster is.
Noteer het front-end-IP-adres van de load balancer 'LbReadWriteIP', dat is vereist voor het implementeren van de AG in het Serviceguard-cluster.
Op dit moment heeft de resourcegroep een load balancer die verbinding maakt met alle Serviceguard-knooppunten. De load balancer bevat ook een IP-adres voor de clients om verbinding te maken met het primaire replica-exemplaar in het cluster, zodat elke computer die een primaire replica is, kan reageren op aanvragen voor de beschikbaarheidsgroep.
Automatische failover uitvoeren en het knooppunt weer koppelen aan het cluster
Voor de automatische failovertest kunt u de primaire replica omlaag halen (uitschakelen), waardoor de plotselinge onbeschikbaarheid van het primaire knooppunt wordt gerepliceerd. Het verwachte gedrag is:
De clusterbeheerder bevordert een van de secundaire replica's in de beschikbaarheidsgroep tot primaire replica.
De mislukte primaire replica wordt automatisch lid van het cluster nadat het opnieuw is opgestart. De clusterbeheerder promoot deze naar een secundaire replica.
Raadpleeg voor HPE Serviceguard de sectie Testen van de installatie voor failovergereedheid