MySQL migration to Microsoft SQL Server 2008 Express Edition
Πρόσφατα ένας φίλος με ρώτησε, πως θα μπορούσε να μεταφέρει μία βάση που είχε στημένη σε MySQL, σε μία βάση SQL Server 2008 Express Edition.
Στην αναζήτηση μου για να βρω λύση στο πρόβλημα του φίλου, θυμόμουν μία διαδικασία integration που μπορείτε να βρείτε στο technet της Microsoft ΕΔΩ.
Το μοναδικό πρόβλημα στην περίπτωση μας, είναι ότι μιλάμε για SQL 2008. Στην παραπάνω διαδικασία μιλάει για την χρησιμοποίηση του Data Transformation Services (DTS) για να μπορέσει να ολοκληρωθεί το migration, πράγμα που δεν υπάρχει στην περίπτωση του SQL server 2008 (και του SQL 2005 φυσικά). Οπότε ξεκίνησα το ψάξιμο για να δω αν μπορώ να βρω κάτι για να ξεπεράσουμε την όλη διαδικασία και να ολοκληρωθεί το Migration (που σε όλα τα άλλα βήματα, προχώρησε χωρίς πρόβλημα, όπως περιγράφει και η MS).
Τελικά το αντίστοιχο tool λέγεται SQL Server Integration Services (SSIS), αλλά δεν υπάρχει στην Express έκδοση του SQL. Η λύση είναι η εξής:
Από το σύστημα που έχουμε εγκατεστημένη την SQL 2008 Express edition πηγαίνετε στην σελίδα http://dev.mysql.com/downloads/connector/odbc/5.1.html και κατεβάζετε τον σχετικό ODBC driver για την MySQL (έκδοση 5.1 στην περίπτωση μας) και στην συνέχεια χρησιμοποιούμε το παραπάνω για να δημιουργήσουμε ένα Linked Server στον αρχικό MySQL Server που θέλουμε να κάνουμε Migrate. Στην συνέχεια τρέχουμε ένα query το οποίο θα κάνει copy την βάση, πίνακα με πίνακα και το οποίο είναι το εξής:
(φυσικά αντίστοιχα γράφετε τον όνομα του server σας, της σχετικής βάσης και τα κλασικά username & password)
EXEC master.dbo.sp_addlinkedserver @server = N'MYSQL', @srvproduct=N'MySQL', @provider=N'MSDASQL', @provstr=N'DRIVER={MySQL ODBC 5.1 Driver}; SERVER=127.0.0.1; DATABASE=Db_NAME; USER=myusername; PASSWORD=mypass; OPTION=3'
και για να γίνει το copy για ένα πίνακα
select * into MSSQL_DB_Name.dbo.TableName
from openquery(MySQL, 'select * from Db_Name.TableName')
και έτσι ολοκληρώνετε το migration, προχωρώντας και στους υπόλοιπους πίνακες. Φυσικά το παραπάνω ισχύει και στην περίπτωση SQL 2005 Και λογικά δεν θα έχετε πρόβλημα να το τρέξετε και σε άλλη έκδοση πέραν της Express, αλλά αυτό δεν το έχω δοκιμάσει.
Νομίζω ότι το παραπάνω είναι πολύ χρήσιμο να το γνωρίζετε ότι γίνεται. Έτσι μπορεί να γίνει Migration μίας βάσης από MySQL είτε αυτή είναι σε κάποιο Open Source σύστημα είτε σε κάποιο άλλο.
DOWNLOADS
2 Comments
Recommended Comments