Empfehlungen für die Vorbereitungen zum MCM SQL Server

Mit diesem Artikel möchte ich gerne ein paar Informationen für diejenigen Leute bereitstellen, die vielleicht planen, den Zertifizierungsmarathon auf sich zu nehmen. Viele MCM haben schon ihre persönlichen Tipps in ihren Blogs verewigt – einige davon habe ich mir bei meinen Vorbereitungen sehr zu Herzen genommen, andere wiederum widersprechen meiner persönlichen Art, Stoff zu lernen und den gelernten Stoff umzusetzen. Eines jedoch gleich vorweg – MCM wird man nicht nur durch Lernen; es bedarf ebenfalls einer breit aufgestellten Erfahrung in den Bereichen “Administration” und “Entwicklung” von und mit Microsoft SQL Server. Ohne diese Erfahrungen – das ist meine Überzeugung – wird  man bei den Tests mit großer Wahrscheinlichkeit scheitern. Ein weiterer wichtiger Punkt; Leidenschaft für die Arbeit mit Microsoft SQL Server. Ohne die notwendige Leidenschaft für seine Arbeit fehlt die erforderliche Motivation, sich intensiv mit einer Sache auseinander zu setzen. Wenn beides stimmt, dann sollte einer Karriere als MCM nichts mehr im Wege stehen…

Erfahrung

Ich kam 1995 das erste Mal mit Microsoft SQL Server in Berührung; effektiv gearbeitet habe ich mit SQL Server ab 1998 – und ab diesem Moment kontinuierlich bis heute. Erfahrung ist für eine erfolgreiche Zertifizierung unabdingbar. Nur durch regelmäßig wechselnde Aufgabenstellungen / Problemanalysen / Problembeseitigung wird man sensibel für das tägliche Geschäft und die Probleme, die das Business bei ihrer Arbeit hat, die einen direkten und indirekten Bezug zu SQL Server hat. Anfangs wird man schier erschlagen von der Menge an Informationen, die SQL Server für die Problemanalyse und Problembeseitigung zur Verfügung stellt. Ich kann aber versichern, dass es mit jedem Tag einfacher wird. Für die Zertifizierung zum MCM ist nicht der “Super Hero” in einem speziellen Bereich von Microsoft SQL Server (z. B. Indexing, High Availability, …) gefragt – vielmehr wird erwartet, dass der Kandidat ein breit gefächertes Wissen zu fast allen Themenbereichen von Microsoft SQL Server (Administration / Entwicklung) abrufen kann. Insgesamt verteilt sich das Wissensspektrum auf sechs große Bereiche, zu dessen Spektrum tiefergehende Kenntnisse erwartet werden:

  • Manageability
  • Security
  • Availability
  • Developer Support
  • Performance
  • Recoverability and Integrity

Die  genannten Themenbereiche können nicht klar voneinander getrennt werden; so ist es beispielsweise unerlässlich, im Rahmen von “Developer Support” auch tiefgreifende Kenntnisse zu “Security” und “Performance” mitzubringen. Das ist übrigens aktuell mein Tagesgeschäft, da die Entwickler leider selbst so gut wie KEINE Ahnung von Performance-Optimierung besitzen! Bedingt durch die enge Verknüpfung zwischen den einzelnen Themenkomplexen versteht es sich von selbst, dass eben nicht die klassische DBA -Kenntnis für die Prüfung ausreicht. Ein DBA , der über Programmiererfahrung verfügt, kann einem Programmierer auf Augenhöhe begegnen und Argumente besser bewerten. Spricht zum Beispiel der Programmierer von Transaktionen, Sperren, deterministischen Funktionen,  und und und…, dann sollte der DBA sich mit diesen Themen ebenfalls schon einmal auseinander gesetzt haben. Wenn der Programmierer von “Optimierung” spricht und die Hardware als “Performance-Killer” ins Spiel bringt, sollte der DBA sich bereits mit Indexierung und Indexstrategien auseinander gesetzt haben, um den Entwickler – in den meisten Fällen – gleich den Wind aus den Segeln zu nehmen und wertvolle Hilfestellungen anbieten zu können.

Umgekehrt ist es ebenfalls ein Spiel von “Geben und Nehmen”. Wenn der zukünftige Kandidat in die Rolle des Entwicklers schlüpft, sollte er mit dem erfahrenen DBA auf Augenhöhe kommunizieren können. Dem Entwickler muss die Bedeutung der TempDB klar sein und er sollte den Zusammenhang von TEMPDB und “Contention” bei umfangreichen Transaktionen / Abfragen bewerten können, um den DBA gezielt nach der Konfiguration zu fragen um dessen Antworten einschätzen zu können. Auch sollte ein Entwickler sich intensiv mit Recoverymodellen und den Datenstrukturen von Microsoft SQL Server auskennen, bevor er transaktionslastigen Code schreibt, der das System über Gebühr belastet. Nur so ist der Entwickler auch in der Lage, optimierten Code schreiben zu können, der ressourcenschonend die Leistungsfähigkeiten von Microsoft SQL Server abruft. Was ebenfalls für eine Entwickler essentiell ist, ist das Sicherheitsmodell von SQL Server. Ohne eine tiefgreifende Kenntnis über das Zusammenspiel von Logins, Users, Schemas, … ist die Programmierung von sicherheitsrelevanten Datenbanksystemen nicht möglich. Hier ist – zunächst – der DBA klar im Vorteil, da er in der Regel die Sicherheitsrichtlinien überwacht und konfiguriert.

Sowohl ein DBA als auch ein Entwickler müssen beständig über den Tellerrand hinweg schauen und “weiter” denken. Das Stichwort lautet “Enterprise Computing” und/oder “Rechenzentrumsbetrieb”; alles Begriffe, über die auch ich mir bis 2007 kaum Gedanken machen musste – sie sind aber für Hochverfügbarkeitslösungen ein unabdingbares Muss! In meiner 15-jährigen Tätigkeit als Berater und Programmierer für SQL Server habe ich – bisher – leider immer feststellen müssen, dass der DBA deutliche Wissensvorsprünge in vielen der oben genannten Themen gegenüber dem Entwickler hatte. Ohne Erfahrung in den beiden Themenkomplexen geht meines Erachtens NICHTS!

Forenarbeit

Seit dem Jahr 2000 schreibe ich regelmäßig in den Microsoft Foren zu den Kernkompetenzen meines Arbeitsumfeldes. War es im Jahre 2000 noch Microsoft Access wandelte sich das Interesse zunehmen hin zu Microsoft SQL Server. Es gibt sowohl eine deutschsprachige Forensparte zu Microsoft SQL Server als auch eine – deutlich höher frequentierte – englischsprachige Plattform. Der erste Post ist immer der Schwerste, mit der Zeit wird es deutlich besser und man wird lockerer. Insbesondere die aktive Mitarbeit in den englischen Foren ist hilfreich, um seine Sprachkenntnisse (insbesondere bei den technischen Begriffen von Microsoft SQL Server) zu verbessern. Den besonderen Vorteil in der Forenarbeit sehe ich darin, dass man sieht, mit welchen Problemen andere DBA / Entwickler tagtäglich bei der Arbeit mit Microsoft SQL Server zu kämpfen haben. Wenn ich eine Frage beantworten möchte und ich bin mir nicht sicher, ob ich mit meiner Antwort richtig liege, beginne ich selbst, im Web zu recherchieren oder ich nehme mir – meine – SQL Bibel (siehe weiter unten) zur Hand und lese in dem betroffenen Kapitel nach.  Gerade, wenn ich in einem kleinen Unternehmen arbeite, dass mir nicht die Möglichkeiten von Hochverfügbarkeit und Manageability zur Verfügung stellen kann (weil nur ein SQL Server vorhanden ist), bietet das Forum die Möglichkeit, sich dennoch mit den hochkomplexen Themen auseinander zu setzen, dessen Skills für eine MCM Zertifizierung verlangt werden. Weiterhin ist es von großem Vorteil, Fragen, die man eventuell selbst stellen würde, im Thread zu verfolgen und die Antworten zu studieren. In den Foren sind sehr viele “Regulars” unterwegs, die ein gewaltiges Know How besitzen. Von ihnen kann man wunderbar lernen.

Wichtig für die Zertifizierung ist die Beherrschung der englischen Sprache. Sowohl der 88-970 (Knowledgetest) als auch 88-971 (LAB Test) können ausschließlich in Englisch durchgeführt werden. Hier ist die Forenarbeit in den englischen Foren sicherlich auch von großem Vorteil, ist man doch gezwungen, alle Antworten in Englisch zu verfassen. Mir persönlich haben die Foren sehr gut geholfen, da ich insbesondere durch die Antworten vieler Regulars (MVP, MCM, MCC) viel Input bekam und Tipps und Tricks kennen gelernt habe, die man so nicht in der Literatur findet. Außerdem freue ich mich, wenn meine Antworten helfen können, die Arbeit eines DBA / Entwicklers ein klein wenig einfacher gemacht zu haben.

Webcasts

Ich bin ein Fan von Webcasts; sie sind eine ideale Plattform, um sich intensiver mit interessanten Themen auseinander zu setzen. So bietet z. B. Red Gate, Idera und Quest immer wieder sehr interessante Webinars an, die vollkommen kostenfrei sind und von renommierten MVP und MCM gehalten wurden. So konnte ich z. B. Webinars mit Grant Fritchey oder Robert Davis anschauen und dabei SEHR VIEL neues lernen. Gut, dass es so etwas gibt! Teilweise war es sogar so, dass ich ein Webinar angeschaut habe, obwohl ich die Materie wie meine Westentasche kenne. Durch das Webinar wollte ich meine Skills “bestätigt” wissen; wenn sich die Aussagen der Referenten mit meinen Kenntnissen deckten, war ich mir um so sicherer, dass ich dieses Thema sicher beherrsche.

Schulungen

Ein etwas sensibleres Thema sind Schulungen – hier müssen zwei Strategien strikt geteilt werden. Schulungen besuchen oder Schulungen / Fachvorträge selbst halten. Selbst Fachvorträge halten ist nicht jedermanns Sache; viele Leute sind absolute Profis in ihrem Fach; können aber die Materie nicht unbedingt anderen gut vermitteln (aus welchen Gründen auch immer). Auf der anderen Seite steht natürlich der Besuch von Schulungen. Hier bin ich – persönlich – immer etwas skeptisch. Das hängt damit zusammen, dass ich bereits seit 1991 EDV-Seminare halte und seit ca. 10 Jahren regelmäßig auf Fachkonferenzen (AEK / SEK / Frankfurter Datenbanktage / SNEK) zu Microsoft SQL Server Vorträge halte. Ich persönlich mache so etwas für mein Leben gerne; ich mag es, mein Wissen anderen Menschen zu vermitteln und dabei zu sehen, dass die Zuhörer genau so viel Spaß bei der Sache haben, wie ich selbst. Wenn man beim Vortrag merkt, dass man die Zuhörer förmlich “bannt”, weil sie das gewählte Thema interessant finden, gibt es kaum schöneren Momente für einen Referenten.

In Deutschland gibt es KEINE Seminare zu den MCM Prüfungen. Microsoft bietet ein 3-wöchiges Boot Camp an. Dazu muss man aber nach Redmond und muss neben dem enormen Stoffumfang auch der englischen Sprache wirklich mächtig sein. Insbesondere für Freelancer / Berater eine schier unlösbare Hürde; neben dem Verdienstausfall kommen noch Transfer- und Verpflegungskosten hinzu. Außerdem ist man für seine Kunden ebenfalls für die nächsten drei Wochen schwer erreichbar. Dieses Boot-Camp ist eher etwas für Mitarbeiter eines Unternehmens, dass einen hohen Wert auf die Zertifizierung seiner Mitarbeiter legt und die Kosten übernimmt. Wer sich einen kleinen Eindruck vom Aufenthalt in solchen Boot Camps machen möchte, kann das im Blog von Brent Ozar hier wunderbar nachlesen. Solche Boot Camps gibt es in Deutschland leider nicht ABER Paul Randal und Kimberly Tripp kommen einmal im Jahr nach London um dort ihre Immersion Events durchzuführen. Sollte ein “Muss” für diejenigen Kandidaten sein, die Schulung “Face to Face” dem Selbststudium vorziehen.  Ich persönlich kann mit Schulungen und Seminaren leider nur sehr wenig anfangen – ich brauche meinen eigenen “Lehrplan” und muss so flexibel sein, mich auch mal einem Thema intensiver zu widmen, als es ein “Lehrplan” vorsieht. Ich bevorzuge daher Videos, Bücher und Aufgaben.

Blogs und Blogging

Blogs sind ein ewig sprudelnder Quell von Informationen. Während meiner Vorbereitungen zum MCM bin ich immer wieder bei absolut lesenswerten Blogs gelandet. Zum Beispiel schaue ich immer wieder sehr gerne im Blog von Pinal Dave unter http://www.sqlauthority.com rein. Pinal gelingt es, zu fast jedem Thema anschauliche Beispiele zu erstellen; für mich als jemand, der zu 90% aus Beispielen und Visualisierung die Zusammenhänge lernt, eine unglaubliche Bereicherung. Ebenfalls sollten die Blogs von Paul Randal und Kimberly Tripp unter den Favoriten im Internetbrowser gespeichert werden. Unter http://www.sqlskills.com schreiben ALLE Mitarbeiter von SQL Skills auf sehr hohem technischen Niveau. Ich kann nur empfehlen, zunächst dort zu lesen und dann gegebenenfalls andere Blogs zu besuchen – insbesondere Paul stellt immer wieder Behauptungen auf den Prüfstand und – bedingt durch seine langjährige Tätigkeit im SQL Server Development Team – zeigt auf, wie unsinnig manche im Web verbreiteten Aussagen tatsächlich sind.

Selbst zu bloggen, hat viele – wie ich finde – charmante Vorteile. Zum einen muss man sich sehr intensiv mit einem Thema auseinander setzen, über das man einen Artikel veröffentlichen möchte. Das gibt – so ist das bei mir gewesen – die Möglichkeit, sich noch viel intensiver mit einer speziellen Thematik auseinander zu setzen. Nichts ist schlechter, als Artikel zu veröffentlichen, die aus technischer Sicht so fehlerhaft sind, dass niemand mehr Interesse an den Artikeln zeigt!

Auf das “Bloggen” bin ich  zum ersten Mal aufmerksam geworden, als mich der sehr geschätzte Kollege Frank Kalis im Jahre 2010 bat, doch auf seiner Plattform http://www.insidesql.org zu bloggen. Seit November 2012 blogge ich mittlerweile regelmäßig. Das Bloggen hat mir geholfen, noch einmal einen enormen Schritt nach Vorne zu machen, wenn es um das Thema Indexe und Optimierung geht. Auf Grund meiner vielseitigen Projekte, mit denen ich es täglich zu tun habe, gehen die Beispiele auch nie aus. Das Bloggen zwingt mich, Themen immer wieder tiefgründiger zu untersuchen um sie dann in verständlicher Form der Öffentlichkeit zugänglich zu machen – ein Benefit für beide Seiten. Ein sehr schöner Nebeneffekt des Bloggens ist, dass mit der Zeit die Community aufmerksam wird (wenn die Artikel gut recherchiert und fachlich richtig sind) und man so einen gewissen Bekanntheitsgrad genießt.

Lernmaterial

Puhh – jetzt wird es tatsächlich schwierig. Hier kann – und möchte – ich keine riesige Empfehlungsliste geben, weil jeder seinen eigenen Stil bevorzugt. Es gibt aber meines Erachtens drei Quellen, die ein unabdingbares MUSS für jede Vorbereitung zum MCM sind. Die MCM Readiness Videos von Paul Randal, Kimberly Tripp, Brent Ozar und Bob Beauchemin sollten unbedingt ALLE in Ruhe gesehen werden. Wichtig erachte ich auch, dass die “DEMO” Videos nach Möglichkeit von jedem selbst am eigenen Laptop reproduziert werden. Dadurch konnte ich gleich drei Fliegen mit einer Klappe schlagen:

  • Ich habe sehr konzentriert das Video durchgearbeitet
  • Ich wurde sicherer im Umgang mit T-SQL und den DMO’s von SQL Server
  • Ich habe das Thema – durch das Nachspielen – verstanden

Zum Beispiel gibt es ein absolut fantastisches Video von Bob Beauchemin über Zertifikate inklusive Demo. Diese Demo habe ich Schritt für Schritt selbst nachgestellt und beim Durchspielen sind mir die Zusammenhänge zwischen Keys, Certificates, Objects, … immer klarer geworden. Nachdem ich das erste Mal MIT Demo die Übungen nachgestellt habe, habe ich am nächsten Tag versucht, die Übung mit dem gewonnenen Wissen noch einmal allein durchzuspielen; durch die erfolgreiche Implementierung war ich mir sicher, dass ich das Thema verstanden habe. Ansonsten gilt es erneut die Videos zu Thema zu schauen. Leider sind die Videos – bis auf wenige Ausnahmen – nicht auf einem IPad zu sehen; das empfand ich persönlich als sehr ärgerlich. Gerade in der Winterzeit sitzt man ewig in den Nahverkehrszügen und da wäre es perfekt gewesen, wenn man sich in Ruhe die Videos hätte anschauen können. Aber das Leben ist ja bekanntlich kein Ponyhof.

Eine weitere – für mich – unabdingbare Quelle ist die “Bibel" für Microsoft SQL Server. Das Buch “Microsoft SQL Server 2008 Internals” von Kalen Delany gehört bei jedem DBA und Entwickler in den Bücherschrank. Interessant dabei ist, dass auch Paul Randal, Kimberly Tripp und viele andere MVP an diesem Buch mitgewirkt haben. Für mich immer wieder lesenswert und Nachlagewerk #1, wenn ich technisch komplexe und anspruchsvolle Probleme zu lösen habe.

Eine andere – wie ich finde – sehr interessante Quelle sind die technischen Bücher vieler MVP, die von Red Gate immer wieder mal als kostenloser Download angeboten werden. So kann man zum Beispiel tiefe Einblicke in Ausführungspläne von Abfragen bekommen, wenn man sich das Buch “SQL Server Execution Plans” von Grant Fritchey anschaut – wirklich sehr lesenswert und absolut TOP geschrieben. Ansonsten muss jeder Kandidat für sich selbst die richtige Literatur “finden” – das ist m. E. sehr stark abhängig vom eigenen Lernstil und von den vorhandenen Kenntnissen.

Daily “Hands on”

Der wohl wichtigste Teil der Vorbereitungen ist die tägliche Arbeit mit Microsoft SQL Server. Je breiter die täglichen Aufgaben gestreut sind, um so besser ist man für die vor einem liegende Aufgabe gewappnet. Hierbei möchte ich JEDEM DBA unbedingt ans Herz legen, seine Aufgaben so oft wie möglich mit T-SQL zu lösen. Sei es das Erstellen eines Backups oder das Rückspielen von Backups. Aus eigener Erfahrung kann ich sagen, dass etwa 75% des Verständnisses für die “work behind” nur auf die Verwendung von T-SQL zurück zu führen ist. Ich behaupte mal “ketzerisch”, dass ich ein “Backup / Restore” mit T-SQL in deutlich weniger Zeit hinbekomme als mit der GUI. T-SQL vertieft das notwendige Verständnis für Aktionen, da man sich allein schon auf Grund der Auseinandersetzung mit der Syntax deutlich intensiver mit der Funktionsweise der möglichen Parameter auseinander setzen muss als man es je bei der Benutzung der GUI würde.

Hierzu möchte ich ein kleines Bespiel geben, bei der die Anforderung darin besteht, eine Datenbank X als Datenbank Y auf dem gleichen Server zu Testzwecken bereitzustellen; das ganze kann über den Tag häufiger passieren(!). Die Klickorgie der GUI erspare ich den Lesern hier – aber anbei der Code, den ich einmal in SSMS erstelle:

RAISERROR ('Sicherung der Datenbank X', 0, 1) WITH NOWAIT;
BACKUP DATABASE [X] TO DISK = 'C:\Temp\X_FULL.BAK' WITH STATS, INIT, FORMAT, COMPRESSION, COPY_ONLY;
GO

RAISERROR ('Rückspielen der Datenbank X in Datenbank Y', 0, 1) WITH NOWAIT;
RESTORE DATABASE [Y] FROM DISK = 'C:\Temp\X_FULL.BAK'
WITH
    REPLACE,
    STATS,
    MOVE 'X' TO 'C:\Pfad\x.mdf',
    MOVE 'X_log' TO 'C:\Pfad\x_log.ldf' GO

Für die Erstellung eines Scripts wie dem obigen benötige ich weniger als 1 Minute; die notwendigen Optionen kann ich nachts runterbeten bedingt durch den häufig wiederkehrenden Gebrauch. So weiß ich sehr gut, warum COPY_ONLY ein unabdingbares MUSS in einer Produktivumgebung ist, weil ansonsten die Sicherungskette unterbrochen wird. Um Platz zu sparen, verwende ich die Option COMPRESSION wenn es sich um eine Enterprise-Edition von SQL Server handelt. Sofern die Anforderung häufiger am Tag gestellt wird, ist es unabdingbar, mittels INIT das Transferfile immer wieder neu zu erstellen, …

Während – ich – bei dem “Zusammenklicken” von Prozessen meisten nicht groß über die Einstellungen nachdenke, bin ich nach dem obigen Muster gezwungen, mich über den Befehl BACKUP sowie RESTORE sehr genau zu informieren. Aus Neugier wurde Wissen, da ich dank der OH weitere Informationen zu den einzelnen Parametern erhalten habe. Die obigen Befehle kann ich eher verstehen als den Blick auf EINE der GUI-Seiten für die Erstellung von Backups. Finalisiert wird dieses Wissen nun noch durch das Video von Paul Randal zu “Restore Internals” aus dem oben genannten Portfolio von MCM Readiness Videos. Es sollte bedacht werden, dass ALLEN Prozessen, die mit der GUI durchgeführt werden können, IMMER äquivalente T-SQL Befehle gegenüber stehen. Je häufiger die täglichen Aufgaben mit T-SQL bewältigt werden, um so souveräner kann man den Microsoft SQL Server verwalten. Für mich persönlich kann ich sagen, dass ich durch den Einsatz von T-SQL deutlich schneller Informationen zum Microsoft SQL Server erhalte als durch umständliche “Klickerei” in irgendwelchen – nicht immer benutzerfreundlichen – GUI’s.

Fazit

Einen goldenen Weg kann – und will – ich nicht vorgeben; ich hoffe aber, dass die Einblicke in mein Lernverhalten und die zur Verfügung stehenden Ressourcen zumindest einen Eindruck verschaffen, welche Hürden man zu nehmen hat und wie man sie möglichst einfach und durch eigenes Engagement bewältigt. Engagement ist auch das letzte Stichwort für diesen Artikel; Engagement heißt, sich für eine Sache zu begeistern. Microsoft empfiehlt auf seinen Webseiten eine Erfahrung von 5+ Jahren für die Zertifizierung zum MCM; ich glaube nicht, dass dieser Wert repräsentativ ist. Es hängt von jedem selbst ab. Ich hätte auf jeden Fall nach 5 Jahren den MCM definitiv NICHT geschafft; selbst 10 Jahre (aus heutiger Sicht) wären nicht ausreichend gewesen. Erst die letzten vier Jahre haben mich so weit mit der Materie vertraut gemacht, die ich oberflächlich kannte.

Herzlichen Dank fürs Lesen

Nachfolgend noch ein paar – aus meiner Sicht – interessante Links zum Thema MCM

Microsoft MCM Programm http://www.microsoft.com/de-de/business/learning/master.aspx
Deutschsprachige SQL Server Foren: http://social.msdn.microsoft.com/Forums/de-DE/category/sqlserver
Englischsprachige SQL Server Foren: http://social.msdn.microsoft.com/Forums/en-us/category/sqlserver
MCM Readiness Videos (KLASSE!) http://technet.microsoft.com/en-us/sqlserver/ff977043.aspx
Interview mit Andreas Wolter zum Thema “Zertifizierung” und “MCM” #003 – Microsoft Certified Master