web-dev-qa-db-fra.com

Réplique une base de données Remote MySQL à MS SQL Server 2008

Je souhaite reproduire le contenu d'une base de données MySQL à une base de données MS SQL Server 2008.

Est-ce possible? Quelqu'un peut-il définir les étapes nécessaires pour y parvenir?

Merci.

10
Jimmy Collins

La même question a été abordée sur Stackoverflow ici: Réplication de MySQL à MSSQL .

Il semble qu'il y ait des solutions de contournement, mais pas une solution très facile.

Je crois que vous devriez certainement essayer de construire un paquet SSIS pour importer les données nécessaires à partir de MySQL DB sur MSSQL DB. SSIS permet d'importer des données provenant de diverses sources. Ensuite, vous devriez pouvoir planifier le package à l'aide du planificateur de tâches Windows ou de SQL.

4
Marian

Si, par réplication, vous entendez une expédition de journal ou quelque chose comme ça, je crois que vous n'êtes pas de chance. Cependant, vous pouvez certainement configurer une base de données MySQL en tant que serveur lié et rouler votre propre schéma de réplication. Le plus simple est juste de faire des instantanés périodiques de toutes les tables à l'aide de déclarations de tronquage et d'insertion. Ajoutez la complexité lorsque vos besoins dictent.

3
Larry Smithmier

Vous pouvez utiliser Goldengate pour MySQL et MS SQL pour le faire. Vous alliez simplement installer le produit Goldengate de chaque côté, puis procéder à une réplication homogène.

Alternativement, pour une réplication "instantanée", vous pouvez utiliser un script A Python (ou similaire) pour vous connecter simplement aux deux sources de données (à l'aide de NIXODBC et Freetds Pour se connecter à MS SQL), boucle à travers les tables qui font SELECT d'un côté, pour chaque ligne INSERT de l'autre. Comme MSSQL a des transactions et est votre cible, vous pouvez Démarrez une transaction, DELETE tout de toutes les tables, faites la copie, puis COMMIT _ et il apparaîtra instantanément dans la mesure où les utilisateurs connectés sur la cible ne seront pas incohérents (à moins que ces existe sur la source bien sûr).

3
Gaius