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:
- Microsoft SQL Server 2008
- Microsoft SQL Server 2017
- Microsoft PowerShell
- Cloud Storage
- Cloud SQL
Objetivos
- Crear una instancia de Cloud SQL para SQL Server
- Crear un bucket 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 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 la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo confirmar que tienes habilitada la facturación para tu proyecto.
Habilita las API de Cloud Storage y Cloud SQL.
Instala e inicializa Google Cloud CLI en el servidor que ejecuta SQL Server 2008.
En la consola de Google Cloud, ve a Cloud Shell.
En la parte inferior de la consola de Google Cloud, 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 Google Cloud CLI ya instalada y con valores ya establecidos para el proyecto actual. La sesión puede tardar unos segundos en inicializarse.
Crea la instancia de Cloud SQL y el bucket de Cloud Storage
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 essqlserver12@
. Para este instructivo, debes crear la instancia en la zonaus-central1-f
. Para obtener más información sobre las zonas, consulta Ubicaciones de Cloud.Crea un bucket de Cloud Storage para almacenar el archivo de copia de seguridad antes de importar los datos a Cloud SQL:
gcloud storage buckets create "gs://bucket-name" --location=US
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.
Conéctate a tu servidor de Windows que ejecuta SQL Server 2008 mediante RDP. Puede ser el servidor principal o uno de réplica.
Inicia la herramienta de línea de comandos de PowerShell.
En la terminal en la que instalaste la CLI de gcloud, crea una carpeta de copia de seguridad:
mkdir c:\backup
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.Copia el archivo de copia de seguridad en el bucket 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
Importa el archivo de copia de seguridad 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 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.
Otorga permiso a la cuenta de servicio para escribir en el bucket 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 bucket de Cloud Storage:
gcloud storage buckets add-iam-policy-binding gs://bucket-name \ --member=serviceAccount:${SVC_EMAIL_ADDRESS} \ --role=roles/storage.legacyObjectReader
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.
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.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
Inicia el proxy de Cloud SQL:
CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)') ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
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@
.
Limpia
La manera más fácil de eliminar la facturación es borrar el proyecto de Google Cloud que creaste para el instructivo.Borra 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?
- Lee sobre las claves de encriptación administradas por el cliente (CMEK) de Cloud SQL para SQL Server.
- Lee sobre cómo configurar la conectividad de IP privada en Cloud SQL para SQL Server.
- Explora arquitecturas de referencia, diagramas y prácticas recomendadas sobre Google Cloud. Consulta nuestro Cloud Architecture Center.