Systeemstoringen en storingen zijn pijnlijk voor DBA's, maar nog meer voor klanten. De gebruikers van vandaag verwachten bijna 100 procent beschikbaarheid, en alles wat minder is, is reden tot irritatie als je geluk hebt en het verlies van een klant als je dat niet bent.
Een van de belangrijkste doelen van de DBA is ervoor te zorgen dat SQL Server-instanties en -databases online blijven en functioneren na een storing of uitval. Een methode om de beschikbaarheid te verhogen is het opzetten van Windows Server Failover Clusters met SQL Server.
Een failovercluster is een groep servers die samenwerken om de beschikbaarheid van uw applicaties en services te behouden in het geval van een storing of storing. Kortom, het failovercluster neemt alle gegevens die zich op een SQL Server-instantie bevinden en installeert deze in een gedeelde opslagplaats - meestal op een SAN - die toegankelijk is vanaf verschillende servers.
Om u op weg te helpen op weg naar hoge beschikbaarheid, hebben we de negen belangrijkste do's en don'ts samengesteld voor het instellen van uw SQL Server-failovercluster, zodat u de downtime van de database kunt minimaliseren.
1. Sla clustervalidatie niet over.
Voordat u een cluster installeert, is het noodzakelijk dat u validatie uitvoert om de configuratie te controleren. Als dit een nieuw cluster is, wilt u alle tests uitvoeren.
Zodra het cluster is ingesteld en u uw SQL Server-instanties volledig op het cluster hebt geïnstalleerd en geconfigureerd, voert u validatie uit wanneer u wijzigingen aanbrengt. Het is belangrijk om ervoor te zorgen dat de validatieresultaten correct zijn voordat u uw SQL Server-failovercluster actief maakt, zodat u geen downtime hoeft te plannen om gemiste problemen op te lossen.
2. Configureer het quorum goed.
Als u uw SQL Server online wilt houden, moet u ervoor zorgen dat u het quorum correct hebt geconfigureerd in het failovercluster. Deze Microsoft-documentatie biedt uitgebreide instructies over hoe u dit kunt bereiken, maar de highlight-reel bevat deze best practices:
- Evalueer het quorum elke keer dat uw clusterconfiguratie verandert
- Wijs een getuige aan om een oneven aantal stemmen te krijgen
- Verwijder stemmen indien van toepassing
- Gebruik de functie "Dynamisch quorum" om knooppuntstemmen dynamisch aan te passen
Het is belangrijk op te merken dat de meest effectieve manier om het quorum te configureren zal variëren afhankelijk van de Windows-versie, het aantal nodes en hoe betrouwbaar de netwerkcommunicatie tussen de nodes is,
3. Selecteer niet de verkeerde versie van Windows of SQL Server.
Dit klinkt als een no-brainer, maar het moet altijd worden herhaald. Zorg ervoor dat u de meest recente versie van Windows Server selecteert en zorg ervoor dat u de Enterprise- of Datacenter-versie gebruikt. Blijf ook bij één versie van SQL Server om het eenvoudig te houden. Als u zich aan deze twee praktijken houdt, is uw cluster gemakkelijker te beheren en online te houden.
4. Koop wel de juiste hardware.
De juiste grootte van uw hardware voor een SQL Server-cluster kan moeilijk zijn. U wilt bijvoorbeeld geen geld verspillen aan te veel geheugen, maar te weinig geheugen kan de prestaties beïnvloeden.
Terwijl u uw plan ontwikkelt voor het maken van uw SQL Server-cluster, moet u ervoor zorgen dat aan uw hardwarebehoeften wordt voldaan voor de juiste hoeveelheid geheugen, dat uw netwerkpad redundant is en dat u uw SSD-behoeften nauwkeurig hebt geëvalueerd.
5. Plaats niet te veel knooppunten in één cluster.
U komt misschien in de verleiding om al uw knooppunten in één cluster te plaatsen, maar het is beter om vast te houden aan een tot twee knooppunten per cluster. Onthoud dat elke keer dat u een patch of update op een cluster toepast, u moet testen of elke instantie nog steeds werkt op elk knooppunt. Hoe minder knooppunten in een cluster, hoe minder uitvaltijd voor elk exemplaar wanneer u het over elk knooppunt faalt.
6. Plan uw nodes en instanties.
Failoverclusters zijn niet one-size-fits-all, dus u moet uw behoeften evalueren en dienovereenkomstig plannen. Een goede plek om te beginnen is door deze vragen te beantwoorden en uw cluster zo nodig aan te passen:
- Hoeveel clusterknooppunten hebben we nodig?
- Hoeveel SQL Server-instanties zullen we installeren?
- Hoeveel Windows-failoverclusters passen bij onze behoeften en ons budget?
- Wat voor soort opslag gaan we gebruiken?
- Hoe ziet onze staging-omgeving eruit?
7. Ga er niet vanuit dat uw applicaties gracieus zullen failoveren.
Vertrouw er nooit op dat uw SQL Server-exemplaar wordt uitgevoerd zoals het was voordat een failover plaatsvond. Sommige toepassingen komen daarna mogelijk niet automatisch weer online en afhankelijk van de toepassing kan het even duren voordat u dit merkt.
Maak er een standaardpraktijk van om applicatietests op te nemen bij elke migratie naar een failovercluster.
8. Evalueer uw SQL Server-configuratie-instellingen opnieuw.
Als u begint met de planningsfase van het maken van SQL Server-failoverclusters, is het een goed moment om uw configuratie-instellingen nog eens te bekijken. Controleer bijvoorbeeld of u de beste instellingen gebruikt voor zaken als geheugentoewijzing op clusters met meerdere instanties.
9. Versla je naamgeving niet.
Neem nu de tijd om uw clustercomponenten zorgvuldig een naam te geven en bespaar uzelf een enorme hoofdpijn wanneer u later probeert verbinding te maken met de server. Hier zijn een paar ideeën om een effectieve naamgevingsconventie tot stand te brengen:
- Zorg ervoor dat de naam het type component identificeert dat u labelt. Is het een cluster, fysieke server, SQL Server-instantie of Distributed Transaction Coordinator?
- Installeer BGINFO om de servernaam op het bureaublad weer te geven voor elke server in het cluster. Dit maakt het vinden van de juiste databases een fluitje van een cent.
- Wees consistent wanneer u extra knooppunten toevoegt of een ander SQL Server-exemplaar op het cluster installeert. Als u zich aan uw naamgevingsconventie houdt, wordt het niet alleen nu eenvoudiger voor u, maar wordt het ook gemakkelijker om servers te vinden voor degenen die ze later nodig hebben.