Se vuoi eseguire la migrazione dei dati da SQL Server 2017, consulta Migrazione dei dati tra SQL Server 2017 e Cloud SQL per SQL Server utilizzando file di backup.
Questo tutorial è utile se sei un amministratore di sistema, uno sviluppatore, un ingegnere, un amministratore di database o un ingegnere DevOps che vuole eseguire la migrazione dei dati da SQL Server 2008 a Cloud SQL per SQL Server 2017 o che vuole eseguire l'upgrade da SQL Server 2008 a SQL Server 2017.
Il tutorial presuppone che tu disponga di una licenza per SQL Server 2008 e che tu conosca le seguenti caratteristiche:
- Microsoft SQL Server 2008
- Microsoft SQL Server 2017
- Microsoft PowerShell
- Cloud Storage
- Cloud SQL
Obiettivi
- Creare un'istanza di Cloud SQL per SQL Server.
- Creare un bucket Cloud Storage.
- Esegui il backup del database.
- Importa il database in Cloud SQL per SQL Server.
- Convalida i dati importati.
Costi
In questo documento, utilizzi i seguenti componenti fatturabili di Google Cloud:
Per generare una stima dei costi in base all'utilizzo previsto, utilizza il Calcolatore prezzi.
Una volta completate le attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la pagina Pulizia.
Prima di iniziare
Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.
Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come verificare che la fatturazione sia abilitata per il tuo progetto.
Abilitare le API Cloud Storage e Cloud SQL.
Installa e inizializza Google Cloud CLI sul server che esegue SQL Server 2008.
Nella console Google Cloud, vai a Cloud Shell.
Nella parte inferiore della console Google Cloud, si apre una sessione Cloud Shell che mostra un prompt della riga di comando. Cloud Shell è un ambiente shell con Google Cloud CLI già installato e con valori già impostati per il progetto attuale. L'inizializzazione della sessione può richiedere alcuni secondi.
Creazione dell'istanza Cloud SQL e del bucket Cloud Storage
In Cloud Shell, crea l'istanza Cloud SQL per SQL Server 2017 Enterprise in cui in seguito eseguirai la migrazione del database:
gcloud beta sql instances create target \ --database-version=SQLSERVER_2017_ENTERPRISE \ --cpu=2 \ --memory=5GB \ --root-password=sqlserver12@ \ --zone=us-central1-f
La creazione dell'istanza può richiedere alcuni minuti. Il nome utente root predefinito è
sqlserver
e la password predefinita èsqlserver12@
. Per questo tutorial, creerai l'istanza nella zonaus-central1-f
. Per ulteriori informazioni sulle zone, consulta Località cloud.Crea un bucket Cloud Storage per archiviare il file di backup prima che i dati vengano importati in Cloud SQL:
gsutil mb -b off -l US "gs://bucket-name"
Sostituisci
bucket-name
con un nome univoco per il bucket Cloud Storage.
Backup del database in corso...
In questa sezione, ti connetterai al tuo server Windows che esegue SQL Server 2008, creerai un backup del database e caricherai il database di backup in Cloud Storage.
Connettiti al server Windows che esegue SQL Server 2008 tramite RDP. Può essere il server principale o un server di replica.
Avvia lo strumento a riga di comando di PowerShell.
Nel terminale in cui hai installato gcloud CLI, crea una cartella di backup:
mkdir c:\backup
Crea un backup del database nella cartella di backup:
osql -E -Q "BACKUP DATABASE db-name TO DISK='c:\backup\db-name.bak'"
Sostituisci
db-name
con il nome del database di cui vuoi eseguire la migrazione a Cloud SQL.Copia il file di backup nel bucket Cloud Storage:
$PROJECT_ID = (gcloud sql instances describe target --format='value(project)' ) gsutil cp -n c:\backup\db-name.bak gs://bucket-name
Importazione del file di backup in Cloud SQL
In Cloud Shell, recupera l'account di servizio associato all'istanza Cloud SQL e salvalo in una variabile:
SVC_EMAIL_ADDRESS=$(gcloud sql instances describe target \ --format='value(serviceAccountEmailAddress)') echo $SVC_EMAIL_ADDRESS
Google Cloud crea un account di servizio quando hai creato l'istanza Cloud SQL. Puoi utilizzare l'account di servizio per concedere all'istanza Cloud SQL l'autorizzazione ad accedere alle risorse necessarie.
Aggiungi l'account di servizio all'elenco di controllo dell'accesso (ACL) del bucket Cloud Storage con autorizzazioni di autore:
gsutil acl ch -u ${SVC_EMAIL_ADDRESS}:W gs://bucket-name
Aggiungi l'account di servizio al file di importazione con le autorizzazioni di lettura:
gsutil acl ch -u $SVC_EMAIL_ADDRESS:R gs://bucket-name/db-name.bak
Importa il file di backup nel database Cloud SQL:
gcloud beta sql import bak target \ gs://bucket-namedb-name.bak \ --database db-name
Convalida dell'importazione dei dati
In questa sezione, verificherai che i dati siano stati importati correttamente.
In Cloud Shell, installa il toolkit SQL Server:
sudo apt-get install -y mssql-tools
Se accetti i termini di licenza, inserisci
yes
quando ti viene richiesto.Per accedere in modo sicuro alla tua istanza Cloud SQL, scarica il proxy Cloud SQL:
wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
Avvia il proxy Cloud SQL:
CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)') ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
Esegui una query per convalidare i dati in una o più tabelle:
/opt/mssql-tools/bin/sqlcmd -U sqlserver -S 127.0.0.1 -Q "query-string"
Sostituisci
query-string
con la query SQL che vuoi eseguire.Quando ti viene richiesto, inserisci la password
sqlserver12@
.
Esegui la pulizia
Il modo più semplice per eliminare la fatturazione è eliminare il progetto Google Cloud che hai creato per il tutorial.Elimina il progetto
- Nella console Google Cloud, vai alla pagina Gestisci risorse.
- Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
- Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.
Passaggi successivi
- Scopri di più sulle chiavi di crittografia gestite dal cliente (CMEK) per Cloud SQL per SQL Server.
- Leggi ulteriori informazioni sulla configurazione della connettività con IP privato per Cloud SQL per SQL Server.
- Esplora le architetture di riferimento, i diagrammi e le best practice su Google Cloud. Dai un'occhiata al nostro Cloud Architecture Center.