LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER

Die Seite wird erstellt Klaus Kohl
 
WEITER LESEN
LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
Leitfaden zur Migration von
                       Microsoft SQL Server nach MySQL

                             Ein technisches MySQL® White Paper
                                                   September 2007

Copyright © 2007, MySQL AB
LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
Inhaltsverzeichnis
1    Einleitung .........................................................................................................................4

2    Warum die Migration von SQL Server unternehmerisch sinnvoll ist..........................4
    2.1   Bemessung der Kosten für die Nutzung von SQL Server im Vergleich zu MySQL......4
    2.2   Ein kurzer Blick auf MySQL AB ...................................................................................6

3    Die technische Seite der Migration von SQL Server nach MySQL..............................6
    3.1   MySQL unter Windows? Natürlich! ..............................................................................7
    3.2   Genau die richtigen Funktionen ...................................................................................7
    3.3   Untersuchung der Leistung und Skalierbarkeit von MySQL ........................................9
    3.4   MySQL – Immer betriebsbereit, immer funktionsfähig .................................................9

4    Praktische Vorschläge für die einfache Migration von SQL Server zu MySQL........10
    4.1   Alles oder nichts? ......................................................................................................10
    4.2   1. Schritt – Dokumentation des SQL Server-Quellcodes ...........................................10
    4.3   2. Schritt – Entwurf der MySQL-Zieldatenbanken......................................................12
    4.4   3. Schritt - Durchführung der Migration nach MySQL ................................................12
    4.5   Validierung der Migration von SQL Server nach MySQL...........................................13
    4.6   Ratschläge zur gemeinsamen Handhabung von SQL Server und MySQL................15

5    Fazit ................................................................................................................................16

6    Weitere Informationsquellen.........................................................................................17
    6.1   MySQL Migrationshilfen.............................................................................................17
    6.2   Anwenderberichte......................................................................................................17
    6.3   White Paper ...............................................................................................................18

7    Anhang A – MSSQL to MySQL - Datatypes .................................................................19
    7.1   Overview....................................................................................................................19
    7.2   Comparable Datatypes ..............................................................................................19
    7.3   Datatypes Requiring Conversion ...............................................................................19

8    Anhang B – SQL Server to MySQL – Predicates.........................................................20
    8.1   Overview....................................................................................................................20
    8.2   Synopsis ....................................................................................................................20
    8.3   Boolean conditions ....................................................................................................20
    8.4   Comparison conditions ..............................................................................................20
    8.5   Exists conditions ........................................................................................................22
    8.6   In conditions...............................................................................................................22

Copyright © 2007, MySQL AB                                                                                                Seite 2 von 49
LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
8.7     Null conditions ...........................................................................................................22
    8.8     Pattern matching conditions.......................................................................................23
    8.9     Range conditions .......................................................................................................23

9    Anhang C – SQL Server to MySQL – Operators and Date Functions .......................24
    9.1     Overview....................................................................................................................24
    9.2     Arithmetic operators...................................................................................................24
    9.3     Concatenation operators ...........................................................................................24
    9.4     Hierarchical query operators......................................................................................25
    9.5     Set operators .............................................................................................................25
    9.6     Date Functions...........................................................................................................26

10        Anhang D – T-SQL Conversion Suggestions ...........................................................27
    10.1      Overview.................................................................................................................27
    10.2      Getting T-SQL Code out of SQL Server .................................................................27
    10.3      Procedure Formats .................................................................................................27
    10.4      Error Handling.........................................................................................................27
    10.5      Use LIMIT instead of TOP ......................................................................................28
    10.6      LIMIT and Optimization...........................................................................................29
    10.7      IF THEN … ELSE … END IF ;................................................................................30
    10.8      DATETIME with default values ...............................................................................30
    10.9      Index Name Length Differences .............................................................................30
    10.10        Support for SQL Server Declared Tables ............................................................31
    10.11        Obtaining Row Counts .........................................................................................31
    10.12        Default Values for Parameters.............................................................................31
    10.13        Use of SELECT INTO ..........................................................................................31
    10.14        Uses of IFNULL ...................................................................................................31
    10.15        Replace DATEADD with ADDDATE()..................................................................31
    10.16        SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED ....................32
    10.17        Replace SET ROWCOUNT = @rows with SQL_SELECT_LIMIT .......................32
    10.18        Perl Script to Help with Conversion of T-SQL to MySQL .....................................32
     10.18.1           Perl Conversion Script ...................................................................................34

11        Anhang E – Sample Migration ...................................................................................36
    11.1      Sample SQL Server Schema..................................................................................36
    11.2      Moving the SQL Server Database to MySQL with the Migration Toolkit .................40
    11.3      Sample MySQL Schema Generated from SQL Server...........................................45
    11.4      Sample Code Migration ..........................................................................................46

Copyright © 2007, MySQL AB                                                                                              Seite 3 von 49
LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
1 Einleitung
            Mit dem raschen Wachstum von MySQL auf dem Datenbankmarkt haben viele Unternehmen,
            Regierungsbehörden, Bildungseinrichtungen und andere begonnen, sich von ihren kostspieligen
            und proprietären Datenbanken zu verabschieden. Eine Datenbankmigration ist natürlich niemals
            auf die leichte Schulter zu nehmen, und deshalb denken zahllose Unternehmen nun über ihre
            Optionen für die Migration hin zu MySQL nach.

            Viele MySQL-Kunden migrieren von SQL Server, denn Sie haben festgestellt, daß die
            Kombination aus Kosteneinsparung, Plattformunabhängigkeit und der Funktionsumfang von
            MySQL eine unwiderstehliche Gelegenheit darstellen, einen Teil oder die Gesamtheit ihrer
            datenbankgetriebenen Anwendungen auf den MySQL Datenbankserver zu migrieren. Dieses
            Dokument liefert einen Einblick in die Überlegungen, die für einen Wechsel von SQL Server zu
            MySQL notwendig sind und stellt Ihnen eine Reihe von Möglichkeiten vor, die dabei helfen
            werden, den Übergang einfacher zu gestalten. Dieses White Paper betrachtet sowohl die
            geschäftliche als auch die technische Seite der Migration zu MySQL, Sie werden also unabhängig
            davon, ob Sie Manager oder erfahrener Datenbankadministrator sind, die erforderlichen
            Antworten auf die Fragen finden, die sich rund um die Migration hin zur weltweit populärsten
            Open-Source-Datenbank MySQL drehen.

2 Warum die Migration von SQL Server unternehmerisch
  sinnvoll ist
            Moderne Unternehmen, die sich im großen Umfang für eine Technologie engagieren wollen,
            müssen zunächst einmal hinter die technischen Versprechen der Lieferanten blicken und die
            unternehmerische Seite des Erwerbs einer neuen Technologie betrachten. Jedes Geschäft
            verfügt über seine eigene Methode zur Bewilligung einer bestimmten Software, dennoch sind die
            wichtigsten Faktoren für die Akzeptanz normalerweise das Ergebnis der Kalkulation der
            Gesamtbetriebskosten, die über den kompletten Lebenszyklus hinweg anfallen sowie die
            Bewertung der Integrität des Softwarehändlers.

            Lassen Sie uns jeden dieser beiden oben erwähnten Faktoren etwas genauer anschauen und
            feststellen, wie MySQL bei der Kalkulation der Gesamtbetriebskosten des MySQL
            Datenbankservers und der Bewertung des Unternehmens, das hinter der Datenbank steht,
            abschneidet.

2.1 Bemessung der Kosten für die Nutzung von SQL Server im Vergleich
    zu MySQL
            Zu den wichtigsten Faktoren, die für die große Beliebtheit und Akzeptanz von Open-Source-
            Software in den Unternehmen verantwortlich sind, gehören unter anderem auch die hohen
            Kosteneinsparungen, die der Einsatz einer solchen Software mit sich bringt. Wenn man bedenkt,
            daß viele große Global 2000- Unternehmen jährlich zwischen 500.000 und 10.000.000 € für neue
            Lizenzen und die Wartung für proprietäre Datenbanksoftware aufwenden, wird MySQL zu einer
            unglaublich attraktiven Alternative, denn durch die Verwendung von MySQL sowohl für neue
            Anwendungsprojekte als auch für die Erweiterung bestehender Systeme anstelle kostspieligerer
            proprietärer Alternativen können die meisten Unternehmen ihre Kosten um etwa 80 – 90 %
            senken.

            Da SQL Server im Vergleich zu anderen Datenbanken wie Oracle im Hinblick auf
            Kosteneinsparungen im Allgemeinen gut abschneidet, erscheint es möglicherweise überraschend,
            daß eine Migration von SQL Server zu MySQL dennoch zu erheblichen Kosteneinsparungen
            führen kann. Schauen Sie sich einmal den folgenden Dreijahresvergleich der
            Gesamtbetriebskosten zwischen MySQL, SQL Server und Oracle an:

Copyright © 2007, MySQL AB                                                                  Seite 4 von 49
LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
Gesamtbetriebskosten über 3 Jahre

               $1.400.000
               $1.200.000
               $1.000.000
                 $800.000
                 $600.000
                 $400.000
                 $200.000
                       $0
                                 MySQL          MS SQL Server           Oracle

             Beispiel einer Hardware-Konfiguration für einen kleinen Online-Händler:
              - Anzahl an Servern: 10 (standardmäßige x86-Maschinen)
              - Anzahl an CPUs (pro Maschine): 2 (Dual CPU)
              - Anzahl an Kernels (pro CPU): 2 (Dual Core)
              - Gesamtzahl der eingesetzten CPUs: 20
              - Gesamtzahl der eingesetzten Kernels: 40

             Microsoft SQL Server Enterprise:
              - Softwarelizenz: $24.995 pro CPU
              - Support & Wartung pro Jahr: 22% der Softwarelizenz

             Oracle Enterprise:
              - Softwarelizenz: $40.000 pro Kernel
              - Support & Wartung pro Jahr: 22% der Softwarelizenz

             MySQL Enterprise Gold:
              - Softwarelizenz: KEINE (bei MySQL fallen keine Datenbank-Lizenzgebühren an)
              - Jährliches MySQL Enterprise-Abonnement: 2.399 € pro Server

              Gesamtbetriebskosten
                                                                     Microsoft          Oracle
              über 3 Jahre
              Softwarelizenzen                                $0        $499.900          $800.000

              3 Jahre Support & Wartung                 $89.850         $329.934          $528.000
              Gesamtkosten                              $89.850         $829.834        $1,328.000

              Einsparung über 3 Jahre: MyQL anstatt MS SQL Server                  $ 739.984 (89%)
              Einsparung über 3 Jahre: MySQL anstatt Oracle                      $ 1.238.150 (93%)

            Wie Sie sehen können, ist durch einen Wechsel von SQL Server zu MySQL eine Kostensenkung
            von fast 90 % realisierbar. Solch deutliche Vergleichsergebnisse sind der Grund dafür, warum
            sich so viele Unternehmen für eine horizontale Skalierung mit MySQL zur Erweiterung ihrer
            Geschäfte entscheiden - und zwar unabhängig davon, ob das Unternehmen bei Microsoft
            Windows bleiben oder auf ein anderes Betriebssystem wie Linux umsteigen möchte.
            Unternehmen wie Weather Channel halten MySQL für das perfekte Instrument bei ihrem Streben
            nach hoher Datenbankleistung und geringstmöglichen Betriebskosten:

Copyright © 2007, MySQL AB                                                                Seite 5 von 49
LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
„Weather Channel ist heute die zehntgrößte Webseite der Welt und läuft fast zu 100 Prozent
                 auf der Open-Source-Datenbank MySQL. Mit dem Wechsel von einer Sun Solaris-Umgebung
                 zu Linux oder Intel, dem Wegfall der Hardwarewartung, dem Austausch der kommerziellen
                 Software gegen quelloffene Software sowie dem niedrigeren Preis und der besseren Leistung
                 einer Intel-Plattform reduzierten wir die Kosten um ein Drittel und konnten die
                 Prozessorkapazität der Website um 30 Prozent steigern“, berichtet Dan Agronow, CTO von
                 The Weather Channel Interactive.“1

2.2 Ein kurzer Blick auf MySQL AB
            Die Migration zu einer neuen Datenbankplattform bedeutet im Allgemeinen ein langfristiges
            Engagement; moderne Unternehmen, die über einen Wechsel zu MySQL nachdenken, möchten
            deshalb nicht nur die Geschichte der Datenbank kennen lernen, sondern auch erfahren, wer sie
            wie verwendet.

            Branchenumfragen zufolge bestehen die wichtigsten Bedenken der Unternehmen, die über den
            Einsatz einer quelloffenen Software nachdenken, im möglichen Mangel an Support2. Natürlich
            wird kein großes Unternehmen seine kritischen Geschäftssysteme auf Software stützen, die nicht
            von einem angesehenen Lieferanten unterstützt wird – einem Lieferanten, der über einen lang
            anhaltenden und ausgezeichneten Ruf in der Branche verfügt und erstklassigen Support bietet.

            Viele Unternehmen wundern sich bei Ihrer ersten Berührung mit MySQL, daß MySQL AB seit
            mehr als 10 Jahren im Geschäft ist. Mit elf Millionen aktiven Installationen expandiert MySQL
            immer weiter und entwickelte sich so zur populärsten Open-Source-Datenbanken der Welt. Jeden
            Tag laden über 50.000 Nutzer weltweit MySQL-Software für ihre geschäftlichen Anwendungen
            herunter.

            Forrester Research stellte in einer Studie fest, daß im Jahr 2006 74% der Unternehmen eine
            Umstellung auf Open-Source in Betracht zogen und 53% den Einsatz von MySQL als eine der
            Datenbankplattformen vorsahen.

            Aufgrund des ständig anwachsenden Bestands an Firmenkunden bietet MySQL Kunden, welche
            erstklassige Support- und Dienstleistungen auf Unternehmensniveau wünschen, MySQL
            Enterprise an. MySQL Enterprise bietet diesem Klientel unter anderem Supportleistungen rund
            um die Uhr, Benachrichtigungssysteme, und einen professionellen Monitor- und Advisordienst.
            Bekannte Anbieter von IT-Systemen und –Lösungen haben inzwischen die Popularität von
            MySQL Enterprise erkannt und sich mit MySQL zusammengeschlossen, um MySQL Enterprise
            an ihren großen Kundenstamm weiterzuveräußern. Unter den MySQL-Wiederverkäufern befinden
            sich heute Unternehmen wie HP, Novell, Dell und andere.

            Unternehmen, die Referenzen wünschen und sich absichern möchten, daß MySQL auch für
            kritische Anwendungsbedürfnisse zuverlässig arbeitet, brauchen sich nur den rasch wachsenden
            MySQL-Kundenstamm anzuschauen: er liest sich wie das Who’s-Who der Geschäftswelt. Im
            MySQL-Kundenstamm sind moderne Unternehmen wie Yahoo, Google, Amazon, Siemens,
            neckermann.de, OBI, die HypoVereinsbank und viele andere vertreten. Weitere Informationen
            finden Sie auf http://www.mysql.de/customers/.

3 Die technische Seite der Migration von SQL Server
  nach MySQL
            MySQL hat seine Bewährungsprobe im geschäftlichen Umfeld mit Bravour bestanden. Die
            nächste Hürde, ob von SQL Server zu MySQL migriert werden kann ist die Überprüfung der
            Datenbank-Funktionalitäten und deren Fähigkeiten. Mit anderen Worten: Wie gut kann eine Open-
            Source-Datenbank sein?

            1
                http://www.cio.com/archive/090105/forum.html, September 2005
            2
                Forrester Research, Februar 2004.

Copyright © 2007, MySQL AB                                                                   Seite 6 von 49
LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
3.1 MySQL unter Windows? Natürlich!
            MySQL kann auf eine umfangreiche Vergangenheit mit vielen Open-Source-Betriebssystemen
            wie Linux zurückblicken, und deshalb überrascht es möglicherweise zu sehen, wie beliebt MySQL
            mit seiner Datenbankserver-Plattform bei den Anwendern von Microsoft Windows ist. In einer
            Umfrage3 unter MySQL-Anwendern gaben 58% an, daß bei ihnen MySQL unter Windows läuft.
            46% sagten, daß sie von einem Microsoft-Datenbankprodukt (SQL Server und Access) zu MySQL
            migriert hatten. Warum ist MySQL bei den Windows-Anwendern so beliebt?

            Zunächst einmal ist MySQL unter Windows extrem einfach zu installieren und betreiben. Die
            Installation  und    Konfiguration    mit    der    grafischen
            Benutzerschnittstelle von MySQL dauert unter Windows
            weniger als 5 Minuten, und das ist schneller und einfacher als
            mit SQL Server. Es ist auch ganz leicht, mehrere Instanzen
            von MySQL auf demselben Windowsserver zu installieren,
            denn jede Instanz läuft als eigener, separater Dienst und
            akzeptiert eingehende Verbindungen über einen eigenen,
            separaten Port. Wie bei SQL Server ist es ausgesprochen
            einfach, MySQL-Instanzen auf einem Windows-Server
            entweder über das Windows Dienstprogramm oder aber über
            den von MySQL mitgelieferten systray-System Manager zu
            starten/anzuhalten.

            Auch die Treiber für MySQL lassen sich auf jeden Windows-
            Server oder auf der Entwickler-Workstation einfach installieren und konfigurieren, und dabei sind
            ODBC- und .NET-Treiber verfügbar. MySQL stellt darüber hinaus kostenlose grafische
            Management-, Entwicklungs- und Migrations-Werkzeuge zur Verfügung, so daß die Entwickler
            oder DBAs ihre MySQL-Datenbanken, Tabellen, Indizes, die gespeicherten Prozeduren und
            andere Objekte ganz einfach per Mausklick erstellen können.

            Es ist also ganz einfach, MySQL auf der Microsoft Windows-Plattform zu betreiben. Wir möchten
            jedoch auch betonen, daß MySQL anders als SQL Server darüber hinaus auf über 2 Dutzend
            weiteren Plattformen verwendet werden kann, so daß bei der Arbeit mit MySQL niemals eine
            Abhängigkeit von einer bestimmten Plattform entsteht.

3.2 Genau die richtigen Funktionen
            Niemand wird abstreiten, daß SQL Server mehr Funktionalität aufzuweisen hat als der MySQL-
            Datenbankserver. MySQL wurde jedoch auch nicht konzipiert, um SQL Server zu ersetzen,
            sondern die Absicht bestand darin, einen Hochleistungs-Datenbankserver zu schaffen, der die
            meisten Funktionen enthält, die moderne Unternehmen für ihre Geschäfte benötigen. Viele
            MySQL-Kunden (einer kürzlich durchgeführten Umfrage zufolge 44%) setzen sowohl SQL Server
            als auch MySQL im selben Rechenzentrum ein und verwenden dann das jeweils passende
            Produkt.

            Was die Kernfunktionen anbelangt, werden sich sowohl Datenbankadministratoren als auch IT-
            Leiter darüber freuen, daß MySQL über alle notwendigen Funktionen verfügt, um die große
            Mehrheit der Anwendungsanforderungen zu erfüllen:

            3
                MySQL-Anwenderumfrage – Dezember 2005.

Copyright © 2007, MySQL AB                                                                    Seite 7 von 49
LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
Leistungsmerkmal                                                            Verfügbarkeit
                                                                                           in MySQL
              Quelloffen                                                                        √
              Verfügbar für zwei Dutzend Plattformen (32- und 64-Bit),                          √
              einschließlich Windows: (RedHat, SuSE, Fedora, Solaris, HPUS,
              AIX, SCO, FreeBSD, Mac OS, Windows)
              Modulare Speicher-Engine-Architektur (MyISAM, InnoDB, Merge,                      √
              Memory, Archive, Cluster)
              Geclusterte, hochverfügbare Datenbank                                             √
              ANSI SQL, SubQueries, Joins, Cursors, Prepared Statements                         √
              Gespeicherte Prozeduren, Trigger, SQL und benutzerdefinierte                      √
              Funktionen
              Aktualisierbare Views                                                             √
              ACID-Transaktionen mit Commit, Rollback                                           √
              Verteilte Transaktionen                                                           √
              Sperren auf Datensatzebene                                                        √
              Snapshots/konsistente, wiederholbare Lesezugriffe (beim Lesen                     √
              wird der Schreibzugriff nicht gesperrt und umgekehrt)
              Vom Server erzwungene, referenzielle Integrität                                   √
              Breite Datentypunterstützung (numerisch, VARCHAR, BLOB, etc.)                     √
              Hochpräzise numerische Datentypen                                                 √
              Robuste Indizierung (geclustered, b-tree, hash, Volltext)                         √
              Dynamische Speichercaches                                                         √
              Zentraler Abfragecache                                                            √
              Kostenbasierter Optimizer                                                         √
              Unicode, UTF-8                                                                    √
              XML, XPath                                                                        √
              Geographische Datentypen                                                          √
              Replikation (zeilen- und befehlsbasiert)                                          √
              Partitionierung (Bereich, Liste, Hash, Schlüssel, kombiniert)                     √
              VLDB-Unterstützung (Terabytes)                                                    √
              Hochperformantes Dienstprogramm zum parallelen Laden von                          √
              Daten
              Online-Backup mit Point-in-Time-Wiederherstellung                                 √
              Automatischer Neustart/Crash-Recovery                                             √
              Automatisches Speichermanagement (Auto-Expanision, Undo-                          √
              Management)
              Komprimierte Tabellen und Archivtabellen                                          √
              Informationsschema/Data Dictionary)                                               √
              Sicherheitsfunktionalitäten (SLL,detailierte Objektprivilegien)                   √
              Integrierte Datenver- und entschlüsselung                                         √
              Integrierter Task Scheduler                                                       √
              Treiber (ODBC, JDBC, .NET, PHP, usw.)                                             √
              GUI-Werkzeuge (Workbench, Administrator, Query-Browser,                           √
              Migration Toolkit)
              Tabelle 1 – Die wichtigsten Funktionen des MySQL-Datenbankservers

             Wie oben dargestellt enthält MySQL sehr leistungsstarke Funktionen und übertrifft SQL Server in
             einigen Bereichen. SQL Server 2005 unterstützt zum Beispiel nur die bereichsbasierte
             Partitionierung, während MySQL 5.1 Unterstützung für Bereichs-, Hash-, Schlüssel-, Listen- und
             gemischte Partitionierung einführte.

Copyright © 2007, MySQL AB                                                                    Seite 8 von 49
LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
3.3 Untersuchung der Leistung und Skalierbarkeit von MySQL
            Eines der Kennzeichen von MySQL war immer die ausgesprochen hohe Leistung in allen
            Bereichen, unabhängig davon, ob es um die Transaktionsverarbeitung, um Data Warehousing
            oder um stark frequentierte Websites geht. Wie bereits erwähnt können viele moderne
            Unternehmen durch den Einsatz einer horizontalen Skalierungsarchitektur in Verbindung mit
            MySQL unglaubliche Leistungsgewinne verzeichnen, bei denen Daten über zahlreiche MySQL-
            Standardserver vervielfältigt und so verteilt werden, so daß auch die größten Belastungen durch
            den Endanwender in extrem kurzen Reaktionszeiten verarbeitet werden können.

            Kunden wie Friendster verarbeiten mit MySQL täglich über 1,5 Milliarden Abfragen auf einer
            Datenbasis von 24 Terabytes. Andere Kunden wie Craigslist und Sabre Holdings bedienen mit
            Hilfe von MySQL täglich unzählige Kundenanfragen. Los Alamos Labs verwaltet 7 Terabyte an
            Daten mit MySQL, Cox Communications registriert innerhalb von zwei Stunden 4 Millionen neue
            Einträge an Kundendaten – beide Unternehmen stellen hinsichtlich des Data Warehouse fest, daß
            sich MySQL in punkto Leistungsfähigkeit und Skalierbarkeit mehr als bewährt hat. Alan Walker,
            Vizepräsident von Sabre äußerte sich so: „MySQL läuft schneller oder zumindest genauso schnell
            wie jede kommerzielle Datenbank, die wir getestet haben.“

3.4 MySQL – Immer betriebsbereit, immer funktionsfähig
            Zuverlässigkeit und verfügbare Betriebszeit sind zwei wichtige technische Anforderungen für jede
            Software, dies gilt jedoch insbesondere für Datenbanksoftware. MySQL enttäuscht auch in
            diesem Bereich nicht und bietet viele Funktionen, die dabei helfen, einen kontinuierlichen
            Datenbankbetrieb zu gewährleisten.

            Eine eigenständige MySQL-Installation ist extrem zuverlässig, und viele MySQL-Installationen
            erleben über mehrere Jahre hinweg nur wenige oder gar keine Ausfälle. Wie bereits weiter oben
            besprochen, setzen viele große Unternehmen die MySQL-Replikation zur Implementierung von
            horizontalen Skalierungsarchitekturen ein, die eine sehr hohe Redundanz liefert. Das Ergebnis ist
            ein vollständig unterbrechungsfreier Betrieb über Dutzende und sogar Hunderte von Servern
            hinweg, so daß oft gar kein Bedarf mehr z.B. an SQL Server Clustering oder Log Shipping
            besteht.

            Für Unternehmen, die höchstmögliche Betriebszeiten benötigen, kann MySQL Cluster verwendet
            werden, um Lösungen für eine 99,999%ige Verfügbarkeit einzurichten. Bei Verwendung einer
            Shared-Nothing-Architektur wird MySQL Cluster von Kunden eingesetzt, die es sich einfach nicht
            leisten können, daß ihre Systeme ausfallen. MySQL Cluster ist besonders für Anwendungen wie
            Transaktions- und Katalogsysteme in den Bereichen Telekommunikation und eCommerce
            geeignet. MySQL Cluster ist derzeit nur für Linux und Unix verfügbar.

Copyright © 2007, MySQL AB                                                                    Seite 9 von 49
LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
4 Praktische Vorschläge für die einfache Migration von
  SQL Server zu MySQL
            In der folgenden Abbildung werden die drei grundlegenden Schritte für die Migration von SQL
            Server nach MySQL dargestellt:

          Abbildung 1 – Die drei grundlegenden Schritte bei der Migration von SQL Server zu MySQL

4.1 Alles oder nichts?
            Vor der Arbeit an jedem einzelnen Migrationsschritt möchten wir auf eine sehr erfolgreiche
            MySQL-Einsatzstrategie der Kunden hinweisen: Wenn kein Bedarf an speziellen SQL Server-
            Funktionen besteht kommt bei neuen Projekten MySQL zum Einsatz oder es werden bestehende
            Anwendungen migriert, während bei ganz besonderen Datenbankanforderungen SQL Server
            eingesetzt wird. Wie aus Tabelle 1 in diesem Dokument hervorgeht, bietet MySQL das perfekte
            Gleichgewicht aus Anwenderfreundlichkeit und leistungsstarken Funktionalitäten für die
            Handhabung der meisten Datenbankanforderungen einer jeden Anwendung.

            MySQL kann in jeder IT-Infrastruktur auch in Verbindung mit SQL Server oder jeder anderen
            Datenbankplattform eingesetzt werden, denn seine große Anwenderfreundlichkeit verursacht -
            wenn überhaupt - einen nur sehr geringen Verwaltungsaufwand. Ein Beispiel aus der Praxis ist
            die Firma Sabre: Hier wird MySQL als Nachschlagewerk für Reservierungen eingesetzt; für
            komplexe       Transaktionsverarbeitungen      verwendet     Sabre        HP      Nonstop.

4.2 1. Schritt – Dokumentation des SQL Server-Quellcodes
            Die Dokumentation der Datenbankstruktur eines bestehenden SQL Servers über manuelle
            Standardverfahren kann schwierig sein. Obwohl SQL Server über ein sehr gutes Metadaten-
            Dictionary verfügt, kann der manuelle Auszug aller Metadaten (Tabelle, Spalte, Index usw.) sehr
            zeitraubend sein.

Copyright © 2007, MySQL AB                                                                 Seite 10 von 49
Der beste Ansatz besteht hier in der Verwendung eines computerisierten Reverse Engineering-
            Verfahrens, bei dem alle für die Konvertierung maßgeblichen Metadaten automatisch katalogisiert
            werden. Dafür kann ein gutes Datenmodellierungs-Werkzeug eines Drittanbieters verwendet
            werden. Der Markt bietet hier eine Reihe guter Produkte, wie z.B. PowerDesigner von
            Sybase/Quest und ER/Studio von Embarcadero, welche die Rückentwicklung verschiedener
            Datenquellen wie z.B. SQL Server unterstützen. MySQL stellt außerdem ein freies
            Modellierungswerkzeug mit der Bezeichnung MySQL Workbench, das eine Rückentwicklung der
            SQL Server-Tabellen und Indexstrukturen durchführen kann.

            Die Verschiebung von Daten und Indexstrukturen nach MySQL ist normalerweise keine
            besonders schwierige Aufgabe, denn MySQL unterstützt alle wichtigen Datentypen,
            Tabellendesigns und Indexstrukturen. Eine vollständige Beschreibung zum Vergleich von
            Datentypen und anderen wichtigen Migrationsmerkmalen für SQL Server und MySQL finden Sie
            in den Anhängen A - C dieses Dokuments. In Anhang D finden Sie eine schrittweise
            Beispielmigration von einem SQL Serverschema nach MySQL.

            Außerhalb codebezogener Objekte wie gespeicherter Prozeduren können einige wenige SQL
            Server-Objekte nicht eins-zu-eins migriert werden:

                •   Synonyme
                •   Sicherheitsrollen

            Der schwierigere Teil der Migration ist die Arbeit mit Codeobjekten. Transact-SQL von SQL
            Server enthält viele Funktionen, von denen viele nicht dem ANSI-Standard entsprechen. Aus
            diesem Grund muß bei der Betrachtung von gespeicherten Prozeduren, Triggern, Views,
            benutzerdefinierten Funktionen usw. sehr vorsichtig vorgegangen werden. Neben den
            allgemeinen Unterschieden bei Syntaxfunktionen und Funktionalität erfordern folgende Elemente
            besondere Aufmerksamkeit, bevor sie vollständig von SQL Server nach MySQL migriert werden
            können:

                •   Assemblies
                •   Typen
                •   DDL und Statement-basierte Trigger (MySQL hat zeilenbasierte Trigger)
                •   Proprietäre SQL Server-Funktionsaufrufe
                •   Bestimmte Fälle von dynamischem T-SQL

            Um die Migration von Datenobjekten von SQL Server nach MySQL zu vereinfachen, stellt MySQL
            ein      frei     verfügbares
            grafisches         Migrations-
            Werkzeug bereit. Dieses
            Werkzeug enthält auch eine
            Komponente                 zur
            Rückentwicklung, wie sie
            auch          in         guten
            Datenmodellierungs-
            Werkzeugen zu finden ist.
            Über    eine     einfach    zu
            verwendende Schnittstelle
            gibt der Anwender zunächst
            die Verbindungsdetails für
            das Quelldatenbanksystem
            ein und stellt dann eine
            Verbindung mit der SQL
            Serverdatenbank her, die zu
            Migrationszwecken
            rückentwickelt wird.

            Mit dem MySQL Migration
            Toolkit ist es ganz einfach, die notwendigen Metadaten der Quelldatenbank zu erhalten, so daß
            die Migration rasch gestartet werden kann.

Copyright © 2007, MySQL AB                                                                  Seite 11 von 49
4.3 2. Schritt – Entwurf der MySQL-Zieldatenbanken
            Nachdem die Quellmetadaten des SQL Servers erhalten und verarbeitet wurden, besteht der
            nächste Schritt im Entwurf der MySQL-Zieldatenbank. Hierzu gehört vor allem die Übersetzung
            der Quellobjekte und ihrer Eigenschaften (wie Spaltendatentypen) in MySQL-Gegenstücke.
            Dieser Schritt kann extrem zeitraubend und fehlerträchtig ausfallen, wenn er manuell durchgeführt
            wird, denn die meisten Datenbanken beinhalten Tausende von Objekteigenschaften, die
            konvertiert werden müssen. Eine detaillierte Auflistung der umzuwandelnden Datentypen und
            Funktionen von SQL Server nach MySQL finden Sie auch hier in Anhang A dieses Dokuments.

            Bitte beachten Sie, daß die meisten Werkzeuge für die Datenmodellierung die Fähigkeit besitzen,
            mit nur wenigen Mausklicks ein SQL Server-Schema in ein MySQL-Schema zu konvertieren.
            MySQL Workbench erledigt automatisch diese Aufgabe, wenn eine Rückentwicklung der SQL
            Server-Datenbank mit diesem Tool durchgeführt wird. Diese Modelle können natürlich bei Bedarf
            angepaßt werden. Die automatische Konvertierung von SQL Server in MySQL-Datenobjekte
            durch die Modeling-Werkzeuge spart große Mengen an Zeit und kann für das
            Datenbankmigrationsteam zu großen Produktivitätsgewinnen führen.

            Bei der Konvertierung von Codeobjekten verhält es sich jedoch anders. Eine Reihe von MySQL-
            Partnern arbeitet bereits an Werkzeugen für die automatische Codekonvertierung, mit dem ein
            Reverse Engineering der T-SQL-Codeobjekte von SQL Server durchgeführt werden kann und
            konstruieren dafür MySQL-Gegenstücke.

                                                                                 Das MySQL Migration
                                                                                 Toolkit          konvertiert
                                                                                 automatisch             jede
                                                                                 Quelldatenbank, an der mit
                                                                                 diesem Tool ein Reverse
                                                                                 Engineering durchgeführt
                                                                                 wurde, in ein MySQL-
                                                                                 Gegenstück, und zwar
                                                                                 vollständig     mit    allen
                                                                                     Datentypübersetzungen
                                                                                 und anderen ähnlichen
                                                                                 Konvertierungen.         Der
                                                                                 Anwender        hat       die
                                                                                 vollständige Kontrolle über
                                                                                 die       exakten,         zu
                                                                                 migrierenden         Objekte
                                                                                 sowie       darüber,     wie
                                                                                         MySQL-spezifische
                                                                                 Angaben – zum Beispiel,
            welche Speicher-Engine verwendet werden soll – erfolgen sollen.

            Wie bereits erwähnt, kann dieser Schritt extrem kompliziert sein, und wird er nicht korrekt
            durchgeführt, so kann das dazu führen, daß der Datenbankadministrator plötzlich Objekte neu
            konzipieren oder Datentransferfehler bearbeiten muß, die aufgrund eines ungültigen
            Datentypmappings auftreten. Wie dem auch sei, wenn Sie das MySQL Migration Toolkit
            verwenden, gehören diese Probleme der Vergangenheit an, denn dieses Werkzeug erledigt die
            Arbeit auf Anhieb korrekt.

4.4 3. Schritt - Durchführung der Migration nach MySQL
            Nachdem die Quellmetadaten von SQL Server erfaßt und die MySQL-Ziel-Datenbank konzipiert
            wurde, ist der nächste Schritt die Durchführung der tatsächlichen Migration. Die Extrahierungs-,
            Umwandlungs- und Ladephasen (ETL) können abhängig von den Zielen recht kompliziert sein.
            Zusätzlich zum MySQL Migration Toolkit gibt es daher viele leistungsstarke ETL-Werkzuge von
            Drittanbietern auf dem Markt, die eine extreme Flexibilität bei Bewegung, Sammlung, Mapping
            und Transformation der Daten vom SQL Server zu den MySQL-Datenbanken bieten. Drittanbieter
            wie Informatica, Embarcadero DT/Studio, Goldengate und andere bieten Support für die Migration

Copyright © 2007, MySQL AB                                                                   Seite 12 von 49
komplexer SQL Server-Datenbanken nach MySQL an. Wenn Sie kontinuierlich
            Datenbankmigrationen durchführen müssen (zum Beispiel für die Datenübertragung von
            Quellsystemen in Data Warehouses) ist der Erwerb eines solchen Werkzeugs eine gute
            Investition.

            Für einmalige Migrationen ist der Preis für derartige ETL-Tools jedoch zu hoch. Das MySQL
            Migration Toolkit kann hier hilfreich sein, denn es bietet eine Reihe an Optionen für den Transfer
            einer Quelldatenbank von SQL Server nach MySQL. Das MySQL Migration Toolkit steht frei zur
            Verfügung und ist und unter der Open-Source-GPL-Lizenz veröffentlicht.

            Auch Microsoft bietet Data Transformation Services (DTS für SQL Server 2000) und Integration
            Services (SQL Server 2005) an, die bei einer Migration von SQL Server nach MySQL hilfreich
            sein    können.      Microsofts    integrierte   Migrationswerkzeuge    unterstützen    den
            Datenbankadministrator beim mühelosen Transfer von SQL Server-Daten nach MySQL.

            Wenn Sie SQL Server verwenden, mit den Integration Services jedoch nicht vertraut sind, können
            Sie die Daten mit Hilfe einer Kombination des SQL Server Bulk Copy-Programms (BCP) und dem
            MySQL LOAD DATA INFILE-Dienstprogramm von SQL Server nach MySQL transferieren. Wenn
            die Daten durch ein geeignetes Zeichen getrennt sind (wie z.B. durch ein Komma, Semikolon
            etc.), dann kann der DBA Datenfiles mit SQL Server BCP erstellen und dann mit LOAD DATA
            INFILE unter Angabe desselben Trennzeichens nach MySQL laden.

            Eine letzte Möglichkeit zum Laden einer SQL Server-Datenbank nach MySQL mit Hilfe von
            Microsoft besteht in der Verwendung der Exportmöglichkeiten von Microsoft Access. Der
            Datenbankadministrator kann durch Klicken auf eine Access-Tabelle und eine Kombination aus
            Exportfunktion und dem ODBC-Treiber von MySQL jeden Datensatz aus Access nach MySQL
            exportieren. Bitte achten Sie darauf, daß die Indizes normalerweise nicht mit der Tabellenstruktur
            und den Daten exportiert werden.

            Eine Strategie für die Datenmigration besteht in der Migration aller bestehenden SQL Server-
            Objekte und Daten aus der Quelldatenbank in eine MySQL Staging-Datenbank. Nachdem die
            Daten sicher im MySQL Datenbankserver angekommen sind, kann der DBA oder Entwickler
            gespeicherte Prozeduren oder anderen Migrationscode erzeugen, anhand dessen die Daten dann
            selektiv von der Staging-Datenbank in eine andere MySQL-Datenbank zur weiteren Entwicklung
            oder Produktion manipuliert oder transferiert werden.

            Eine weitere Option besteht in den Scripting-Fähigkeiten des MySQL Migration Toolkits für die
            Übermittlung der Daten beim Transfer von der SQL Server-Quelle zur MySQL-Zieldatenbank.
            Obwohl die meisten Anwender die grafische Benutzerschnittstelle zur Durchführung von
            Datenbankmigrationen mit der Maus verwenden werden, so können fortgeschrittene Anwender
            die zugrundeliegende Architektur einsetzen, um – falls erforderlich - komplexere ETL-Prozesse zu
            erstellen und zu planen.

            Bei umfangreichen Transformationen von SQL Server-Daten bewegt das Migration Toolkit die
            Daten als Bulk und stellt sicher, daß alle Datenbank- und Objekteigenschaften, die zu schnellen
            Ladezeiten führen, automatisch eingestellt werden. Die Anwender des Migration Toolkits werden
            über einfach abzulesende Anzeigen und andere Informationsmeldungen über den Fortschritt des
            Migrationsverfahrens auf dem Laufenden gehalten. Nach Beendigung der Migration erhält der
            Anwender einen zusammenfassenden Bericht aller durchgeführten Aufgaben.

4.5 Validierung der Migration von SQL Server nach MySQL
            Nachdem alle Informatioenn von der SQL Server-Quelldatenbank nach MySQL extrahiert wurden,
            empfehlen wir Ihnen, abschließende Tests durchzuführen, um sich zu vergewissern, daß im
            Hinblick auf die Übereinstimmung von Objekten und Datensatzanzahl sowie auf ergänzende
            Elemente wie Indizes und unterstützende Codeobjekte (Views etc.) alles in Ordnung ist. Auch die
            Durchführung einer Reihe von Benchmarktests, anhand derer Sie feststellen können, ob die
            Leistung akzeptabel ist, ist eine gute Idee. Dieser Schritt wird von allen Migrationsprozessen
            vielleicht am meisten vernachlässigt, da er naturgemäß nicht so einfach auszuführen ist.

Copyright © 2007, MySQL AB                                                                    Seite 13 von 49
Gute Leistungstests erfassen die Leistungsprobleme, die von ungeeigneten Anwender- und
            Qualitätssicherungstests übersehen werden. Leistungstests simulieren nur das, was beim
            tatsächlichen Einsatz erwartet wird. Sie belasten die MySQL-Datenbank auf eine Weise, die sonst
            nur durch gleichzeitige Zugriffe aller möglichen Nutzer erreicht werden könnte (Spitzenlast).

            Intelligente Leistungstests verwenden folgende Komponenten für eine realistische Simulation
            dessen, was in einer produktiven Datenbank geschieht:

                •   Erwartete Anwenderpräsenz – Es ist entscheidend, daß der Test die Anzahl der
                    Anwenderverbindungen simuliert, die zu Spitzenzeiten und zu normalen Arbeitszeiten
                    erwartet werden. Dies ist der größte Bereich, in dem manuelle Methoden, bei denen nur
                    ein Teil der Anwender zum Test von Datenbank und Anwendung verwendet werden,
                    scheitern. Die Datenbank funktioniert eventuell mit 10 Anwendern vollkommen
                    problemlos, scheitert jedoch, wenn 400 Verbindungen hergestellt werden.

                •   Wiederholte Anwenderaktivität – Nachdem die erwartete Anzahl an Anwendern
                    Verbindungen mit der Datenbank hergestellt hat, müssen die Anwender natürlich „etwas
                    tun", damit das System belastet wird. Und diese „Etwas“ dürfen sie nicht nur einmal tun.
                    Entweder alle oder ein Teil der Anwender müssen die Aufgaben wiederholt durchführen,
                    ganz genau so, wie es an einem normalen Arbeitstag erfolgen würde. Bei einem OLTP-
                    System kann dies die Eingabe zahlreicher Aufträge bedeuten. Bei einem Date
                    Warehouse hingegen kann das umfangreiche analytische Abfragen bedeuten. Wichtig ist,
                    daß die Arbeit wiederholt durchgeführt wird, so daß die Datenbank immer neuen
                    Belastungsspitzen ausgesetzt ist.

                •   Erweiterte Dauer – Nachdem Sie eine Anzahl von Sessions eingestellt haben, in denen
                    wiederholt Aufgaben durchgeführt werden, besteht Ihr nächster Schritt darin
                    sicherzustellen, daß die Arbeit über eine bestimmte Dauer fortgesetzt werden kann, damit
                    der Test überhaupt sinnvoll ist. Sie suchen hier nach Problemen, die sich erst im Laufe
                    der Zeit entwickeln. Die Fragmentierung einer MySQL-Tabelle erfolgt vielleicht nicht nach
                    30 Minuten OLTP-Arbeit, jedoch ganz überraschend und auf dramatische Weise nach 2
                    oder mehr Stunden wiederholter Aktivität.

                •   Erwartetes Produktivdatenvolumen – Um ein aussagekräftiges Testergebnis zu erhalten,
                    müssen Sie Testdaten in Ihre Datenbank laden, die in etwa der Größe Ihrer tatsächlichen
                    Datenbank entsprechen. Dies ist einfach zu erreichen, wenn eine bestehende produktive
                    Datenbank nach MySQL migriert wurde.

            Die meisten Datenbankadministratoren sind ratlos, wie sie in der Praxis alle oben erwähnten
            Punkte umsetzen sollen. Es gibt Open-Source Benchmark-Werkzeuge; die meisten verfügen aber
            über Unzulänglichkeiten bei der Durchführung von korrekten Performanz-Tests, sodaß das
            eigentliche Ziel verfehlt wird.

            Hier kann Software von Drittanbietern Abhilfe schaffen, wobei nicht jede Software gleich gut
            geeignet ist. Ein sehr gutes Leistungstestwerkzeug, Benchmark Factory, wird von Quest Software
            vertrieben. Benchmark Factory ist extrem einfach zu verwenden und bietet flexible, per Maus
            bedienbare Assistenten, die den Anwender durch den vollständigen Einrichtungsprozess führen
            und viele der standardmäßigen TPC-Benchmarktests für MySQL als auch andere skalierbare
            Leistungstests durchführen. Nach Beendigung der Tests liefert Benchmark Factory Analysen mit
            einfachen Vergleichsläufen und kann die Testergebnisse nach Microsoft Excel exportieren.

            Mit MySQL 5.1 wurde ein neues Dienstprogramm eingeführt – mysqlslap. Mit diesem Programm
            kann über die Befehlszeile ein Leistungsvergleich für MySQL Server durchgeführt werden. Mit
            diesem Programm können auf schnelle Weise Testschemata generiert, Testdaten eingepflegt und
            eine beliebige Anzahl an virtuellen Nutzern erzeugt werden, die eine Folge von vordefinierten
            oder kurzfristig erstellten SQL-Befehlen auf der Testdatenbank ausführen. Im Anschluß werden
            die Testergebnisse zurückgemeldet.

Copyright © 2007, MySQL AB                                                                   Seite 14 von 49
4.6 Ratschläge zur gemeinsamen Handhabung von SQL Server und
    MySQL
            Wie sehen die optimalen Verfahren für einen Datenbankadministrator aus, wenn MySQL in einem
            Rechenzentrum parallel zu SQL Server betrieben werden soll? Obwohl die nachfolgenden
            Empfehlungen keinen Anspruch auf Vollständigkeit haben, sollen sie Datenbankadministratoren
            dabei helfen, so produktiv wie möglich zu arbeiten.

                •   Datenbankwerkzeuge können bei korrekter Wahl zu großen Produktivitätsgewinnen
                    führen. Viele Drittanbieter von Datenbankwerkzeugen unterstützen heute MySQL und
                    gleichzeitig SQL Server. Der DBA sollte also herausfinden, ob die Verwendung dieser
                    Werkzeuge für ihn sinnvoll ist. Quest TOAD wird zum Beispiel aufgrund der großen
                    Zeiteinsparungen in vielen SQL Server Shops verwendet. Ein Datenbankverwalter, der
                    die TOAD-Schnittstelle kennt, kann durch Verwendung von Toad for MySQL von Quest
                    ganz einfach zu MySQL wechseln. Das Gleiche gilt auch für die Anwender von DBArtisan
                    von Embarcadero, das SQL Server unterstützt. DBArtisan unterstützt jetzt MySQL, so
                    daß der DBA nur ein einziges Tool zur Handhabung sowohl der SQL Server- als auch der
                    MySQL-Plattform verwenden muß. Der DBA kann natürlich auch die Werkzeuge seines
                    Datenbanklieferanten wie Management Studio für SQL Server (Enterprise Manager für
                    SQL Server 2000 und darunter) und die Administrator- und Query Browser-Tools von
                    MySQL (alle frei von MySQL) verwenden.

                •   SQL Server-DBAs, die daran gewöhnt sind, daß sich der SQL Server automatisch selbst
                    verwaltet, sollten die entsprechenden zusätzlichen MySQL-Funktionen verwenden, so
                    daß zusätzlicher Verwaltungsaufwand vermieden wird. Dazu gehören unter anderem die
                    Aktivierung der InnoDB Tablespace-Dateien für die automatische Größenanpassung
                    (entspricht der Aktivierung der Autogrowth-Eigenschaft für SQL Server-Daten und
                    Logfiles), die Einrichtung des MySQL Binary Loggings für die Point-in-Time-
                    Wiederherstellung      (entspricht   der      Verwendung     eines     vollständigen
                    Wiederherstellungsmodells unter SQL Server mit periodischen Transaktions-Logdumps)
                    und andere ähnliche Funktionen.

                •   Denken Sie daran, daß Sie anders als bei SQL Server in MySQL eine Reihe
                    unterschiedlicher zugrundeliegender Speicher-Engines zur Verfügung haben, die für
                    bestimmte Anwendungsszenarien gedacht sind. Vergewissern Sie sich, daß Sie die
                    richtige Engine für den richtigen Zweck verwenden.

                •   Großzügige Speicherzuweisungen führen bei MySQL genau wie bei SQL Server zu
                    Leistungssteigerungen. Achten Sie also darauf, daß abhängig von der zugrundeliegenden
                    Engine genügend RAM für den Speicherzugriff auf die Daten (im Gegensatz zum Lesen
                    von der Festplatte) verfügbar ist, denn die Standardeinstellungen für MySQL sind für fast
                    alle Geschäftsanwendungen zu niedrig. Seien Sie sich auch bewußt, daß das ständige
                    Lesen der Daten in den RAM - wie bei SQL Server - nicht bedeutet, daß der aktuelle
                    SQL-Code wirklich auch effizient ist. Unnötige logische Ein/Ausgabe-Operationen können
                    die Leistung genau wie physische Ein- und Ausgaben beeinträchtigen.
                         o Geclusterte Indizes weichen in MySQL leicht von denen in SQL Server ab:
                                ƒ Geclusterte Indizes sind nur mit der InnoDB-Speicherenginge verfügbar.
                                ƒ Geclusterte Indizes müssen auf dem Primärschlüssel der Tabelle
                                    angelegt werden.
                                ƒ Wird ein geclusterter Index nicht explizit auf einer InnoDB-Tabelle
                                    definiert, erstellt MySQL automatisch einen Index auf einem
                                    Primärschlüssel, einem eindeutigen Schlüssel (wenn ein Primärschlüssel
                                    nicht verfügbar ist) oder auf einem internen Row-Identifier, wenn die
                                    Tabelle keine eindeutigen Schlüssel enthält.

                •   Die Partitionierung in MySQL erfordert anders als bei SQL Server nicht das Erstellen von
                    Partitionsfunktionen oder Partitionsschemata. Die Partitionen und die Partitionsmethoden
                    (Range, Hash, Key, List, Composite) werden statt dessen in der DDL für die
                    Tabellenerstellung definiert.

Copyright © 2007, MySQL AB                                                                   Seite 15 von 49
•   Linked Server und partitionierte Views von SQL Server können mit Hilfe der Federated-
                    Speicher-Engine von MySQL imitiert werden.

                •   Anders als SQL Server 2005 erfolgt die Aktivierung von „Snapshot Read“ (beim
                    Lesezugriff wird der Schreibzugriff nicht verhindert und umgekehrt) in MySQL
                    automatisch und erfordert keinerlei Einstellung von Datenbankoptionen oder einleitenden
                    SQL-Statements mit speziellen Befehlen für Snapshot-Isolation-Lesevorgänge. Snapshot-
                    Read ist zurzeit jedoch nur für besondere Speicherengines verfügbar (wie InnoDB,
                    Archive etc.). Schlagen Sie also im aktuellen MySQL-Handbuch nach, welche
                    Sperrfunktionen für jede Engine unterstützt werden.

                •   Wenn mehrere MySQL-Instanzen parallel betrieben werden (wie viele DBAs dies mit SQL
                    Server tun), dann sollte der MySQL Instance Manager verwendet werden. Er wurde mit
                    Version 5.0 eingeführt und erhöht die Produktivität der MySQL DBAs, indem er eine
                    einfache Möglichkeit bietet, MySQL-Instanzen remote zu starten, anzuhalten, zu
                    bearbeiten und zu steuern. Darüber hinaus ermöglicht dieses Werkzeug den einfachen
                    Fernzugriff auf Fehlerprotokolle und andere Vorgänge, die MySQL protokolliert.

                •   Da ein ineffizienter SQL-Code negative Auswirkungen auf eine sonst gut laufende
                    MySQL-Datenbank haben kann, sollten Sie als MySQL-Datenbankadministrator das Slow
                    Query Log aktivieren, um auf diese Weise schlecht abgestimmten SQL-Code ausfindig zu
                    machen und die Ergebnisse regelmäßig im Protokoll zu überprüfen. Mit MySQL können
                    das Slow Query Log oder das General Log so eingerichtet werden, daß die Ergebnisse,
                    die in den dynamischen Management-Views oder in SQL Profiler von SQL Server zum
                    Aufspüren von schlechtem Code zu finden sind, automatisch widergespiegelt werden.
                    Version 5.1 liefert SQL-Leistungstabellen, die über SQL abgerufen werden können, um
                    Metriken über ineffizienten Code zu erhalten. Für eine weitere Leistungsüberwachung
                    können die Befehle MySQL SHOW GLOBAL STATUS und SHOW INNODB STATUS zur
                    Untersuchung der rohen MySQL-Leistungsmetriken verwendet werden. MySQL
                    Enterprise bietet mit dem MySL Enterprise Monitor erweiterte Überwachungs- und
                    Beratungsfunktionen und sollte in den meisten produktiven Umgebungen verwendet
                    werden, in denen MySQL eingesetzt wird.

                •   MySQL DBAs sollten für die Überprüfung des MySQL-Fehlerprotokolls auf
                    ungewöhnliches Verhalten dieselben Pläne wie zur Überprüfung der SQL Server
                    Error/Notification Logs verwenden.

                •   Wenn Sie es gewohnt sind, den SQL Server Agent zur Planung und Ausführung von
                    SQL/T-SQL-Jobs zu verwenden, dann können Sie in MySQL 5.1 den Event Scheduler für
                    denselben Zweck verwenden.

                •   DBAs mit produktiven Anwendungen, die eine Überwachung rund um die Uhr benötigen,
                    sollten MySQL Enterprise in Betracht ziehen, denn die zertifizierte Software liefert eine
                    hohe Zuverlässigkeit, während die Softwareupgrades und Überwachungs-
                    /Advisorydienste proaktiv dabei helfen, eine möglichst hohe verfügbare Betriebszeit zu
                    gewährleisten und bei der Diagnose und Lösung von Leistungsproblemen Unterstützung
                    bieten.

5 Fazit
            Vom geschäftlichen und technischen Standpunkt aus betrachtet ist die Frage, ob eine Migration
            von SQL Server nach MySQL sinnvoll ist, schnell beantwortet. Zahreiche Unternehmen kommen
            durch den Einsatz von MySQL in den Genuß gewaltiger Kosteneinsparungen. Gleichzeitig
            betreiben sie ihre anspruchsvollsten datenbankgetriebenen Systeme mit Hilfe der
            benutzerfreundlichen Scale-Out-Architektur von MySQL.

            Obwohl die SQL Server-Datenbankmigration normalerweise nicht leicht ist, gewährleisten Sie
            durch die Verwendung der in diesem Dokument dargelegten Migrationsschritte einen
            problemlosen, erfolgreichen Wechsel zu MySQL. Zur Unterstützung der Migration von SQL

Copyright © 2007, MySQL AB                                                                   Seite 16 von 49
Server bietet MySQL das frei verfügbare Migration Toolkit, mit dem bei der Datenbankmigration
            erhebliche Zeit eingespart werden kann, während die Fehler, die normalerweise bei der
            manuellen Durchführung derart komplexer Operationen entstehen, erheblich gesenkt werden.

            Der Wechsel von SQL Server nach MySQL kann – unabhängig davon, ob er vollständig oder
            teilweise erfolgt und ob MySQL und SQL Server für entsprechende Anwendungssituationen
            verwendet werden – sehr sinnvoll sein, sowohl vom finanziellen als auch vom technologischen
            Standpunkt aus betrachtet. Wenn Sie die Vorschläge und Schritte in diesem Dokument folgen,
            können Sie sicher sein, daß Ihre Implementierung von MySQL erfolgreich sein wird. Unabhängig
            davon, ob Sie lediglich einen Testlauf mit Open Source durchführen möchten oder sich bereits auf
            MySQL festlegen und es damit zu Ihrer bevorzugten Datenbankplattform machen.

6 Weitere Informationsquellen
 6.1 MySQL Migrationshilfen

            MySQL Migration Toolkit
            http://www.mysql.de/products/tools/migration-toolkit/
            Die graphische Migration einer beliebigen Datenbank auf MySQL, auf die mit Hilfe von Oracle,
            SQL Server, Microsoft Access oder JDBC zugegriffen werden kann.

            Weitere Infos auf den MySQL-Webseiten
            http://www.mysql.de/why-mysql/migration/
            Erfahren Sie, wie Sie schnell und leicht Ihre bestehende Datenbank auf MySQL migrieren
            können.

            Migrationsforen
            http://forums.mysql.com/
            Arbeiten Sie mit anderen MySQL-Experten zusammen, die mit aktuellen Datenbankmigrationen
            beschäftigt                                                                         sind.

            MySQL Migrationsstarthilfe
            http://www.mysql.de/consulting/packaged/migration.html
            Wenn Sie einen MySQL-Berater benötigen, der Ihnen bei Ihrem Datenbank-Migrationsprojekt
            Starthilfe gibt, dann ist das Beratungspaket MySQL Migrationsstarthilfe genau das richtige für Sie.
            Unsere Seniorberater nutzen bewährte Methodiken, um von Oracle, Sybase, Microsoft SQL
            Server, DB2, Informix und anderen Datenbanksystem auf MySQL zu migrieren.

 6.2 Anwenderberichte
            The Phone House Telecom wählt MySQL Enterprise Gold als Datenbank-Standard
            http://www.mysql.de/why-mysql/case-studies/de/mysql-phonehouse.php.de
            Onlineshop, CMS und Online-Rechnung waren bei The Phone House Telecom GmbH
            unabhängige Systeme und verteilt auf Informix- und Oracle-Datenbanken. Vereinzelt wurde
            MySQL für eigenentwickelte neue Funktionen eingesetzt. Diese nur schwer zu wartende
            Systemlandschaft sollte mit einem grundlegenden Neuaufbau des Systems vereinheitlicht
            werden. Heute laufen alle Websysteme (Händler Online-Aktivierungs- und Informationssystem,
            CMS, Onlineshop, Kundenselbstadministration einschließlich Online-Rechnung) über einen
            einheitlichen Softwarekern auf Basis von PHP mit dem MySQL Enterprise Server als Datenbank.

            Cox Communications betreibt große Data Warehouse-Anwendungen mit MySQL, MySQL AB
            http://www.mysql.com/it-resources/case-studies/cox.php
            Cox Communications ist der viertgrößte Anbieter für Kabelfernsehen in den Vereinigten Staaten
            und bedient rund 6,3 Millionen Kunden. Um eine optimale Leistungsfähigkeit und ein hohes
            Niveau an Kundenservice sicherzustellen, hat Cox ein riesiges Data Warehouse-System

Copyright © 2007, MySQL AB                                                                     Seite 17 von 49
entwickelt. Das Herzstück dieses geschäftskritischen Systems bildet eine MySQL-Datenbank mit
            2 Milliarden Datensätzen.

            Friendster skaliert horizontal mit MySQL Enterprise, MySQL AB
            http://www.mysql.com/it-resources/case-studies/cox.php
            Friendster, die größte Webseite zum Social Networking mit über 60 Millionen Seitenansichten
            täglich wählte MySQL Enterprise, um die richtige Kombination an erschwinglicher Zuverlässigkeit
            und Skalierbarkeit der Datenbank zu erreichen. Ihr horizontal skaliertes LAMP-System verarbeitet
            über eine Milliarde Datenbankabfragen am Tag. Zudem konnte das IT-Personal Millionen Dollar
            Hardware- und Softwarekosten einsparen.

            Citysearch spart über 1 Million Dollar mit MySQL, MySQL AB
            http://www.mysql.com/why-mysql/case-studies/mysql-citysearch-casestudy.php
            Citysearch ist ein führender regionaler Online-Suchservice, der die aktuellsten Informationen zu
            Unternehmen – von Restaurants und Handel bis hin zu Reisen und qualifizierten Dienstleistungen
            - zur Verfügung stellt. Diese Webseite verzeichnet monatlich über 10 Millionen einzelne Besucher.
            Die Anzahl der Nutzer stieg exponentiell an, sodaß das ursprüngliche Oracle-System dem
            Datenverkehr der Webseite nicht mehr gewachsen war. Zur Verarbeitung des Datenverkehrs und
            einem Terabyte an Daten wurden replizierte MySQL-Server eingesetzt – damit war Citysearch in
            der Lage, eine extrem hochleistungsfähige Lösung zur Verfügung zu stellen und zusätzlich über 1
            Million Dollar an Datenbanklizenzen und Hardwarekosten einzusparen.

 6.3 White Paper
            Leitfaden zur Senkung der Datenbankkosten (TCO), MySQL AB
            http://www.mysql.de/tco
            Ein Artikel in der Computerworld „MySQL Breaks Into the Data Center“ zeigte auf, wie MySQL zur
            populärsten Open-Source-Datenbank der Welt wurde und warum sie von Unternehmen, die
            darauf bedacht sind, ihre Betriebskosten zu senken eingesetzt wird, um ihre IT-Infrastruktur zu
            vereinheitlichen. In diesem White Paper zeigen wir Ihnen, wie Sie dabei vorgehen können. Sie
            erfahren außerdem, wie Organisationen wie Cox Communications, NASA, Sabre Holdings und
            Yahoo! Zuverlässigkeit, Leistungsfähigkeit und Datenbankbetriebskosten durch den Einsatz von
            MySQL verbessert haben.

            Kostengünstiges Datenbank Scale-Out durch den Einsatz von MySQL, MySQL AB
            http://www.mysql.de/why-mysql/white-papers/scale-out.php
            Zahlreiche moderne Unternehmen setzen MySQL in Verbindung mit handelsüblicher Hardware
            ein, um hohe Kosteneinsparungen und nahezu uneingeschränkte Anwendungsskalierbarkeit zu
            erreichen. In diesem White Paper werden wir die Techniken behandeln, welche MySQL-Kunden
            heute einsetzen, um ihre wichtigsten Unternehmensanwendungen zu betreiben und abzusichern.

Copyright © 2007, MySQL AB                                                                   Seite 18 von 49
Sie können auch lesen