LEITFADEN ZUR MIGRATION VON MICROSOFT SQL SERVER NACH MYSQL - EIN TECHNISCHES MYSQL WHITE PAPER
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Leitfaden zur Migration von
Microsoft SQL Server nach MySQL
Ein technisches MySQL® White Paper
September 2007
Copyright © 2007, MySQL ABInhaltsverzeichnis
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 498.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 491 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 49Gesamtbetriebskosten ü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„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 493.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 49Leistungsmerkmal 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 493.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 494 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 49Der 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 494.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 49komplexer 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 49Gute 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 494.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 49Server 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 49entwickelt. 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 49Sie können auch lesen