Question

Le titre est explicite. Existe-t-il un moyen de faire directement ce type d’importation?

Était-ce utile?

La solution

Les fichiers .BAK de SQL Server sont au format Microsoft Tape Format (MTF): http: / /www.fpns.net/willy/msbackup.htm

Le fichier bak contiendra probablement les fichiers LDF et MDF utilisés par SQL Server pour stocker la base de données.

Vous devrez utiliser SQL Server pour les extraire. SQL Server Express est gratuit et fera le travail.

Installez donc l'édition SQL Server Express et ouvrez SQL Server Powershell. Là, exécutez sqlcmd -S <COMPUTERNAME>\SQLExpress (en étant connecté en tant qu'administrateur)

puis lancez la commande suivante.

restore filelistonly from disk='c:\temp\mydbName-2009-09-29-v10.bak';
GO

Ceci listera le contenu de la sauvegarde - ce dont vous avez besoin, ce sont les premiers champs qui vous indiquent les noms logiques - l'un sera la base de données réelle et l'autre le fichier journal.

RESTORE DATABASE mydbName FROM disk='c:\temp\mydbName-2009-09-29-v10.bak'
WITH 
   MOVE 'mydbName' TO 'c:\temp\mydbName_data.mdf', 
   MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf';
GO

À ce stade, vous avez extrait la base de données. Ensuite, installez displaylang. = fr "rel =" noreferrer "> Microsoft " administrateur SQL Web Data " ;. avec cet outil d'exportation et vous aurez un script SQL contenant la base de données.

Autres conseils

Je n'ai pas réussi à trouver un moyen de le faire directement.

A la place, j'ai importé le fichier bak dans SQL Server 2008 Express, puis utilisé Boîte à outils de migration MySQL .

A travaillé comme un charme!

MySql propose une application pour importer la base de données à partir de Microsoft SQL. Étapes:

  1. Ouvrez MySql Workbench
  2. Cliquez sur " Migration de base de données " (s'il n'apparaît pas, vous devez l'installer depuis la mise à jour de MySql)
  3. Suivez la liste des tâches de migration à l'aide de l'assistant simple.
  1. Ouvrez SQL Server Management Studio sur votre ordinateur local.
  2. Cliquez avec le bouton droit sur le dossier Bases de données. Dans le menu contextuel, sélectionnez Nouvelle base de données.
  3. Entrez un nom de base de données, puis cliquez sur OK.
  4. Cliquez avec le bouton droit sur la nouvelle icône de base de données. Dans le menu contextuel, sélectionnez Tasks - & Gt; Restaurer - & Gt; Base de données.
  5. Sélectionnez l'option Depuis le périphérique, puis cliquez sur le bouton Parcourir.
  6. Cliquez sur Ajouter et naviguez jusqu'au fichier approprié. Cliquez sur OK.
  7. Dans la fenêtre Restaurer la base de données, cochez la case en regard de votre fichier BAK.
  8. Passez à la page Options. Cochez la case Remplacer la base de données existante. Cliquez sur OK.
  9. Vérifiez le contenu de votre base de données, qui est maintenant active sur votre ordinateur local.

Bien que mon expérience MySQL soit limitée, je ne pense pas que vous ayez beaucoup de chance de le faire. Cependant, vous devriez pouvoir migrer sur toutes vos données en restaurant la base de données sur un serveur MSSQL, puis en créant un package SSIS ou DTS pour envoyer vos tables et vos données au serveur MySQL.

espérons que cela aide

J'en doute fortement. Vous voudrez peut-être utiliser DTS / SSIS pour ce faire, comme le dit Levi. Une idée que vous voudrez peut-être faire est de démarrer le processus sans importer les données. Faites juste assez pour rassembler les structures de base de la table. Ensuite, vous souhaiterez modifier la structure de la table résultante, car quelle que soit la structure à créer, celle-ci sera au mieux fragile.

Vous devrez peut-être aussi aller plus loin et créer une zone de stockage intermédiaire qui prend en premier toutes les données sous forme de chaîne (varchar). Ensuite, vous pouvez créer un script qui effectue la validation et la conversion pour le placer dans le & "Vrai &"; base de données, car les deux bases de données ne fonctionnent pas toujours ensemble, en particulier lorsqu’il s’agit de dates.

La méthode que j'ai utilisée incluait une partie de la méthode de Richard Harrison:

  

Donc, installez SQL Server 2008 Express   édition,

Cela nécessite le téléchargement du programme d'installation de Web Platform " wpilauncher_n.exe " Une fois que vous avez installé ce logiciel, cliquez sur la sélection de base de données (vous devez également télécharger Frameworks and Runtimes)

Après l’installation, accédez à l’invite de commande Windows et:

  

utilisez sqlcmd -S \ SQLExpress (tandis que   connecté en tant qu'administrateur)

     

puis lancez la commande suivante.

     

restaurer filelistonly de   disk = 'c: \ temp \ mydbName-2009-09-29-v10.bak';   GO Ceci listera le contenu de la   sauvegarde - ce dont vous avez besoin est la première   champs qui vous indiquent les noms logiques   - l’un sera la base de données proprement dite et l’autre le fichier journal.

     

RESTAURER LA BASE DE DONNEES mydbName FROM   disk = 'c: \ temp \ mydbName-2009-09-29-v10.bak' WITH MOVE 'mydbName' TO   'c: \ temp \ mydbName_data.mdf', MOVE   'mydbName_log' TO   'c: \ temp \ mydbName_data.ldf'; GO

J'ai lancé Web Platform Installer et à partir de l'onglet Nouveautés, j'ai installé SQL Server Management Studio et parcouru la base de données pour m'assurer que les données étaient présentes ...

À ce stade, j'ai essayé l'outil fourni avec MSSQL " Assistant d'importation et d'exportation SQL " mais le résultat du dump csv n'incluait que les noms de colonnes ...

Au lieu de cela, je viens d’exporter les résultats de requêtes telles que " select * from users " à partir de SQL Server Management Studio

Les bases de données SQL Server sont très propriétaires de Microsoft. Les deux options auxquelles je peux penser sont:

  1. Videz la base de données au format CSV, XML ou à un format similaire que vous avez ensuite chargé dans MySQL.

  2. Configurez la connexion ODBC à MySQL, puis utilisez DTS pour transporter les données. Comme l'a suggéré Charles Graham, vous devrez peut-être créer les tables avant de le faire. Mais c’est aussi simple qu’un copier-coller des fenêtres de SQL Enterprise Manager vers la fenêtre MySQL correspondante.

Pour ceux qui tentent la solution de Richard ci-dessus, voici quelques informations supplémentaires susceptibles d'aider à résoudre les erreurs courantes:

1) Lors de l'exécution de restore filelistonly, l'erreur de système d'exploitation 5 peut être rencontrée (accès refusé). Si tel est le cas, ouvrez le Gestionnaire de configuration SQL Server et modifiez le nom de connexion pour SQLEXPRESS en un utilisateur disposant des privilèges d’écriture locaux.

2) @ " Ceci listera le contenu de la sauvegarde - ce dont vous avez besoin, ce sont les premiers champs qui vous disent les noms logiques " - si votre fichier contient plus de deux en-têtes, vous devrez également indiquer comment utiliser ces fichiers dans la commande RESTORE DATABASE. Si vous n'indiquez pas quoi faire avec les fichiers autres que la base de données et le journal, le système va apparemment essayer d'utiliser les attributs répertoriés dans le fichier .bak. La restauration d'un fichier à partir de l'environnement d'un autre utilisateur produira un 'Le chemin contient des attributs non valides. Il doit s'agir d'un répertoire '(car le chemin en question n'existe pas sur votre machine). Le simple fait de fournir une instruction MOVE résout ce problème.

Dans mon cas, il y avait un troisième fichier de type FTData. La commande MOVE que j'ai ajoutée:

MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf',
MOVE 'sysft_...' TO 'c:\temp\other';

Dans mon cas, j’ai dû créer un nouveau répertoire pour le troisième fichier. Au départ, j’ai essayé de l’envoyer dans le même dossier que le fichier .mdf, mais cela a généré une erreur «Impossible d’initialiser correctement» sur le troisième fichier FTData lors de l’exécution de la restauration.

Le fichier .bak de SQL Server est spécifique à ce dialecte de base de données et n'est pas compatible avec MySQL.

Essayez d’utiliser etlalchemy pour migrer votre base de données SQL Server vers MySQL. C'est un outil open source que j'ai créé pour faciliter les migrations entre différents SGBDR.

Une installation rapide et des exemples sont fournis ici sur la page github , ainsi qu'une explication plus détaillée du projet. les origines peuvent être trouvés ici .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top