Besoin de migrer SQL Server vers MySQL


22

J'ai une base de données sur SQL Server 2008 sur un serveur Windows et je souhaite déplacer toutes les données vers une base de données MySQL sur un serveur Ubuntu. J'ai essayé d'utiliser l'Assistant d'importation et d'exportation SQL Server avec le pilote ODBC MySQL, et il accède correctement aux deux bases de données, mais les fichiers xml contenant les spécifications de conversion de type n'existaient pas et les spécifications étaient trop limitées pour que je puisse les créer correctement. Quelqu'un sait-il comment créer les fichiers de conversion de type ou où trouver un meilleur outil pour transférer ces données?


1
Avez-vous vu cette question? Il s'agit de répliquer des données de MySql vers MSSQL. Vous y trouverez peut-être quelques indices.
Marian

@Marian Merci pour le lien. L'utilisation du serveur MySQL comme serveur lié dans SQL Server semble être une solution à mon problème.
murgatroid99

1
De combien de données parlons-nous? 5 Mo? 3 To?
AaronJAnderson

Je pense qu'il s'agissait de Go ou de 10 Go, mais je ne m'en souviens pas vraiment car cette question remonte à un an et demi.
murgatroid99

Réponses:


13

J'ai deux suggestions:

1) Je déteste proposer des produits commerciaux, mais il existe un outil de 49,00 $ pour migrer MSSQL vers MySQL

2) Essayez les forums de migration MSSQL de MySQL pour d'autres suggestions

MISE À JOUR 2011-06-03 18:03 EDT

Il existe un ancien produit qui est passé en fin de vie en janvier 2010, appelé MySQL Migration Toolkit . Si vous pouvez vous en procurer, vous pouvez l'utiliser.

MISE À JOUR 2011-06-03 18:06 EDT

J'ai trouvé les archives !!! Voici le MySQL Migration Toolkit

MISE À JOUR 2011-06-03 18:11 EDT

Voici la présentation de MySQL Migration Toolkit

MISE À JOUR 2011-06-03 19:08 EDT

Un autre produit commercial (29 $)

MISE À JOUR 2011-06-03 19:30 EDT

Voici une liste des outils Freeware qui migrent MSSQL vers MySQL.

MISE À JOUR 2011-06-15 17:47 EDT

Obtenez le WhitePaper (PDF) d'Oracle sur le Guide de migration de Microsoft SQL Server vers MySQL (toujours commercial)

MISE À JOUR 2012-08-21 01:24 EDT

Selon cette page Web MySQL , la section MySQL Workbench: Database Migration Wizardaffirme que MySQL Workbench a la capacité de migrer des objets DB de SQL Server vers MySQL.


1
Je préférerais ne pas utiliser de produits commerciaux si je peux les éviter. J'ai essayé d'utiliser le Migration Toolkit, mais je pense qu'il est incompatible avec la dernière version de MySQL: les instructions d'insertion SQL générées comportaient un nombre énorme d'erreurs de syntaxe et les tables générées n'avaient aucune ligne après l'exécution de l'assistant. Les outils de shareware semblent également être conçus pour fonctionner avec les anciennes versions de MySQL. Merci d'avoir essayé.
murgatroid99

4

Sur la base de la suggestion de Marian, j'ai trouvé cette réponse sur la réplication dans l'autre sens en configurant le serveur MySQL en tant que serveur lié dans MS SQL Server. Avec MySQL configuré en tant que serveur lié, je peux exécuter des requêtes SQL sur les deux bases de données en même temps, ce qui fournit exactement les fonctionnalités dont j'avais besoin pour résoudre ce problème.


3

Avez-vous envisagé d'utiliser SSIS pour cette tâche? Il s'agit de l'outil ETL pour SQL Server et il contient de nombreuses transformations et logiques qui pourraient vous aider à effectuer cette tâche.


L'assistant d'importation / exportation que j'ai mentionné en utilisant crée en fait des packages SSIS. Le problème que j'avais était que SSIS utilise des fichiers XML pour stocker des données sur la façon de convertir entre les types dans différents systèmes de gestion de base de données, et ces fichiers n'existaient pas pour MySQL.
murgatroid99


2

J'ai essayé la boîte à outils de migration pour importer du serveur SQL vers MySQL. Mais j'ai trouvé que SQLyog Import importait des données externes. Je pouvais planifier le processus d'importation et également effectuer les mappages nécessaires pour importer dans une table existante. Téléchargez ici .

entrez la description de l'image ici


SQLyog est un excellent outil, mais la fonction «importer des données externes» est extrêmement lente. Comme dans plusieurs ordres de grandeur plus lent que MySQL Workbench. Je souhaite que les développeurs SQLyog règlent le problème, car l'interface est beaucoup plus intuitive que Workbench. Mais à moins que vous n'importiez que des centaines de lignes, préparez-vous à attendre des heures, voire des jours, pour terminer l'importation.
nextgentech

2

J'ai récemment publié etlalchemy pour accomplir cette tâche. Il s'agit d'une solution open source qui permet la migration entre 2 bases de données SQL avec 4 lignes de Python . Les SGBDR pris en charge incluent MySQL, PostgreSQL, Oracle, SQLite et SQL Server.

Cela prendra en charge la tâche intimidante de mappage des types de colonnes d'un fournisseur SQL à ceux d'un autre. Non seulement il transférera et traduira le schéma , mais il migrera également toutes les données, index et contraintes à travers les bases de données.

À installer:

$ pip install etlalchemy

Sur El Capitan :pip install --ignore-installed etlalchemy

Courir:

from etlalchemy import ETLAlchemySource, ETLAlchemyTarget

mssql_db_source = ETLAlchemySource("mssql+pyodbc://username:password@DSN")

mysql_db_target = ETLAlchemyTarget("mysql://username:password@hostname/db_name", drop_database=True)
mysql_db_target.addSource(mssql_db_source)

Pour obtenir plus d'informations sur les origines du projet, consultez cet article. Si vous obtenez des erreurs lors de l'exécution de l'outil, ouvrez un problème sur le dépôt github et je le corrigerai en moins d'une semaine!


0

L'outil de migration de MySQL Workbench peut vous aider à effectuer cette tâche

1) Pour démarrer le processus de migration, sur l'écran principal de MySQL Workbench, accédez à Database-> Migration Wizard.

2) Nous devons vérifier les conditions préalables pour confirmer si nous pouvons continuer la tâche. Si tout va bien, nous pouvons appuyer sur Démarrer la migration.

3) Dans cette étape, nous devons fournir les informations sur la base de données source, dans ce cas, SQL Server.

Nous allons configurer notre paramètre source:

Système de base de données: Microsoft SQL Server

Méthode de connexion: ODBC (native)

Pilote: SQL Server

Serveur: localhost

Nom d'utilisateur: sa

4) Maintenant, nous pouvons vérifier la connexion en utilisant le bouton Tester la connexion.

5) Ensuite, nous devons ajouter les paramètres cibles:

Méthode de connexion: Standard (TCP / IP)

Nom d'hôte: Your_host_name

Port: 3306

Nom d'utilisateur: migration

6) Et appuyez sur Tester la connexion pour confirmer les informations ajoutées.

7) À l'étape suivante, MySQL Workbench se connectera à notre serveur SQL pour récupérer une liste des catalogues et des schémas.

8) Maintenant, nous allons choisir la base de données Your_database_name dans la liste.

Nous pouvons choisir la façon dont les schémas et l'objet de rétro-ingénierie doivent être mappés. Nous utiliserons Catalog.Schema.Table -> Catalog.Table, donc dans notre MySQL, nous aurons sélectionné la base de données et les tables actuelles que nous avons dans notre base de données SQL Server.

9) Si tout s'est bien passé, nous aurons une liste d'objets à migrer.

10) Dans ce cas, nous avons des objets de table, des objets de vue et des objets de routine. Nous ne sélectionnerons que les objets de table car pour le reste de l'objet, nous devons vérifier manuellement le code équivalent MySQL correspondant.

11) Dans cette étape, les objets de la source sont convertis en objets compatibles MySQL.

12) Si tout s'est bien passé, nous pouvons continuer en sélectionnant la façon dont nous voulons créer le schéma migré dans la cible. Nous utiliserons l'option par défaut «Créer un schéma dans le SGBDR cible».

13) Maintenant, vérifions le processus du schéma de création.

14) Dans l'étape suivante, nous pouvons vérifier le résultat de chaque exécution de script, et nous pouvons vérifier la nouvelle base de données créée sur notre serveur MySQL.

15) À ce stade, nous aurons la structure de la base de données, mais nous n'avons pas encore les données. Maintenant, nous allons sélectionner la façon dont nous voulons copier les données sur le serveur MySQL. Nous utiliserons l'option «Copie en ligne des données de la table pour cibler le SGBDR».

16) Dans la dernière étape, nous pouvons vérifier le rapport de migration et terminer la tâche.

Une autre méthode simple de conversion d'une base de données MS SQL en MySQL consiste à utiliser l'outil de bricolage de Stellar nommé Stellar Converter for Database qui peut directement choisir le fichier de base de données d'une base de données spécifique et fournir un aperçu des tables convertibles et après la conversion stockera directement les données dans la base de données spécifiée installé sur votre système. Dans ce cas, vous devrez fournir un fichier de base de données MS SQL et après la conversion, il sera stocké dans la base de données MySQL installée dans le système. Vous pouvez obtenir la version gratuite de ce logiciel sur le site officiel de Stellar .

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.