Migrazione dei dati tra SQL Server 2008 e Cloud SQL per SQL Server utilizzando file di backup


In questo tutorial verrà eseguita la migrazione dei dati da SQL Server 2008 a Cloud SQL per SQL Server 2017 Enterprise. Il tutorial mostra come esportare i dati da SQL Server 2008, importarli in Cloud SQL per SQL Server 2017 e convalidare l'importazione.

Se vuoi eseguire la migrazione dei dati da SQL Server 2017, consulta Eseguire la migrazione dei dati tra SQL Server 2017 e Cloud SQL per SQL Server utilizzando i file di backup.

Questo tutorial è utile per amministratori di sistema, sviluppatori, ingegneri, database o DevOps Engineer che desidera eseguire la migrazione dei dati da SQL Server 2008 a Cloud SQL per SQL Server 2017 o che vogliono eseguire l'upgrade da SQL Server dal 2008 a SQL Server 2017.

Il tutorial presuppone che tu disponga di una licenza per SQL Server 2008 e che tu abbia familiarità con quanto segue:

Obiettivi

  • Crea un'istanza 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 basata sull'utilizzo previsto, utilizza il Calcolatore prezzi. I nuovi utenti di Google Cloud potrebbero essere idonei per una prova gratuita.

Al termine delle attività descritte in questo documento, puoi evitare la fatturazione continua eliminando le risorse che hai creato. Per ulteriori informazioni, consulta la sezione Pulizia.

Prima di iniziare

  1. Nella console Google Cloud, nella pagina di selezione del progetto, seleziona o crea un progetto Google Cloud.

    VAI ALLA PAGINA SELETTORE PROGETTO

  2. Verifica che la fatturazione sia attivata per il tuo progetto Google Cloud. Scopri come verificare che la fatturazione sia attivata per il tuo progetto.

  3. Attiva le API Cloud Storage e Cloud SQL.

    ABILITA LE API

  4. Installa e inizializza Google Cloud CLI sul server che esegue SQL Server 2008.

  5. Nella console Google Cloud, vai a Cloud Shell.

    VAI A Cloud Shell

    Nella parte inferiore della console Google Cloud si apre una sessione di Cloud Shell e viene visualizzato un prompt della riga di comando. Cloud Shell è una shell con Google Cloud CLI già installato e con sono già impostati per il progetto attuale. Potrebbero essere necessari alcuni secondi la sessione da inizializzare.

Creazione dell'istanza Cloud SQL e del bucket Cloud Storage

  1. In Cloud Shell, crea l'istanza Cloud SQL per SQL Server 2017 Enterprise a cui eseguirai in un secondo momento 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 con una password predefinita sqlserver12@. Per questo tutorial, crea l'istanza nella zona us-central1-f. Per saperne di più sulle zone, consulta Località cloud.

  2. Crea un bucket Cloud Storage per archiviare il file di backup prima che i dati vengano importati in Cloud SQL:

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

    Sostituisci bucket-name con un nome univoco per nel bucket Cloud Storage.

Eseguire il backup del database

In questa sezione, ti connetti al server Windows che esegue SQL Server 2008, crei un backup del database e carichi il database di backup su Cloud Storage.

  1. Connettiti al server Windows che esegue SQL Server 2008 utilizzando RDP. it può essere il server principale o un server di replica.

  2. Avviare lo strumento a riga di comando di PowerShell.

  3. Nel terminale in cui ha installato gcloud CLI, crea una cartella di backup:

    mkdir c:\backup
    
  4. 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.

  5. Copia il file di backup nel bucket 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
    

Importazione del file di backup in Cloud SQL

  1. In Cloud Shell, recupera l'account di servizio associato a l'istanza Cloud SQL e salvarla 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. Utilizza l'account di servizio per concedere all'istanza Cloud SQL l'autorizzazione per accedere alle risorse di cui ha bisogno.

  2. Concedi all'account di servizio l'autorizzazione di scrittura nel bucket Cloud Storage:

    gcloud storage buckets add-iam-policy-binding gs://bucket-name \
        --member=serviceAccount:${SVC_EMAIL_ADDRESS} \
        --role=roles/storage.legacyBucketWriter
    
  3. Concedi all'account di servizio l'autorizzazione per leggere i file nella Bucket Cloud Storage:

    gcloud storage buckets add-iam-policy-binding gs://bucket-name \
        --member=serviceAccount:${SVC_EMAIL_ADDRESS} \
        --role=roles/storage.legacyObjectReader
    
  4. 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 corso...

In questa sezione puoi verificare che i dati siano stati importati.

  1. In Cloud Shell, installa Toolkit di SQL Server:

    sudo apt-get install -y mssql-tools
    

    Se accetti i termini di licenza, inserisci yes quando ti viene richiesto.

  2. Per accedere in sicurezza all'istanza Cloud SQL, scarica il proxy Cloud SQL:

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    
  3. Avvia il proxy Cloud SQL:

    CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)')
    ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
    
  4. 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 richiesto, inserisci la password sqlserver12@.

Esegui la pulizia

Il modo più semplice per eliminare la fatturazione è quello di eliminare il progetto Google Cloud creato per il tutorial.

Elimina il progetto

  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.

Passaggi successivi