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:
- Servidor Microsoft SQL 2008
- Servidor Microsoft SQL 2017
- PowerShell de Microsoft
- Almacenamiento en la nube
- SQL en la nube
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.
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
En el Google Cloud consola, en la página de selección de proyectos, seleccione o cree un Google Cloud proyecto.
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 .
Habilite las API de Cloud Storage y Cloud SQL.
Instale e inicialice la CLI de Google Cloud en el servidor que ejecuta SQL Server 2008.
En el Google Cloud consola, vaya 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
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 desqlserver12@
. Para este tutorial, creará la instancia en la zonaus-central1-f
. Para obtener más información sobre las zonas, consulte Ubicaciones de la nube .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.
Conéctese a su servidor Windows que ejecuta SQL Server 2008 mediante RDP. Puede ser el servidor principal o uno de réplica.
Inicie la herramienta de línea de comandos de PowerShell.
En la terminal donde instalaste la CLI de gcloud , crea una carpeta de respaldo:
mkdir c:\backup
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.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
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.
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
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
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.
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.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
Inicie el proxy de Cloud SQL:
CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)') ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
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
- In the Google Cloud console, go to the Manage resources page.
- In the project list, select the project that you want to delete, and then click Delete.
- In the dialog, type the project ID, and then click Shut down to delete the project.
¿Qué sigue?
- Lea acerca de las claves de cifrado administradas por el cliente (CMEK) para Cloud SQL para SQL Server .
- Lea acerca de cómo configurar la conectividad de IP privada para Cloud SQL para SQL Server .
- Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Eche un vistazo a nuestro Centro de arquitectura en la nube .