jueves, 30 de junio de 2016

Como migrar de Access a SQL Server con SQL Server Migration Assistant (SSMA) for Access 6

Hasta Office 2010 (incluido), Access incorporaba un asistente para migrar los datos a SQL Server. Para cuando un proyecto se nos quedaba demasiado grande para Access. Aunque Access seguía siendo perfectamente adecuado como front-end, pero no para funcionar como Sistema Gestor de Bases de Datos. Pero, desde Access 2013, ese asistente fue removido. La realidad, es que desde hace tiempo, de forma paralela, existe SSMA para la misma tarea y sin los fallos del asistente.

SSMA for Access puede descargarse desde la web de Microsoft y es totalmente gratuito, el link actual (pero para cuando leáis esto es muy posible que haya cambiado) es:

https://www.microsoft.com/en-us/download/details.aspx?id=43690

ssmacabecera

Instalando SSMA for Access:

Lo descargamos (son menos de 7 MB) y lo ejecutamos como Administrador (esto es importante). Para ejecutarlo como Administrador, pues click botón derecho del ratón encima y elejir la opcion Ejecutar como Administrador. Y nos saldrá un cuadro de dialogo para confirmar que permitiremos que realice cambios en el equipo la aplicación. Hay que dar que SI.

clip_image001

clip_image002

A continuación arranca el asistente de instalación. En la primera ventana clickamos en Next.

clip_image003

Llegamos a la ventana de del acuerdo de licencia. Hay que marcar que se acepta y Next.

clip_image004

Llegamos a la ventana del tipo de instalación, en donde hay 3 opciones:

  • Typical: con las opciones más comunes
  • Custom: en donde podemos elegir que se instalara, donde, etc.
  • Complete: una instalación de todas las características, pero con valores por defecto

En mi caso optaré por Complete, que suele ser la mejor idea si no estás seguro, ya que instalada todo con los valores por defecto y te aseguras de que no habrá problemas.

clip_image005

Empieza el proceso de instalación propiamente dicho. En la primeva ventana pulsar Install. En la siguiente ventana se ve el proceso (que aun en la versión completa y en una máquina virtual -en donde lo estoy ejecutando- pues lleva unos segundos).

clip_image006

clip_image007

Si no ha saltado ningún error, pues nos saldrá la siguiente ventana en donde pulsaremos Finish y ya está.

clip_image008

Y deberíamos tener el siguiente acceso directo en el escritorio (por algún motivo desconocido, en algunas variantes de Windows no aparece), sino está en el menú Inicio/Todos los programas (la captura es de Windows 7, pero en 10 es similar y en 8/8.1 como cualquier otro de esos Sistemas Operativos).

clip_image009

clip_image010

Migrar una base de datos

En este caso voy a usar un MDB descargable de internet y usada en muchos tutoriales, pero es siempre lo mismo. Eso sí, haced una copia antes de empezar, que aunque es extraño que falle, existe esa posibilidad. Mi ejemplo será contra SQL Server Express 2014, pero funciona con algunas versiones anteriores de SQL Server desde la 2005 y para Azure.

Ejecutamos Microsoft SQL Server Migration Assistant for Access como Administradores (como antes).

clip_image011

clip_image012

Directamente ya salta un asistente en donde hay que clickar en Next:

clip_image014

clip_image016

Paso 1: Crear un nuevo proyecto de conversión.

Podemos elegir en donde se creará, el nombre del proyecto y a que se va a exportar. Una vez cubierto pulsamos Next.

clip_image018

clip_image020

Paso 2: elegimos la base de datos de Access a migrar.

clip_image022

Hay 2 formas de agregar bases de datos a agregar:

  • Add Databases: en donde vamos directamente a buscar el archivo de Access a convertir
  • Find Databases: en donde nos saldrá un cuadro de diálogo para buscar la base de datos (podemos reducir búsqueda por fechas, etc

clip_image024

Pero como usualmente se sabe en donde está, se pulsa en Add Databases y nos sale un cuadro de diálogo para indicar la base a agregar al proyecto. Y después pulsamos Next.

clip_image026

clip_image028

Paso 3: Elegir que objetos migrar... normalmente tablas, pero también se pueden subir consultas (Querys), pero no todos los tiempos de consultas, solo las de selección.

Se puede elegir algunas o todas. En este caso todas las tablas. Y después pulsar Next.

clip_image030

Paso 4: Conectar a SQL Server o Azure.

Debemos elegir servidor (Server name), puerto (suele ser el puerto por defecto), Base de datos, modo de autenticación (Windows Authentication o SQL Server Authentication), si queremos que la conexión esté encriptada o no, etc. Todo depende como tengas configurado tu SQL Server. Si no tienes una base de datos en donde importar la de Access, pues usa Microsoft SQL Server Management Studio para crear una y además así ves como está configurada. Después en Next.

clip_image032

clip_image034

clip_image036

Paso 5: Enlazar las tablas

Aquí solo hay 2 opciones:

  • Si solo queríamos exportar tablas y datos a SQL Server, pues simplemente dar a Next.
  • Si queremos seguir usando Access como Front-End (la finalidad de este tutorial), pues hay que marcar en Link Tablets y dar a Next.

clip_image038

clip_image040

Paso 6: Convertir los objetos

Aquí nos dirá si hay errores, avisos (en este caso 6), mensajes de información adicional, etc. Pero la importante es la ventana "Syncronize with the Database" en donde tendremos que pulsar OK para que empiece la sincronización efectivamente.

clip_image042

clip_image044

clip_image046

Una vez terminado sin errores, pues solo falta pulsar en Close.

clip_image048

Podemos ver en el panel SQL Server Metadata Explorer que las tablas están creadas, etc:

clip_image050

Y ya podríamos cerrar SSMA for Access después de guardar el proyecto.

clip_image051

Si abrimos el MDB o el Accdb, puede verse los cambios. Y probar que todo sigue funcionando perfectamente.

clip_image053

Y aunque ya se vio a través del SSMA, pues se puede ver que todo correcto en SQL Server a través del MS SQL Server Management Studio:

clip_image055

Y ya está todo. Como veis es muy fácil de hacer y tampoco se echa en falta el asistente que integraba Access tradicionalmente.

 

CONSEJO

Si estáis pensando en dar servicio a más de una docena de equipos pero menos de 100 y no hay una estructura de red compleja. Pues mi recomendación es que uséis autenticación de SQL Server y no Windows Authenticación... ya se que se suele decir lo contrario y seguramente tengan más razón que yo. Pero la experiencia me ha dicho que así hay menos problemas.

 

APENDICE: como crear una base de datos nueva en MS SQL Server Management Studio

Abrimos el Management Studio y nos saldrá algo así:

clip_image057

Conectamos con nuestro servidor SQL Server y si todo fue OK, en el panel de la derecha que aparecerá (Explorador de Objetos), encima de donde pone "Bases de datos", hacemos click con el botón derecho y en el menú que nos aparecerá, elegimos "Nueva base de datos..."

clip_image058

En la ventana que se abrirá (Nueva base de datos), le damos un nombre en "Nombre de la base de datos" y después en Aceptar. Y ya está.

clip_image060

NOTA

No solo hay SSMA for Access, también para importar a SQL Server hay varias versiones más de SSMA:

  • Oracle
  • IBM DB2
  • SYBASE
  • MySQL

Menos en la parte de enlazar Access con SQL Server para que Access siga funcionado como front-end, por lo demás, su funcionamiento es similar a la versión para Access.

Fin del artículo

Espero hacer un tutorial en próximas fechas, de como importar un MDF (un archivo de base de datos de SQL Server) a SQL Server, y después hacer el paso contrario: de SQL Server a Access y puede que a Excel, etc.

No hay comentarios:

Publicar un comentario