Migra datos entre SQL Server 2008 y Cloud SQL para SQL Server mediante archivos de copia de seguridad

En este instructivo, migrarás datos de SQL Server 2008 a Cloud SQL para SQL Server 2017 Enterprise. Aquí se muestra cómo exportar los datos de SQL Server 2008, cómo importarlos a Cloud SQL para SQL Server 2017 y cómo validar si se importaron de forma correcta.

Si deseas migrar datos desde SQL Server 2017, consulta Migra datos entre SQL Server 2017 y Cloud SQL para SQL Server mediante archivos de copia de seguridad.

Este instructivo te será de utilidad si eres administrador de sistemas, desarrollador, ingeniero, administrador de bases de datos o ingeniero DevOps y deseas migrar datos de SQL Server 2008 a Cloud SQL para SQL Server 2017, o bien si deseas actualizar SQL Server 2008 a SQL Server 2017.

En el instructivo, se supone que tienes una licencia para SQL Server 2008 y que estás familiarizado con los siguientes sistemas:

Objetivos

  • Crear una instancia de Cloud SQL para SQL Server
  • Crear un depósito de Cloud Storage
  • Crear una copia de seguridad de tu base de datos
  • Importar la base de datos a Cloud SQL para SQL Server
  • Validar los datos importados

Costos

En este instructivo, se usan los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud sean aptos para obtener una prueba gratuita.

Cuando finalices este instructivo, podrás borrar los recursos creados para evitar que se te siga facturando. Para obtener más información, consulta cómo hacer una limpieza.

Antes de comenzar

  1. En la página del selector de proyectos de Cloud Console, selecciona o crea un proyecto de Google Cloud.

    IR A LA PÁGINA DEL SELECTOR DE PROYECTOS

  2. Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo confirmar que tienes habilitada la facturación para tu proyecto.

  3. Habilita las API de Cloud Storage y Cloud SQL.

    HABILITAR LAS API

  4. Instala e inicializa el SDK de Cloud en el servidor que ejecuta SQL Server 2008.

  5. En Cloud Console, ve a Cloud Shell.

    IR A Cloud Shell

    En la parte inferior de Cloud Console, se abre una sesión de Cloud Shell en la que se muestra una ventana emergente de línea de comandos. Cloud Shell es un entorno de shell con el SDK de Cloud ya instalado, en el que se incluye la herramienta de línea de comandos de gcloud, y los valores ya están establecidos para tu proyecto actual. La sesión puede tardar unos segundos en inicializarse.

Crea la instancia de Cloud SQL y el depósito de Cloud Storage

  1. En Cloud Shell, crea la instancia de Cloud SQL para SQL Server 2017 Enterprise a la que luego migrarás la base de datos:

    gcloud beta sql instances create target  \
        --database-version=SQLSERVER_2017_ENTERPRISE \
        --cpu=2 \
        --memory=5GB \
        --root-password=sqlserver12@ \
        --zone=us-central1-f
    

    La creación de la instancia puede tomar unos minutos. El nombre de usuario raíz predeterminado es sqlserver y la contraseña predeterminada es sqlserver12@. Para este instructivo, debes crear la instancia en la zona us-central1-f. Para obtener más información sobre las zonas, consulta Ubicaciones de Cloud.

  2. Crea un depósito de Cloud Storage para almacenar el archivo de copia de seguridad antes de importar los datos a Cloud SQL:

    gsutil mb -b off -l US "gs://bucket-name"
    

    Reemplaza bucket-name por un nombre único para el depósito de Cloud Storage.

Crea una copia de seguridad de tu base de datos

En esta sección, te conectarás a tu servidor de Windows que ejecuta SQL Server 2008, crearás una copia de seguridad de la base de datos y la subirás a Cloud Storage.

  1. Conéctate a tu servidor de Windows que ejecuta SQL Server 2008 mediante RDP. Puede ser el servidor principal o uno de réplica.

  2. Inicia la herramienta de línea de comandos de PowerShell.

  3. En la terminal en la que instalaste el SDK de Cloud, crea una carpeta de copia de seguridad:

    mkdir c:\backup
    
  4. Crea una copia de seguridad de la base de datos en la carpeta de copia de seguridad:

    osql -E -Q "BACKUP DATABASE db-name TO DISK='c:\backup\db-name.bak'"
    

    Reemplaza db-name por el nombre de la base de datos que deseas migrar a Cloud SQL.

  5. Copia el archivo de copia de seguridad en el depósito de Cloud Storage:

    $PROJECT_ID = (gcloud sql instances describe target --format='value(project)' )
    gsutil cp -n c:\backup\db-name.bak gs://bucket-name
    

Importa el archivo de copia de seguridad a Cloud SQL

  1. En Cloud Shell, recupera la cuenta de servicio asociada con la instancia de Cloud SQL y guárdala en una variable:

    SVC_EMAIL_ADDRESS=$(gcloud sql instances describe target \
        --format='value(serviceAccountEmailAddress)')
    echo $SVC_EMAIL_ADDRESS
    

    Google Cloud crea una cuenta de servicio cuando creas la instancia de Cloud SQL. Debes usar la cuenta de servicio a fin de otorgar permiso a la instancia de Cloud SQL para acceder a los recursos que necesita.

  2. Agrega la cuenta de servicio a la lista de control de acceso (LCA) del depósito de Cloud Storage con permisos de escritor:

    gsutil acl ch -u ${SVC_EMAIL_ADDRESS}:W gs://bucket-name
    
  3. Agrega la cuenta de servicio al archivo de importación con permisos de lector:

    gsutil acl ch -u $SVC_EMAIL_ADDRESS:R gs://bucket-name/db-name.bak
    
  4. Importa el archivo de copia de seguridad a la base de datos de Cloud SQL:

    gcloud beta sql import bak target \
        gs://bucket-namedb-name.bak \
        --database db-name
    

Valida la importación de datos

En esta sección, verificarás si los datos se importaron correctamente.

  1. En Cloud Shell, instala el kit de herramientas de SQL Server:

    sudo apt-get install -y mssql-tools
    

    Si aceptas los términos de la licencia, ingresa yes cuando se te solicite.

  2. Para acceder de forma segura a la instancia de Cloud SQL, descarga el proxy de Cloud SQL:

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    
  3. Inicia el proxy de Cloud SQL:

    CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)')
    ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
    
  4. Ejecuta una consulta para validar los datos en una o más tablas:

    /opt/mssql-tools/bin/sqlcmd -U sqlserver -S 127.0.0.1 -Q "query-string"
    

    Reemplaza query-string por la consulta de SQL que deseas ejecutar.

    Cuando se te solicite, ingresa la contraseña sqlserver12@.

Realiza una limpieza

La manera más fácil de eliminar la facturación es borrar el proyecto de Cloud que creaste para el instructivo.

Borra el proyecto

  1. En Cloud Console, ve a la página Administrar recursos.

    Ir a la página Administrar recursos

  2. En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar .
  3. En el cuadro de diálogo, escribe el ID del proyecto y haz clic en Cerrar para borrar el proyecto.

Próximos pasos