De aandacht van het management krijgen is een goede zaak, als het om positieve redenen gebeurt. Maar veel databasebeheerders blijven liever van de radar. Omdat DBA's ervoor moeten zorgen dat de databases van de organisatie soepel werken, kunnen DBA's, als het goed gaat, over het algemeen rustig blijven en hun ding doen. Maar als er iets misgaat, sta je ineens bovenaan op de Most Wanted-lijst van het bedrijf.
DBA's hebben veel verantwoordelijkheid binnen een organisatie, en er zijn veel manieren waarop dingen mis kunnen gaan, maar door een paar best practices voor MySQL-databasemonitoring te volgen, kunt u er zeker van zijn dat u door het management wordt erkend voor uw vlijmscherpe humor in plaats van voor de database storing die drie dagen duurde om op te lossen.
Voer regelmatig gezondheidscontroles uit van uw database
Voor een MySQL DBA is het plannen van regelmatige gezondheidscontroles voor uw databases bijna net zo belangrijk als het plannen ervan voor uzelf (Opmerking:beschouw dit als uw herinnering om een afspraak te maken voor dat fysieke dat u hebt uitgesteld!).
Net als mensen hebben niet alle databases dezelfde onderhoudsbehoeften, dus gezondheidscontroles moeten worden afgestemd op de specifieke functie-eisen van de database. Zo hebben missie- of levenskritieke databases vaker controles nodig dan niet-kritieke databases. Het falen van een raketafweersysteem heeft veel zwaardere gevolgen dan het falen van het frequente klantenbeloningsprogramma van een lokale boekhandel.
Bij het opzetten van uw routinematige gezondheidscontroles, zijn er een paar gebieden waarop u zich moet concentreren die informatie zullen verschaffen die u zal helpen bij het vaststellen van lopende MySQL-problemen die moeten worden aangepakt.
MySQL-beschikbaarheid
Beschikbaarheid is waarschijnlijk de belangrijkste statistiek om bij te houden. Als de database niet beschikbaar is, heeft het weinig zin om de rest van deze statistieken bij te houden totdat deze zijn opgelost. Voer -mysqladmin -h 192.168.1.95 -u root -p status uit om de beschikbaarheid te controleren en start de diagnose als er een probleem is.
Mislukte verbindingen
Door het aantal mislukte verbindingen in de loop van de tijd te volgen, kunnen kwaadaardige activiteiten worden gedetecteerd, evenals minder sinistere fouten binnen de toepassing, zoals verkeerd toegepaste machtigingen en onjuiste wachtwoorden.
Voer het commando SHOW GLOBAL STATUS LIKE 'aborted_connects' uit; om te bepalen hoeveel mislukte verbindingspogingen er in de database zijn geweest gedurende een bepaalde periode.
Foutlogboeken
Het controleren van foutenlogboeken is een geweldige manier om te zien welke fouten zijn opgetreden en of er patronen zijn die kunnen wijzen op een groter terugkerend probleem dat moet worden aangepakt.
Deadlocks in InnoDB
MySQL-deadlocks treden op wanneer verschillende transacties een bron blokkeren die de andere transactie nodig heeft. Deadlocks leiden tot trage verwerking en time-outs, en tot geïrriteerde gebruikers. Gebruik SHOW ENGINE INNODB STATUS; om impasses te lokaliseren en op te lossen.
Configuratiewijzigingen
Een plotselinge afname van de prestaties kan worden veroorzaakt door een tiental verschillende dingen. U kunt uzelf echter wat tijd besparen bij het oplossen van problemen door recente configuratiewijzigingen te bekijken en eventuele wijzigingen aan te passen die de prestaties negatief beïnvloeden.
Langzaam zoekopdrachtenlogboek
Langzame query's zorgen ervoor dat de database langzamer werkt omdat ze overmatig veel CPU en geheugen gebruiken. Bekijk het logboek voor trage query's regelmatig om te bepalen of query's een te lange runtime vertonen, en los vervolgens de problemen op om de hoofdoorzaak vast te stellen en te verhelpen.
Zichtbaarheid behouden om de hoofdoorzaak van MySQL-prestatieproblemen te begrijpen
Het regelmatig uitvoeren van statuscontroles op MySQL-databases is essentieel voor het handhaven van een hoge beschikbaarheid en het minimaliseren van chronische prestatieproblemen, maar er zijn enkele beperkingen aan de bruikbaarheid van statuscontroles voor het oplossen van algemene systeemproblemen.
Omdat periodieke prestatieproblemen mogelijk niet aan het licht komen tijdens routinematige gezondheidscontroles, is het belangrijk om continu inzicht te hebben in uw MySQL-omgeving. Het snel identificeren en oplossen van prestatieproblemen betekent minder uitvaltijd en minder prestatieproblemen die een negatieve invloed hebben op gebruikers.
Een van de beste manieren om inzicht in MySQL-databasesystemen te behouden, is door waarschuwingen in te stellen voor kritieke gebeurtenissen, zodat u snel kunt reageren wanneer een drempel wordt overschreden en de oorzaak van het probleem wordt aangepakt.
U dient minimaal waarschuwingsdrempels in te stellen voor de volgende veelvoorkomende bronnen van prestatievermindering:
- Aanzienlijke afwijkingen van baseline MySql-prestatiestatistieken
- Hoog CPU-gebruik
- Wachttijd voor zoekopdrachten
- Opzoekfouten
- Verbindingslimieten
- Bufferpoolgebruik
Snel prestatieproblemen identificeren en oplossen
U kunt misschien wegkomen met het bijhouden van prestaties met behulp van interne scripts in een kleine, statische omgeving, maar de scripts vervangen niet de proactieve monitoring die nodig is om gelijke tred te houden met grote, dynamische systemen die voortdurend groeien.
In bijna elke situatie is een commerciële tool voor het monitoren van databases de beste keuze om problemen snel te identificeren en op te lossen voordat ze grote problemen veroorzaken.
Er zijn veel tools voor prestatiebewaking op de markt die een breed scala aan functies bieden tegen veel verschillende prijspunten. Het kiezen van de juiste tool voor uw organisatie komt erop neer welke tool het beste aansluit bij uw specifieke behoeften tegen een prijs die past bij uw budget.
Hoewel er geen allesomvattende tool is, zijn er enkele belangrijke functies voor databasebewaking waarnaar u moet zoeken in welke tool voor prestatiebewaking u ook overweegt:
- Schaalbaarheid
- Mobiele bewaking
- Intuïtieve gebruikersinterface
- Budgetvriendelijk maar rijk aan functies
- Geen aansluitdop
- Multidimensionale werkbelastinganalyse
- Analyse van hoofdoorzaak alarm
- Blokkeeranalyse
- Slimme alarmen
- Historische gegevens bijhouden