Migración de datos entre SQL Server 2008 y Cloud SQL para SQL Server usando archivos de respaldo


En este tutorial, migrará datos de SQL Server 2008 a Cloud SQL para SQL Server 2017 Enterprise. El tutorial le muestra cómo exportar los datos de SQL Server 2008, importar los datos a Cloud SQL para SQL Server 2017 y validar que los datos se importaron correctamente.

Si desea migrar datos desde SQL Server 2017, consulte Migración de datos entre SQL Server 2017 y Cloud SQL para SQL Server usando archivos de respaldo .

Este tutorial es útil si es administrador de sistemas, desarrollador, ingeniero, administrador de bases de datos o ingeniero de DevOps y desea migrar datos de SQL Server 2008 a Cloud SQL para SQL Server 2017 o desea actualizar de SQL Server 2008 a SQL Server 2017.

El tutorial supone que tiene una licencia para SQL Server 2008 y que está familiarizado con lo siguiente:

Objetivos

  • Cree una instancia de Cloud SQL para SQL Server.
  • Cree un depósito de Cloud Storage.
  • Haga una copia de seguridad de su base de datos.
  • Importe la base de datos a Cloud SQL para SQL Server.
  • Validar los datos importados.

Costos

En este documento, usarás 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 califiquen para obtener una prueba gratuita.

Cuando finalices las tareas que se describen en este documento, puedes borrar los recursos que creaste para evitar que continúe la facturación. Para obtener más información, consulta Cómo realizar una limpieza.

Antes de comenzar

  1. En el Google Cloud consola, en la página de selección de proyectos, seleccione o cree un Google Cloud proyecto.

    IR A LA PÁGINA DEL SELECTOR DE PROYECTOS

  2. Asegúrese de que la facturación esté habilitada para su Google Cloud proyecto. Aprenda cómo confirmar que la facturación está habilitada para su proyecto .

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

    HABILITAR LAS API

  4. Instale e inicialice la CLI de Google Cloud en el servidor que ejecuta SQL Server 2008.

  5. En el Google Cloud consola, vaya a Cloud Shell.

    IR A Cloud Shell

    En la parte inferior del Google Cloud consola, se abre una sesión de Cloud Shell y muestra una línea de comandos. Cloud Shell es un entorno de shell con la CLI de Google Cloud ya instalada y con valores ya configurados para su proyecto actual. La sesión puede tardar unos segundos en inicializarse.

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

  1. En Cloud Shell, cree la instancia de Cloud SQL para SQL Server 2017 Enterprise a la que luego migrará 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 tardar unos minutos. El nombre de usuario raíz predeterminado es sqlserver con una contraseña predeterminada de sqlserver12@ . Para este tutorial, creará la instancia en la zona us-central1-f . Para obtener más información sobre las zonas, consulte Ubicaciones de la nube .

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

    gcloud storage buckets create "gs://bucket-name" --location=US
    

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

Copia de seguridad de su base de datos

En esta sección, se conectará a su servidor Windows que ejecuta SQL Server 2008, creará una copia de seguridad de su base de datos y cargará la base de datos de respaldo en Cloud Storage.

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

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

  3. En la terminal donde instalaste la CLI de gcloud , crea una carpeta de respaldo:

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

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

    Reemplace db-name con el nombre de la base de datos que desea migrar a Cloud SQL.

  5. Copie el archivo de respaldo al depósito de Cloud Storage:

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

Importar el archivo de respaldo 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 creaste la instancia de Cloud SQL. La cuenta de servicio se utiliza para otorgar permiso a la instancia de Cloud SQL para acceder a los recursos que necesita.

  2. Otorga permiso a la cuenta de servicio para escribir en el depósito de Cloud Storage:

    gcloud storage buckets add-iam-policy-binding gs://bucket-name \
        --member=serviceAccount:${SVC_EMAIL_ADDRESS} \
        --role=roles/storage.legacyBucketWriter
    
  3. Otorga permiso a la cuenta de servicio para leer archivos en el depósito de Cloud Storage:

    gcloud storage buckets add-iam-policy-binding gs://bucket-name \
        --member=serviceAccount:${SVC_EMAIL_ADDRESS} \
        --role=roles/storage.legacyObjectReader
    
  4. Importe el archivo de respaldo a la base de datos de Cloud SQL:

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

Validando la importación de datos

En esta sección, verifica que los datos se hayan importado correctamente.

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

    sudo apt-get install -y mssql-tools
    

    Si acepta los términos de la licencia, ingrese yes cuando se le solicite.

  2. Para acceder de forma segura a su instancia de Cloud SQL, descargue el proxy de Cloud SQL :

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

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

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

    Reemplace query-string con la consulta SQL que desea ejecutar.

    Cuando se le solicite, ingrese la contraseña sqlserver12@ .

Limpiar

La forma más sencilla de eliminar la facturación es eliminar el Google Cloud proyecto que creó para el tutorial.

Eliminar el proyecto

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

¿Qué sigue?