Database Migration Service usa trabajos de migración para migrar datos de tus bases de datos de origen a la instancia de destino de Cloud SQL. Las tareas de migración te ayudan a organizar los perfiles de conexión de origen y de destino, definir ajustes específicos del proceso de migración, monitorizar el progreso y finalizar toda la operación de forma segura.
Para crear una tarea de migración, debes realizar las siguientes tareas:
Seleccionar perfiles de conexión de origen y destino.
Elegir las bases de datos detectadas en la instancia de origen que quieras migrar.
Realizar una prueba de la tarea de migración para comprobar que Database Migration Service puede conectarse a tu origen y destino de datos.
Iniciar la tarea de migración y monitorizar el progreso.
Promocionar la tarea de migración cuando quieras cambiar tu aplicación a la nueva instancia.
Antes de empezar
- Asegúrate de que cumples los siguientes requisitos:
- Tienes un segmento de Cloud Storage para los archivos de copia de seguridad de SQL Server.
- Los archivos de copia de seguridad completa y de registro de transacciones se suben al segmento de Cloud Storage.
- Tiene un perfil de conexión de origen para el segmento de Cloud Storage.
- Ha creado y configurado su instancia de Cloud SQL para SQL Server de destino, y tiene un perfil de conexión de destino para la instancia.
- En la Google Cloud consola, en la página del selector de proyectos, selecciona o crea un Google Cloud proyecto.
- Habilita las APIs Database Migration Service, Compute Engine, Cloud Storage y Cloud SQL Admin.
Roles obligatorios
Para obtener los permisos que necesitas para crear trabajos de migración en Database Migration Service, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos en tu proyecto:
-
Administrador de migración de bases de datos (
roles/datamigration.admin
) -
Administrador de almacenamiento (
roles/storage.admin
) -
Editor de Cloud SQL (
roles/cloudsql.editor
)
Para obtener más información sobre cómo conceder roles, consulta el artículo sobre cómo gestionar el acceso.
Estos roles predefinidos contienen los permisos necesarios para realizar migraciones homogéneas de SQL Server con Database Migration Service. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para realizar migraciones homogéneas de SQL Server con Database Migration Service, se necesitan los siguientes permisos:
datamigration.*
resourcemanager.projects.get
resourcemanager.projects.list
cloudsql.instances.create
cloudsql.instances.get
cloudsql.instances.list
cloudsql.databases.get
cloudsql.databases.delete
cloudsql.operations.get
compute.machineTypes.list
compute.machineTypes.get
compute.projects.get
storage.buckets.create
storage.buckets.list
storage.objects.list
También puedes obtener estos permisos con roles personalizados u otros roles predefinidos.
Definir la configuración y crear una tarea de migración
Para crear una tarea de migración, sigue estos pasos:
Consola
- En la Google Cloud consola, ve a la página Tareas de migración.
- Haz clic en Crear tarea de migración.
Se abrirá la página del asistente de configuración de la tarea de migración. Este asistente contiene varios paneles que te guían por cada paso de la configuración.
Puedes pausar la creación de una tarea de migración en cualquier momento haciendo clic en GUARDAR Y SALIR. Todos los datos que introduzcas hasta ese momento se guardarán en un borrador de tarea de migración. Puedes terminar la tarea de migración de borrador más adelante. Consulta Actualizar un borrador de tarea de migración.
- En la página Empezar, introduce la siguiente información:
- Nombre de la tarea de migración
Es un nombre legible para tu tarea de migración. Este valor se muestra en la consola Google Cloud .
- ID de la tarea de migración
Es un identificador legible por máquina de tu tarea de migración. Este valor se usa para trabajar con tareas de migración mediante los comandos de Google Cloud CLI o la API de Database Migration Service.
- En la lista Motor de base de datos de origen, selecciona SQL Server o Amazon RDS para SQL Server.
Los campos Motor de base de datos de destino y Tipo de tarea de migración se rellenan automáticamente y no se pueden cambiar.
- Nombre de la tarea de migración
- Haz clic en Guardar y continuar.
- En la página Define tu origen, haz lo siguiente:
- Usa el menú desplegable para seleccionar tu perfil de conexión de origen.
Si aún no tienes un perfil de conexión de origen, puedes hacer clic en Crear perfil de conexión directamente en el menú desplegable. Para obtener más información sobre cómo crear perfiles de conexión, consulta el artículo Crear un perfil de conexión de origen.
- Si quieres usar un archivo de copia de seguridad diferencial en tu migración, marca la casilla Usar copias de seguridad diferenciales en la sección Personalizar configuraciones de origen.
Las copias de seguridad diferenciales son útiles si necesitas replicar una gran cantidad de datos que han aparecido en tu base de datos desde la última copia de seguridad completa y quieres gestionarlos en bloque en lugar de subir varios archivos de registro de transacciones. Para obtener más información sobre los tipos de copias de seguridad admitidos, consulta Tipos de archivos de copia de seguridad admitidos.
Si usas copias de seguridad diferenciales, asegúrate de crear la carpeta
diff
en tu segmento de Cloud Storage. Consulta Almacenar archivos de copia de seguridad en un segmento de Cloud Storage. - Haz clic en Guardar y continuar.
- Usa el menú desplegable para seleccionar tu perfil de conexión de origen.
- En la página Define a destination (Definir un destino), usa el menú desplegable para seleccionar el perfil de conexión de destino.
Si aún no tienes un perfil de conexión de destino, puedes hacer clic en Crear perfil de conexión directamente en el menú desplegable. Para obtener más información sobre cómo crear perfiles de conexión, consulta el artículo Crear un perfil de conexión de destino.
- Haz clic en Guardar y continuar.
- En la página Configure migration databases (Configurar bases de datos de migración), haz lo siguiente:
- En la sección Select databases to migrate (Seleccionar bases de datos que migrar), usa las casillas para seleccionar las bases de datos que quieras incluir en esta tarea de migración. Esta lista se rellena en función de las carpetas que hayas creado en el segmento de Cloud Storage para tus archivos de copia de seguridad.
Puede añadir y quitar bases de datos de la tarea de migración más adelante. Consulta el artículo Añadir o quitar bases de datos de un trabajo de migración.
- (Opcional) Si usas copias de seguridad cifradas, proporciona las claves de cifrado de tus copias de seguridad. Para obtener más información sobre cómo usar copias de seguridad cifradas, consulta el artículo
Usar copias de seguridad cifradas.
Realiza las siguientes acciones:
- Haga clic en Editar detalles junto a la base de datos que haya seleccionado para la migración.
Se abrirá el panel lateral Cifrado.
- Usa los menús desplegables Clave de cifrado para seleccionar tus claves.
- En el campo Password (Contraseña), introduce la contraseña de la clave de cifrado.
- Haz clic en Guardar y salir.
- Haga clic en Editar detalles junto a la base de datos que haya seleccionado para la migración.
- En la sección Select databases to migrate (Seleccionar bases de datos que migrar), usa las casillas para seleccionar las bases de datos que quieras incluir en esta tarea de migración. Esta lista se rellena en función de las carpetas que hayas creado en el segmento de Cloud Storage para tus archivos de copia de seguridad.
- Haz clic en Guardar y continuar.
- En Probar y crear tarea de migración, haz lo siguiente:
- (Opcional) Haz clic en Probar tarea para verificar si Database Migration Service puede identificar correctamente todos los archivos de copia de seguridad y establecer las conexiones de red necesarias.
Si la prueba falla, puedes consultar los mensajes de error para solucionar el problema y volver a ejecutar la prueba. Para obtener más información sobre los posibles errores, consulta Diagnosticar problemas.
- Haz clic en Crear y empezar tarea para iniciar la migración.
Si quieres realizar el trabajo de migración en otro momento, haz clic en Guardar y vuelve más tarde para ejecutar el trabajo. Consulta Iniciar una tarea de migración.
- (Opcional) Haz clic en Probar tarea para verificar si Database Migration Service puede identificar correctamente todos los archivos de copia de seguridad y establecer las conexiones de red necesarias.
gcloud
En este ejemplo se usa la marca opcional --no-async
para que todas las operaciones se realicen de forma síncrona. Esto significa que algunos comandos pueden tardar en completarse. Puedes omitir la marca --no-async
para ejecutar comandos de forma asíncrona.
Si lo haces, debes usar el comando
gcloud database-migration operations describe
para verificar si la operación se ha realizado correctamente.
Antes de usar los datos de los comandos que se indican a continuación, haz los siguientes cambios:
- MIGRATION_JOB_ID con un identificador legible por máquina para tu tarea de migración. Este valor se usa para trabajar con tareas de migración mediante los comandos de Google Cloud CLI o la API de Database Migration Service.
- REGION por el identificador de la región en la que quieras guardar la tarea de migración.
- MIGRATION_JOB_NAME con un nombre legible para tu tarea de migración. Este valor se muestra en Database Migration Service en la consola. Google Cloud
- SOURCE_CONNECTION_PROFILE_ID con un identificador legible por máquina del perfil de conexión de origen.
- DESTINATION_CONNECTION_PROFILE_ID con un identificador legible por máquina del perfil de conexión de destino.
- COMMA_SEPARATED_DATABASE_ID_LIST con una lista de identificadores de bases de datos separados por comas del SQL Server del que quieras migrar los archivos de copia de seguridad. Estos identificadores deben ser los mismos que los nombres de las carpetas de la base de datos de
Cloud Storage.
Por ejemplo:
--sqlserver-databases=my-business-database,my-other-database
- Configuración de la copia de seguridad diferencial: si usas archivos de copia de seguridad diferencial para la migración, añade la marca
--sqlserver-diff-backup
al comando. De forma predeterminada, los trabajos de migración no usan archivos de copia de seguridad diferencial e ignoran la carpetadiff
de tu segmento de Cloud Storage.Para obtener más información sobre los archivos de copia de seguridad admitidos, consulta Tipos de archivos de copia de seguridad admitidos.
- (Opcional) MAPPING_FILE_FOR_PATHS_TO_ENCRYPTION_KEYS
con la ruta de tu disco local a un archivo de configuración que asigne rutas a claves de cifrado en Cloud Storage
con sus identificadores de base de datos correspondientes. Para obtener más información sobre cómo crear este archivo de asignación, consulta Usar copias de seguridad cifradas.
Por ejemplo:
--sqlserver-encrypted-databases=~/encryption-keys-mapping-file.json
Ejecuta el siguiente comando:
Linux, macOS o Cloud Shell
gcloud database-migration migration-jobs \ create MIGRATION_JOB_ID \ --no-async \ --region=REGION \ --display-name=MIGRATION_JOB_NAME \ --source=SOURCE_CONNECTION_PROFILE_ID \ --destination=DESTINATION_CONNECTION_PROFILE_ID \ --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST \ --sqlserver-encrypted-databases=MAPPING_FILE_FOR_PATHS_TO_ENCRYPTION_KEYS \ --type=CONTINUOUS
Windows (PowerShell)
gcloud database-migration migration-jobs ` create MIGRATION_JOB_ID ` --no-async ` --region=REGION ` --display-name=MIGRATION_JOB_NAME ` --source=SOURCE_CONNECTION_PROFILE_ID ` --destination=DESTINATION_CONNECTION_PROFILE_ID ` --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST ` --sqlserver-encrypted-databases=MAPPING_FILE_FOR_PATHS_TO_ENCRYPTION_KEYS ` --type=CONTINUOUS
Windows (cmd.exe)
gcloud database-migration migration-jobs ^ create MIGRATION_JOB_ID ^ --no-async ^ --region=REGION ^ --display-name=MIGRATION_JOB_NAME ^ --source=SOURCE_CONNECTION_PROFILE_ID ^ --destination=DESTINATION_CONNECTION_PROFILE_ID ^ --sqlserver-databases=COMMA_SEPARATED_DATABASE_ID_LIST ^ --sqlserver-encrypted-databases=MAPPING_FILE_FOR_PATHS_TO_ENCRYPTION_KEYS ^ --type=CONTINUOUS
Deberías recibir una respuesta similar a la siguiente:
Waiting for migration job [MIGRATION_JOB_ID] to be created with [OPERATION_ID] Waiting for operation [OPERATION_ID] to complete...done. Created migration job MIGRATION_JOB_ID [OPERATION_ID]
La tarea de migración se ha creado. Puedes continuar con el proceso de migración:
- Opcional: Realiza una prueba de la tarea de migración para comprobar si Database Migration Service puede acceder a todas las entidades de origen y de destino necesarias.
- Inicia la tarea de migración para empezar a transferir tus datos a la instancia de destino.