Migrer des données entre SQL Server 2008 et Cloud SQL pour SQL Server à l'aide de fichiers de sauvegarde


Dans ce tutoriel, vous allez migrer des données de SQL Server 2008 vers Cloud SQL pour SQL Server 2017 Enterprise. Ce tutoriel explique comment exporter les données à partir de SQL Server 2008, les importer dans Cloud SQL pour SQL Server 2017 et vérifier qu'elles ont bien été importées.

Si vous souhaitez migrer des données depuis SQL Server 2017, consultez la page Migrer des données entre SQL Server 2017 et Cloud SQL pour SQL Server à l'aide de fichiers de sauvegarde.

Ce tutoriel s'adresse aux administrateurs système, développeurs, ingénieurs, administrateurs de bases de données ou ingénieurs DevOps souhaitant migrer des données de SQL Server 2008 vers Cloud SQL pour SQL Server 2017 ou effectuer une mise à niveau de SQL Server 2008 vers SQL Server 2017.

Dans ce tutoriel, nous partons du principe que vous disposez d'une licence pour SQL Server 2008 et que vous connaissez bien les produits suivants :

Objectifs

  • Créer une instance Cloud SQL pour SQL Server
  • Créer un bucket Cloud Storage
  • Sauvegarder votre base de données
  • Importer la base de données dans Cloud SQL pour SQL Server
  • Valider les données importées

Coûts

Dans ce document, vous utilisez les composants facturables suivants de Google Cloud :

Obtenez une estimation des coûts en fonction de votre utilisation prévue à l'aide du simulateur de coût. Les nouveaux utilisateurs de Google Cloud peuvent bénéficier d'un essai gratuit.

Une fois que vous avez terminé les tâches décrites dans ce document, vous pouvez éviter de continuer à payer des frais en supprimant les ressources que vous avez créées. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

  1. Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    ACCÉDER À LA PAGE DE SÉLECTION DE PROJET

  2. Vérifiez que la facturation est activée pour votre projet Google Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  3. Activez les API Cloud Storage et Cloud SQL.

    ACTIVER LES API

  4. Installez et initialisez Google Cloud CLI sur le serveur qui exécute SQL Server 2008.

  5. Dans la console Google Cloud, accédez à Cloud Shell.

    Accéder à Cloud Shell

    En bas de la fenêtre de la console Google Cloud, une session Cloud Shell s'ouvre et affiche une invite de ligne de commande. Cloud Shell est un environnement de shell dans lequel Google Cloud CLI est déjà installée, et dans lequel des valeurs sont déjà définies pour votre projet actuel. L'initialisation de la session peut prendre quelques secondes.

Créer l'instance Cloud SQL et le bucket Cloud Storage

  1. Dans Cloud Shell, créez l'instance Cloud SQL pour SQL Server 2017 Enterprise vers laquelle vous migrerez ultérieurement la base de données :

    gcloud beta sql instances create target  \
        --database-version=SQLSERVER_2017_ENTERPRISE \
        --cpu=2 \
        --memory=5GB \
        --root-password=sqlserver12@ \
        --zone=us-central1-f
    

    La création de l'instance peut prendre quelques minutes. Le nom d'utilisateur racine par défaut est sqlserver et le mot de passe par défaut est sqlserver12@. Pour ce tutoriel, vous créez l'instance dans la zone us-central1-f. Pour en savoir plus sur les zones, consultez la page Emplacements Cloud.

  2. Créez un bucket Cloud Storage pour stocker le fichier de sauvegarde avant l'importation des données dans Cloud SQL :

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

    Remplacez bucket-name par un nom unique pour le bucket Cloud Storage.

Sauvegarder la base de données

Dans cette section, vous allez vous connecter au serveur Windows exécutant SQL Server 2008, créer une sauvegarde de la base de données et importer la base de données de sauvegarde dans Cloud Storage.

  1. Connectez-vous au serveur Windows exécutant SQL Server 2008 via RDP. Il peut s'agir du serveur principal ou d'une instance de serveur répliquée.

  2. Lancez l'outil de ligne de commande PowerShell.

  3. Dans le terminal à partir duquel vous avez installé la CLI gclous, créez un dossier de sauvegarde :

    mkdir c:\backup
    
  4. Créez une sauvegarde de la base de données dans le dossier de sauvegarde :

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

    Remplacez db-name par le nom de la base de données que vous souhaitez migrer vers Cloud SQL.

  5. Copiez le fichier de sauvegarde dans le 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
    

Importer le fichier de sauvegarde dans Cloud SQL

  1. Dans Cloud Shell, récupérez le compte de service associé à l'instance Cloud SQL et enregistrez-le dans une variable :

    SVC_EMAIL_ADDRESS=$(gcloud sql instances describe target \
        --format='value(serviceAccountEmailAddress)')
    echo $SVC_EMAIL_ADDRESS
    

    Google Cloud crée un compte de service lorsque vous créez l'instance Cloud SQL. Vous utilisez le compte de service pour autoriser l'instance Cloud SQL à accéder aux ressources dont elle a besoin.

  2. Autorisez le compte de service à écrire dans le bucket Cloud Storage :

    gcloud storage buckets add-iam-policy-binding gs://bucket-name \
        --member=serviceAccount:${SVC_EMAIL_ADDRESS} \
        --role=roles/storage.legacyBucketWriter
    
  3. Autorisez le compte de service à lire les fichiers dans le bucket Cloud Storage :

    gcloud storage buckets add-iam-policy-binding gs://bucket-name \
        --member=serviceAccount:${SVC_EMAIL_ADDRESS} \
        --role=roles/storage.legacyObjectReader
    
  4. Importez le fichier de sauvegarde dans la base de données Cloud SQL :

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

Valider l'importation des données

Dans cette section, vous allez vérifier que les données ont bien été importées.

  1. Dans Cloud Shell, installez la boîte à outils SQL Server :

    sudo apt-get install -y mssql-tools
    

    Si vous acceptez les conditions de la licence, saisissez yes lorsque vous y êtes invité.

  2. Pour accéder de manière sécurisée à votre instance Cloud SQL, téléchargez le proxy Cloud SQL :

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    
  3. Démarrez le proxy Cloud SQL :

    CONNECTION_NAME=$(gcloud sql instances describe target --format='value(connectionName)')
    ./cloud_sql_proxy -instances=${CONNECTION_NAME}=tcp:1433 &
    
  4. Exécutez une requête pour vérifier les données dans une ou plusieurs tables :

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

    Remplacez query-string par la requête SQL que vous souhaitez exécuter.

    Lorsque vous y êtes invité, saisissez le mot de passe sqlserver12@.

Effectuer un nettoyage

Le moyen le plus simple d'éviter la facturation consiste à supprimer le projet Google Cloud que vous avez créé pour le tutoriel.

Supprimer le projet

  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.

Étape suivante