Informizely customer feedback surveys

Periodiek onderhoud door DBA.nl


“Als de ragebol rust, werkt de spin”. Misschien had u nog nooit van deze uitdrukking gehoord maar hij is treffend voor een essentieel onderdeel van de dagelijkse taken van de DBA’s van DBA.nl.

De uitdrukking betekent dat zonder onderhoud al gauw verval zal volgen. Dit geldt zeker voor database-systemen. Een database is van nature een dynamische omgeving. In databases is voortdurend activiteit, denk bijvoorbeeld aan:

  • Samenstelling en (her)-evaluatie van query-plannen
  • Inserts, deletes, updates, data import/export
  • Index-updates en herbouw
  • Bijwerken van statistieken
  • Archivering van wijzigingen (Oracle archiving, SQL Server transaction log back-ups)
  • Vastlegging van audit-records en activiteitenlogs

Sommige van deze activiteiten genereren “spinrag” dat moet worden opgespoord en waar nodig weggehaald. Op een actieve database-server kan bijvoorbeeld in een relatief korte tijd een gigabyte of meer aan tekstbestanden (tracefiles, audit logs) worden aangemaakt ten behoeve van eventuele latere troubleshooting of systeem-auditing. Niet al deze bestanden worden automatisch opgeschoond en dat komt onder andere doordat sommige bestanden permanent in gebruik zijn en daardoor niet zomaar verwijderd kunnen worden (m.n. op Windows). Ook gaan back-ups wel eens mis en laten ze onvolledige back-up-bestanden achter, interne audit-tabellen raken vol, database-files raken gefragmenteerd, etc. Dit spinrag verwijderen moet daarom met regelmaat met de hand worden gedaan. Maar simpelweg verwijderen van bijvoorbeeld “oude” logs is ook niet raadzaam. Inspectie door getrainde ogen is zeker noodzakelijk om te voorkomen dat ze meldingen bevatten die verborgen problemen laten zien. Het komt wel voor dat een trace-bestand van een database indicaties oplevert dat een systeem zich niet gedraagt zoals zou moeten en gebaat is bij bepaalde aanpassingen.

Dit brengt ons bij het tweede onderhoudsaspect, dat proactief is: het constateren en voorspellen van sub-optimaal gedrag van database-systemen die op het moment van controle ogenschijnlijk normaal functioneren. Hierin zit de grootste waarde van het onderhoudswerk van een DBA.

Het zou onterecht zijn om te denken dat een SQL Server of Oracle systeem zichzelf optimaliseert. Ondanks de grote vooruitgang die Oracle en Microsoft hebben geboekt in zelfregulerende databases is afstemming op uw omgeving nog altijd nodig. Dit komt mede doordat database-configuratie eigenlijk altijd een compromis is. CPU’s, geheugen en disk-capaciteit zijn vanwege (licentie-)kosten beperkt en het is daarom altijd nodig om grenzen te stellen. Waar deze grenzen liggen varieert per systeem en hangt ook samen met applicatie-gedrag en het aantal databases dat u besluit op enig moment te gebruiken (wat in de tijd ook zal variëren). Daarbij komt dat een moderne database een scala aan instelbare parameters heeft die moeten passen bij de workload; doorgaans bestaat er geen “altijd goede” waarde (anders was de parameter tenslotte niet instelbaar gemaakt….).

DBA.nl en periodiek onderhoud

Het gezond houden van database-omgevingen is de essentie van de beheeractiviteiten die DBA.nl als onderdeel van een Service Level Agreement verricht. Wij bieden als onderdeel van onze SLA’s een periodieke controle waarin wij opschoning verrichten, een gedegen analyse uitvoeren van de actuele stand van zaken op uw database-server(s) en hierover rapporteren en aanbevelingen doen. U bent er hierdoor van verzekerd dat er geen onopgemerkte narigheid aanwezig is en u krijgt het bovendien van ons te horen als wij denken dat het verstandig is bepaalde zaken aan te pakken of upgrades te overwegen.

In veel gevallen zullen klanten die bij DBA.nl een SLA hebben afgesloten ook beschikken over database-monitoring. Eventuele meldingen uit deze monitoring zijn indicaties van storingen en worden door ons als incidenten opgepakt. Ons Periodiek Onderhoud is een uitbreiding daarop en richt zich ook op “gebreken” die niet in gewone monitoring zichtbaar zijn. Ingeval er geen database-monitoring bestaat is de controle tevens een soort van vangnet voor onopgemerkte incidenten.

Wat controleren wij bij Periodiek Onderhoud?

Opslagruimte

Een belangrijke limiet aan database-groei is de hoeveelheid beschikbare opslagruimte. Wij controleren of deze voor de afzienbare termijn voldoende lijkt te zijn en kijken hierbij ook naar historische groei van de databases. Natuurlijk blijft het hier niet bij en wordt ook ín de database gekeken (Oracle tablespaces bijvoorbeeld) of er geen groeilimieten in zicht komen. Waar mogelijk wordt eventuele krapte aangepakt en in andere gevallen zullen we uitbreiding van fysieke opslagruimte ter overweging geven.

Kengetallen prestaties

We bekijken voor elke database of prestatie-indicatoren aanleiding geven tot zorg en kunnen in de meeste gevallen direct al een aanbeveling doen voor aanpassingen aan database tuning-parameters of server-configuratie. Zoals al eerder genoemd kennen wij echter geen server met onbeperkte capaciteit. Het kan dan ook gebeuren dat een server zoveel databases bevat dat niet alle prestatie-cijfers even fraai kunnen zijn. In dat geval houden wij rekening met het maximaal haalbare en worden geen onnodige uren besteed aan marginale verbeteringen; wel kunnen configuratiewijzigingen soms eventueel leed verzachten. Wij kunnen bijvoorbeeld aanpassingen maken aan tijdstippen waarop bepaalde database-interne jobs worden gescheduled zodat server-belasting beter in de tijd wordt verdeeld.

Configuratiefouten

Het configureren van databases blijft mensenwerk en kan gedurende de levensduur van een systeem een keer scheef raken. Soms ook wordt bij applicatie-upgrades weleens een database tijdelijk aangepast en wordt vergeten dit hierna weer terug te zetten. Onze controle kan helpen dit soort foutjes op te sporen voordat ze tot problemen leiden.

Data-bescherming

Alle productiesystemen vereisen een goede back-up. Zonder regelmatige controle is het echter niet altijd te zien of een back-up ook bruikbaar en volledig is. Wij kijken inhoudelijk naar de resultaten van back-up-jobs en verifiëren dat ook echt elke productie-database inderdaad in back-ups wordt meegenomen, de back-up succesvol is verlopen en dat eventuele archive-deletion of transactielog-truncation goed werkt. Heeft u een uitwijkomgeving met DataGuard, DBVisit of Always On dan stellen wij zeker dat deze goed wordt bijgewerkt en dat ook de uitwijkomgeving geen storingen of gebrek aan resources laat zien.

Support-risico’s

Geen software zonder houdbaarheidsdatum… DBA.nl houdt bij welke releases van uw database-software nog door de leverancier worden ondersteund en voor hoe lang. Wanneer een database-release op de afzienbare termijn uit support zal raken brengen wij u hiervan bij het periodiek onderhoud tijdig op de hoogte.

Resource-allocatie

Niet alleen opslagruimte is beperkt, dit geldt ook voor intern geheugen en processors. Wij constateren wanneer resources onder druk lijken te komen zodat kan worden bekeken of aanpassingen moeten worden gedaan aan de allocatie van deze resources aan de databases dan wel dat de resources zelf moeten worden uitgebreid (indien mogelijk).

Object en job status

Het allerbelangrijkste blijft altijd uw data en de “gezondheid” daarvan. Ons periodiek onderhoud omvat naast gezondheidschecks van de database-software natuurlijk ook een verificatie van de status van database-objecten. Wij gaan na of de databases defecte stored procedures, indexen, views en dergelijke bevatten zodat u niet ongemerkt met een (gedeeltelijk) defecte applicatie werkt.

Diagnostics

Moderne databasesystemen genereren een schat aan informatie in diagnostische logbestanden. Hierin zijn mogelijk indicaties te vinden dat ongemerkt fouten optreden die verholpen moeten worden. Wij gebruiken geautomatiseerde analyse om verborgen gebreken op te sporen en kunnen deze vaak verhelpen voordat ze tot grotere verstoringen leiden.

Statistics

De prestaties van uw systemen zijn in hoge mate afhankelijk van het up-to-date zijn van informatie die databases hebben over de samenstelling van de data. Denk bijvoorbeeld aan het aantal rijen in een tabel en de totale omvang ervan, de gemiddelde vullingsgraad van een kolom, de distributie van waarden in kolommen (cardinality) en nog veel meer. Die informatie noemen we “statistics”. De query optimizer gebruikt deze statistics om te bepalen hoe een SQL-statement het best kan worden uitgevoerd. In tegenstelling tot de meeste (“imperative”) programmeertalen is SQL namelijk een zogenaamde “declarative” taal. Dit betekent dat een SQL-query alleen aangeeft wát de uitkomst moet zijn maar niet hóe die moet worden bereikt. De query optimizer bepaalt aan de hand van de informatie die het heeft over de samenstelling van de data, de aanwezigheid van indexen, de beschikbare hoeveelheid geheugen en meer hoe het gewenste eindresultaat het meest efficiënt kan worden bereikt. Het up-to-date zijn van deze informatie is absoluut essentieel voor de kwaliteit van de door de query planner gegenereerde oplossing. Bij de periodieke controle gaan wij na of het bijwerken van deze statistics goed functioneert.

Licentie-check

Hoewel wij niet altijd weten welke licenties door u zijn aangeschaft letten wij scherp op het gebruik van database-features die niet onder basis-licentiëring vallen. Wij stellen u op de hoogte wanneer wij gebruik aantreffen van functies die aanvullende licentiëring behoeven; u kunt daarmee zelf nagaan of uw licenties dit gebruik dekken. Ingeval bij ons wel bekend is welke features u heeft aangekocht kunnen wij bij een eventuele ongemerkte overschrijding de optionele features voor u uitschakelen.

Tenslotte

Naast de al genoemde punten is er nog een aantal zaken waarop door ons wordt gelet maar het voert te ver om deze uitputtend te beschrijven. Onze onderhoudsmethodiek wordt regelmatig geüpdate op basis van praktijkervaringen en nieuw beschikbare functionaliteit in nieuwe releases van de databases. Als eindresultaat van ons periodiek onderhoud leveren wij u een zo helder en volledig mogelijk rapport op basis waarvan zonodig besloten kan worden tot het doen van aanpassingen aan databases of servers. We hopen met deze aanbevelingen de gezondheid van uw databases vele jaren op een hoog peil te helpen houden!

DBA.nl,
dé database
administrator

DBA.nl is de allround database expert gespecialiseerd in het inrichten, onderhouden, monitoren van database omgevingen. Daarnaast geven wij advies en nemen performance problemen weg.