script restaurar importar exportar datos convertir bak archivo mysql sql-server migration backup

restaurar - ¿Cómo importar un archivo.bak de SQL Server en MySQL?



sql server bak to sql (10)

El título es auto explicativo. ¿Hay alguna manera de hacer directamente ese tipo de importación?


Aunque mi experiencia en MySQL es limitada, no creo que tengas mucha suerte haciendo eso. Sin embargo, debería poder migrar sobre todos sus datos restaurando el db a un servidor MSSQL, y luego creando un paquete SSIS o DTS para enviar sus tablas y datos al servidor MySQL.

espero que esto ayude


Lo dudo mucho. Es posible que desee utilizar DTS / SSIS para hacer esto como dice Levi. Uno piensa que es posible que desee iniciar el proceso sin importar los datos. Simplemente haga lo suficiente para unir las estructuras básicas de la mesa. Luego, querrá cambiar la estructura de la tabla resultante, ya que la estructura que probablemente se creará será, en el mejor de los casos, inestable.

También es posible que deba llevar esto un paso más allá y crear un área de preparación que tome todos los datos primero en forma de cadena (varchar). Luego puede crear un script que valide y convierta para ingresarlo a la base de datos "real", porque las dos bases de datos no siempre funcionan bien juntas, especialmente cuando se trata de fechas.


No logré encontrar una manera de hacerlo directamente.

En cambio, importé el archivo bak en SQL Server 2008 Express y luego utilicé MySQL Migration Toolkit .

¡Trabajado como un encanto!


El método que utilicé incluía parte del método de Richard Harrison:

Por lo tanto, instale la edición SQL Server 2008 Express,

Esto requiere la descarga del instalador de la plataforma web "wpilauncher_n.exe". Una vez que tenga esto instalado, haga clic en la selección de la base de datos (también se requiere descargar Frameworks y Runtimes).

Después de la instalación, vaya al símbolo del sistema de Windows y:

use sqlcmd -S / SQLExpress (mientras está conectado como administrador)

luego emita el siguiente comando.

restaurar filelistonly desde disk = ''c: / temp / mydbName-2009-09-29-v10.bak''; GO Esto mostrará el contenido de la copia de seguridad; lo que necesita son los primeros campos que le digan los nombres lógicos: una será la base de datos real y la otra el archivo de registro.

RESTAURAR LA BASE DE DATOS mydbName FROM disk = ''c: / temp / mydbName-2009-09-29-v10.bak'' WITH MOVE ''mydbName'' TO ''c: / temp / mydbName_data.mdf'', MOVER ''mydbName_log'' TO ''c: / temp / mydbName_data.ldf ''; IR

Inicié el instalador de la plataforma web y desde la nueva pestaña instalé SQL Server Management Studio y busqué el db para asegurarme de que los datos estaban allí ...

En ese momento probé la herramienta incluida con MSSQL "SQL Import and Export Wizard" pero el resultado del volcado csv solo incluía los nombres de las columnas ...

Entonces, en su lugar, solo exporté resultados de consultas como "select * from users" desde SQL Server Management Studio.


Las bases de datos de SQL Server son propiedad de Microsoft. Dos opciones que puedo pensar son:

  1. Vuelque la base de datos en formato CSV, XML o similar que luego cargaría en MySQL.

  2. Configure la conexión ODBC a MySQL y luego use DTS para transportar los datos. Como ha sugerido Charles Graham, es posible que necesite construir las tablas antes de hacer esto. Pero eso es tan fácil como cortar y pegar desde las ventanas de SQL Enterprise Manager a la ventana correspondiente de MySQL.


Para aquellos que intentan la solución de Richard anterior, aquí hay información adicional que puede ayudar a navegar por errores comunes:

1) Cuando ejecuta restore filelistonly, puede obtener el error 5 del sistema operativo (Acceso denegado). Si ese es el caso, abra el Administrador de configuración de SQL Server y cambie el inicio de sesión de SQLEXPRESS a un usuario que tenga privilegios de escritura locales.

2) @ "Esto mostrará el contenido de la copia de seguridad; lo que necesita son los primeros campos que le digan los nombres lógicos"; si su archivo incluye más de dos encabezados, también deberá explicar qué hacer con esos archivos en el comando RESTORE DATABASE. Si no indica qué hacer con los archivos que están más allá de la base de datos y el registro, el sistema aparentemente intentará usar los atributos listados en el archivo .bak. La restauración de un archivo del entorno de otra persona producirá un ''La ruta tiene atributos no válidos. Debe ser un directorio ''(ya que la ruta en cuestión no existe en su máquina). El simple hecho de proporcionar una declaración MOVE resuelve este problema.

En mi caso, había un tercer archivo tipo FTData. El comando MOVE que agregué:

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

en mi caso, tuve que hacer un nuevo directorio para el tercer archivo. Inicialmente traté de enviarlo a la misma carpeta que el archivo .mdf, pero eso produjo un error de "error al inicializar correctamente" en el tercer archivo FTData cuando ejecuté la restauración.


  1. Abra SQL Server Management Studio en su máquina local.
  2. Haga clic derecho en la carpeta de Bases de datos. En el menú emergente, selecciona Nueva base de datos.
  3. Ingrese un nombre de base de datos y luego haga clic en Aceptar.
  4. Haga clic derecho en el nuevo icono de la base de datos. En el menú emergente, seleccione Tareas -> Restaurar -> Base de datos.
  5. Seleccione la opción Desde dispositivo y luego haga clic en el botón Examinar.
  6. Haga clic en Agregar y navegue hasta el archivo apropiado. Haga clic en Aceptar.
  7. En la ventana Restaurar base de datos, seleccione la casilla de verificación junto a su archivo BAK.
  8. Cambia a la página de Opciones. Seleccione la casilla Sobrescribir la base de datos existente. Haga clic en Aceptar.
  9. Verifique el contenido de su base de datos, que ahora está activa en su máquina local.

MySql tiene una aplicación para importar db desde microsoft sql. Pasos:

  1. Abra MySql Workbench
  2. Haga clic en "Migración de la base de datos" (si no aparece, debe instalarlo desde la actualización de MySql)
  3. Siga la Lista de tareas de migración usando el simple asistente.

Los archivos .BAK del servidor SQL están en Microsoft Tape Format (MTF) ref: http://www.fpns.net/willy/msbackup.htm

El archivo bak probablemente contenga los archivos LDF y MDF que el servidor SQL usa para almacenar la base de datos.

Tendrá que usar el servidor SQL para extraerlos. SQL Server Express es gratuito y hará el trabajo.

Por lo tanto, instale la edición SQL Server Express y abra el Servidor SQL Powershell. sqlcmd -S <COMPUTERNAME>/SQLExpress (mientras está conectado como administrador)

luego emita el siguiente comando.

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

Esto mostrará el contenido de la copia de seguridad: lo que necesita son los primeros campos que le digan los nombres lógicos: una será la base de datos real y la otra el archivo de registro.

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

En este punto, ha extraído la base de datos, luego instale el "Administrador de datos web Sql" de Microsoft. junto con esta herramienta de exportación y tendrá una secuencia de comandos SQL que contiene la base de datos.


El archivo .bak de SQL Server es específico de ese dialecto de base de datos y no es compatible con MySQL.

Intente usar etlalchemy para migrar su base de datos SQL Server a MySQL. Es una herramienta de código abierto que he creado para facilitar las migraciones entre diferentes RDBMS.

La instalación rápida y los ejemplos se proporcionan aquí en la página de github , y aquí se puede encontrar una explicación más detallada de los orígenes del proyecto.