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 AB
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
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
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
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
„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
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
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
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
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