Pregunta

El título se explica por sí mismo. ¿Hay alguna forma de importar directamente este tipo de importación?

¿Fue útil?

Solución

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

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

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

Entonces, instale la edición SQL Server Express y abra SQL Server Powershell. Allí ejecuta 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 enumerará el contenido de la copia de seguridad (lo que necesita son los primeros campos que le indican los nombres lógicos), uno será la base de datos real y el otro 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 " Administrador de datos web SQL " ;. de Microsoft junto con esta herramienta de exportación y tendrá un script SQL que contiene la base de datos.

Otros consejos

No pude encontrar una manera de hacerlo directamente.

En su lugar, importé el archivo bak a SQL Server 2008 Express y luego utilicé MySQL Migration Toolkit .

¡Funcionó como un encanto!

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

  1. Abrir 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 utilizando el asistente simple.
  1. Abra SQL Server Management Studio en su máquina local.
  2. Haga clic derecho en la carpeta Bases de datos. En el menú emergente, seleccione 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 - & Gt; Restaurar - & Gt; 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. Cambie a la página de Opciones. Seleccione la casilla de verificación 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.

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 la base de datos a un servidor MSSQL, 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 podría pensar que es posible comenzar el proceso sin importar realmente los datos. Simplemente haga lo suficiente para juntar las estructuras básicas de la tabla. Entonces querrá cambiar la estructura de la tabla resultante, porque cualquier estructura que se cree probablemente será inestable en el mejor de los casos.

También es posible que tenga que llevar esto un paso más allá y crear un área de ensayo que tome todos los datos primero en forma de cadena (varchar). Luego puede crear una secuencia de comandos que valida y convierte para colocarla en & Quot; real & Quot; base de datos, porque las dos bases de datos no siempre funcionan bien juntas, especialmente cuando se trata de fechas.

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

  

Entonces, instale SQL Server 2008 Express   edición,

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

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

  

use sqlcmd -S \ SQLExpress (mientras que   conectado como administrador)

     

luego emita el siguiente comando.

     

restaurar la lista de archivos solo desde   disk = 'c: \ temp \ mydbName-2009-09-29-v10.bak';   IR Esto listará el contenido de   copia de seguridad: lo que necesita es el primero   campos que te dicen los nombres lógicos   - una será la base de datos real y la otra el archivo de registro.

     

RESTAURAR BASE DE DATOS mydbName DESDE   disk = 'c: \ temp \ mydbName-2009-09-29-v10.bak' CON MOVER 'mydbName' A   'c: \ temp \ mydbName_data.mdf', MOVER   'mydbName_log' TO   'c: \ temp \ mydbName_data.ldf'; IR

Inicié el Instalador de plataforma web y desde la pestaña de novedades instalé SQL Server Management Studio y busqué en la base de datos para asegurarme de que los datos estaban allí ...

En ese momento probé la herramienta incluida con MSSQL & "; Asistente de importación y exportación de SQL &"; pero el resultado del volcado csv solo incluyó los nombres de columna ...

Entonces, en lugar de eso, simplemente exporté resultados de consultas como " select * from users " del SQL Server Management Studio

Las bases de datos de SQL Server son propiedad de Microsoft. Dos opciones que se me ocurren son:

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

  2. Configurar la conexión ODBC a MySQL y luego usar DTS 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 del Administrador corporativo de SQL a la ventana MySQL correspondiente.

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

1) Al ejecutar la lista de archivos de restauración solo puede aparecer 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 para SQLEXPRESS a un usuario que tenga privilegios de escritura local.

2) @ " Esto enumerará el contenido de la copia de seguridad; lo que necesita son los primeros campos que le indican los nombres lógicos " - si su archivo contiene más de dos encabezados, también deberá tener en cuenta qué hacer con esos archivos en el comando RESTORE DATABASE. Si no indica qué hacer con los archivos más allá de la base de datos y el registro, el sistema aparentemente intentará usar los atributos enumerados en el archivo .bak. Restaurar un archivo del entorno de otra persona producirá un 'La ruta tiene atributos no válidos. Tiene que ser un directorio '(ya que la ruta en cuestión no existe en su máquina). Simplemente proporcionar una instrucción MOVE resuelve este problema.

En mi caso, había un tercer archivo de 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, realmente tuve que hacer un nuevo directorio para el tercer archivo. Inicialmente intenté 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.

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

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

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top