sql >> Database >  >> RDS >> Sqlserver

Verschillende manieren om SQL Server AlwaysOn-beschikbaarheidsgroepen te bewaken

In mijn vorige artikelen heb ik het stapsgewijze proces uitgelegd voor het implementeren van een AlwaysOn-beschikbaarheidsgroep op SQL Server 2017. In dit artikel ga ik uitleggen hoe u AlwaysOn-beschikbaarheidsgroepen controleert.

Laten we eerst eens kijken naar de configuratie van de beschikbaarheidsgroep die we eerder hadden geïmplementeerd. Open hiervoor SQL Server Management Studio  Vouw database-engine uit vanuit de objectverkenner  Vouw “AlwaysOn High Availability . uit ”  Vouw “Beschikbaarheidsgroepen uit ” U kunt de beschikbaarheidsgroep zien met de naam SQLAAG . Onder deze beschikbaarheidsgroep (SQLAAG) ziet u de lijst met beschikbaarheidsreplica's, beschikbaarheidsdatabases en beschikbaarheidsgroeplisteners.

Zie de volgende afbeelding:

U kunt de details bekijken door de volgende zoekopdrachten uit te voeren.

DECLARE @HADRSERVERNAME VARCHAR(25) 
SET @HADRSERVERNAME = @@SERVERNAME 
SELECT CLUSTERNODES.GROUP_NAME          AS [AVAILABILITY GROUP NAME], 
       CLUSTERNODES.REPLICA_SERVER_NAME AS [AVAILABILITY REPLICA NAME], 
       CLUSTERNODES.NODE_NAME           AS [AVAILABILITY NODE], 
       RS.ROLE_DESC                     AS [ROLE], 
       DB_NAME(DRS.DATABASE_ID)         AS [AVAILABILITY DATABASE], 
       DRS.SYNCHRONIZATION_STATE_DESC   AS [SYNCHRONIZATION STATUS], 
       DRS.SYNCHRONIZATION_HEALTH_DESC  AS [SYNCHRONIZATION HEALTH] 
FROM   SYS.DM_HADR_AVAILABILITY_REPLICA_CLUSTER_NODES CLUSTERNODES 
       JOIN SYS.DM_HADR_AVAILABILITY_REPLICA_CLUSTER_STATES CLUSTERSTATS 
         ON CLUSTERNODES.REPLICA_SERVER_NAME = CLUSTERSTATS.REPLICA_SERVER_NAME 
       JOIN SYS.DM_HADR_AVAILABILITY_REPLICA_STATES RS 
         ON RS.REPLICA_ID = CLUSTERSTATS.REPLICA_ID 
       JOIN SYS.DM_HADR_DATABASE_REPLICA_STATES DRS 
         ON RS.REPLICA_ID = DRS.REPLICA_ID 
WHERE  CLUSTERNODES.REPLICA_SERVER_NAME <> @HADRSERVERNAME

Hieronder volgt de uitvoer:

Een AlwaysOn-beschikbaarheidsgroep bewaken

U kunt de AlwaysOn-beschikbaarheidsgroep controleren met:

  1. AlwaysOn Monitoring-dashboard in SQL Server Management Studio.
  2. Prestatiemonitor-tellers.

Bewaking ing AlwaysOn-beschikbaarheidsgroep s het dashboard gebruiken

Om de status van een beschikbaarheidsgroep te bewaken, kunt u het Monitoring Dashboard gebruiken. Om het dashboard te starten, klikt u met de rechtermuisknop op de map Beschikbaarheidsgroepen en selecteert u "Toon Dashboard. ” Zie de volgende afbeelding:

Het AlwaysOn-dashboard voor het bewaken van de beschikbaarheidsgroep wordt geopend in een nieuw tabblad. Het geeft veel informatie weer over de geconfigureerde beschikbaarheidsgroep. Het dashboard biedt een overzicht op hoog niveau van de configuratie. Het bevat de naam van de beschikbaarheidsgroep, het primaire exemplaar en de failovermodus. Als een cluster een probleem heeft, wordt dit weergegeven in de "Problemen ” kolom. Zie de volgende afbeelding:

Klik nu op de naam van de beschikbaarheidsgroep. Er wordt een nieuw tabblad geopend met de details van de geselecteerde beschikbaarheidsgroep. Zie de volgende afbeelding:

Bovenaan het dashboard ziet u de status van de beschikbaarheidsgroep, de primaire instantie, de failover-modus, de clusterstatus en het type.

In de Beschikbaarheidsreplica sectie kunt u de instantienamen van de deelnemende replica's, hun rollen, beschikbaarheidsmodi, failover-modi en synchronisatiestatussen zien. U kunt ook meer informatie bekijken door andere kolommen toe te voegen. Om dat te doen, klikt u met de rechtermuisknop ergens in het raster en selecteert u de kolommen in het contextmenu. U kunt ook klikken op "Toevoegen/ R verwijder C oliën ” om de volledige lijst met kolommen te krijgen. Zie de volgende afbeelding:

Op dezelfde manier kunt u meer informatie bekijken over de “beschikbaarheidsdatabases” door andere kolommen toe te voegen. Om dat te doen, klikt u met de rechtermuisknop op het gedeelte beschikbaarheidsdatabase en selecteert u de kolommen in het contextmenu. U kunt ook klikken op "Toevoegen/ R verwijder C oliën ” om de volledige lijst met kolommen te krijgen. Zie de volgende afbeelding:

In de G ronde per sectie, kunt u de lijst met “Beschikbaarheidsdatabases” . zien binnen de beschikbaarheidsreplica's. U kunt de G . aanpassen ronde per door een van de groeperingsmethoden te kiezen die beschikbaar zijn in de "Groeperen op " laten vallen. Zie de volgende afbeelding:

Wanneer we de AlwaysOn-beschikbaarheidsgroepen implementeren, maakt SQL Server een uitgebreide gebeurtenissessie met de naam "AlwaysOn_Health ” op het SQL Server-exemplaar. Deze uitgebreide gebeurtenis kan worden gebruikt om de gebeurtenissen en prestaties van beschikbaarheidsgroepen te bewaken. U kunt de uitgebreide evenementen openen door te klikken op "Bekijk AlwaysOn H ealth E ventilatieopeningen. ” Zie de volgende afbeelding:

Het toont alle sessies van AlwaysOn-gezondheidsgebeurtenissen die kunnen worden gebruikt om de status van de beschikbaarheidsgroep te controleren.

U kunt de clusterquoruminformatie bekijken door te klikken op "Clusterquoruminformatie bekijken ”. In het dialoogvenster met informatie over het clusterquorum ziet u de naam van het cluster, het lidtype, de staat en het aantal stemmen. Zie de volgende afbeelding:

Bewaking ing AlwaysOn-beschikbaarheidsgroep s met de Prestatiemonitor

We kunnen beschikbaarheidsgroepen bewaken met behulp van ingebouwde tellers in de prestatiemonitor. Hier heeft Microsoft twee objecten met verschillende prestatiemeteritems toegevoegd. De objecten zijn als volgt:

  1. SQLServer:Beschikbaarheidsreplica
  2. SQLServer:databasereplica

SQLServer:Beschikbaarheidsreplica object biedt prestatiemeteritems die worden gebruikt om de prestaties van AlwaysOn-beschikbaarheidsreplica's te controleren.

Hieronder volgt de beschrijving van de tellers:

Tellernaam Beschrijving
Bytes ontvangen van replica/sec Toont het aantal bytes dat per seconde van de replica is ontvangen.
Bytes verzonden naar replica/sec Toont het aantal bytes dat per seconde naar de externe replica wordt verzonden. Op de primaire replica wordt het aantal bytes weergegeven dat naar de secundaire replica is verzonden. Op de secundaire replica wordt het aantal bytes weergegeven dat naar de primaire replica is verzonden.
Bytes verzonden naar transport/sec Toont het werkelijke aantal bytes dat per seconde via het netwerk naar de externe replica wordt verzonden. Op de primaire replica wordt het aantal bytes weergegeven dat naar de secundaire replica is verzonden. Op de secundaire replica wordt het aantal bytes weergegeven dat naar de primaire replica is verzonden.
Ontvangt van replica/sec Toont het aantal AlwaysOn-berichten dat van de replica is ontvangen.
Recente berichten/sec Toont het aantal AlwaysOn-berichten dat in de vorige seconde opnieuw is verzonden.
Verzendt naar replica/sec Toont het aantal AlwaysOn-berichten dat naar de replica is verzonden.
Verzendt naar transport/sec Toont het werkelijke aantal AlwaysOn-berichten dat per seconde via het netwerk naar de replica voor beschikbaarheid op afstand wordt verzonden. Op de primaire replica wordt het aantal berichten weergegeven dat naar de secundaire replica is verzonden. Op de secundaire replica wordt het aantal berichten weergegeven dat naar de primaire replica is verzonden.

SQLServer:databasereplica object heeft een lijst met items die worden gebruikt om de prestaties van de secundaire replica's van een beschikbaarheidsgroep te bewaken. De SQLServer:Database Replica object wordt alleen gebruikt voor SQL Server-databases die worden gehost op een secundaire replica.

Hieronder volgt de beschrijving van de tellers:

Tellernaam

Beschrijving

Kan worden bekeken op

Bestandsbytes ontvangen/sec

Toont de hoeveelheid FILESTREAM-gegevens die in de laatste seconde zijn ontvangen door de secundaire database van de secundaire replica.

Op secundaire replica

Logbytes ontvangen/sec

Toont het aantal logboekrecords dat in de laatste seconde door de database in de secundaire replica is ontvangen.

Op secundaire replica

Resterend logbestand om ongedaan te maken

Toont de hoeveelheid logboek die overblijft om de ongedaanmakingsfase te voltooien. Het logbedrag wordt weergegeven in kilobytes.

Op secundaire replica

Verzendwachtrij loggen

Toont het aantal logboekrecords in de logboekbestanden van de primaire database (in kilobytes) die niet naar de secundaire replica zijn verzonden. De grootte van de wachtrij omvat geen FILESTREAM-bestanden die naar een secundaire replica worden verzonden.

Op secundaire replica

Gespiegelde schrijftransactie/sec

Toont het aantal transacties dat in de laatste seconde naar de gespiegelde database is geschreven en wacht op het logboek dat naar de spiegel is verzonden om de vastlegging uit te voeren.

Op primaire replica

Herstelwachtrij

Toont het aantal logrecords in de logbestanden van de secundaire replica die nog niet opnieuw zijn gedaan.

Op secundaire replica

Resterende bytes opnieuw uitvoeren

Toont de hoeveelheid logboek die nog moet worden overgedaan om de herstelfase te voltooien. De loggrootte wordt weergegeven in kilobytes.

Op secundaire replica

Bytes/sec opnieuw gedaan

Toont het aantal logboekrecords dat in de laatste seconde opnieuw is gedaan in de secundaire database.

Op secundaire replica

Totaal logboek vereist ongedaan maken

Toont de totale grootte van het logboek dat ongedaan moet worden gemaakt. De grootte van het logboek wordt weergegeven in kilobytes.

Op secundaire replica

Transactie vertraging

Toont de vertraging in het wachten op onafgesloten commit-bevestiging. De tijd wordt weergegeven in milliseconden.

Op secundaire replica

Samenvatting

In dit artikel heb ik de verschillende manieren uitgelegd om AlwaysOn-beschikbaarheidsgroepen te controleren. In mijn volgende artikel zal ik het geplande handmatige en automatische failoverproces demonstreren met behulp van SQL Server Management Studio, T-SQL Script en PowerShell.

Blijf op de hoogte..!


  1. Omgaan met datum en tijd in plaats van datetime

  2. Een kolomwaarde bijwerken, een deel van een tekenreeks vervangen

  3. Kun je een index maken in de CREATE TABLE-definitie?

  4. Verandert het resource-ID elke keer dat een toepassing wordt gestart?