Sauvegarder des bases de données SQL Server dans un bucket Cloud Storage

Ce tutoriel explique comment sauvegarder directement une base de données Microsoft SQL Server 2022 dans un bucket Cloud Storage, puis la restaurer ultérieurement. Introduite dans SQL Server 2022, la fonctionnalité native de sauvegarde SQL Server offre une stratégie simple et économique pour la reprise après sinistre et la migration de données dans le cloud.

La fonctionnalité native de sauvegarde SQL Server exploite les commandes BACKUP TO URL et RESTORE FROM URL, qui sont compatibles avec le stockage d'objets compatible S3, y compris Cloud Storage. Il n'est donc plus nécessaire d'utiliser un stockage local intermédiaire, ce qui simplifie le workflow de sauvegarde et réduit les frais opérationnels.

Ce tutoriel est destiné aux administrateurs et aux ingénieurs de bases de données.

Objectifs

Ce tutoriel vous explique comment effectuer les tâches suivantes pour atteindre votre objectif :

  • Créer un bucket Cloud Storage
  • Configurer un connecteur SQL Server
  • Sauvegarder votre base de données
  • Restaurer votre base de données à partir de la sauvegarde

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, utilisez le simulateur de coût.

Les nouveaux utilisateurs de peuvent bénéficier d'un essai sans frais. Google Cloud

Une fois que vous avez terminé les tâches décrites dans ce document, supprimez les ressources que vous avez créées pour éviter que des frais vous soient facturés. Pour en savoir plus, consultez la section Effectuer un nettoyage.

Avant de commencer

  1. Pour ce tutoriel, vous avez besoin d'un Google Cloud projet. Vous pouvez en créer un ou sélectionner un projet existant :

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

      Rôles requis pour sélectionner ou créer un projet

      • Sélectionner un projet : la sélection d'un projet ne nécessite pas de rôle IAM spécifique Vous pouvez sélectionner n'importe quel projet pour lequel un rôle vous a été attribué.
      • Créer un projet : pour créer un projet, vous devez disposer du rôle Créateur de projet (roles/resourcemanager.projectCreator), qui contient l'autorisation resourcemanager.projects.create. Découvrez comment attribuer des rôles.

      Accéder au sélecteur de projet

    2. Vérifiez que la facturation est activée pour votre Google Cloud projet.

    3. Dans la Google Cloud console, activez Cloud Shell.

      Activer Cloud Shell

  2. Assurez-vous que Microsoft SQL Server 2022 ou une version ultérieure est installé et en cours d'exécution.

  3. Assurez-vous que votre projet Google Cloud et SQL Server disposent des autorisations requises pour effectuer des tâches de sauvegarde et de restauration.

  4. Assurez-vous que l'utilisateur ou le compte de service associé aux clés d'accès est autorisé à créer et à afficher des objets dans le bucket Cloud Storage.

  5. Assurez-vous que le compte utilisateur SQL Server utilisé pour effectuer la sauvegarde dispose des autorisations de sauvegarde de la base de données et du journal de sauvegarde.

Créer un bucket Cloud Storage

Vous pouvez créer un bucket Cloud Storage à l'aide de la Google Cloud console ou de la gcloud storage commande.

Pour créer un bucket Cloud Storage à l'aide de la gcloud storage commande, procédez comme suit.

  1. Sélectionnez votre Google Cloud projet.

    gcloud config set project PROJECT_ID
    
  2. Créer le bucket Pour créer le bucket, exécutez la gcloud storage buckets create commande comme suit.

      gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
    

    Remplacez les éléments suivants :

  • BUCKET_NAME : par un nom unique pour votre bucket.
  • BUCKET_LOCATION : par l'emplacement de votre bucket.

Configurer l'interopérabilité S3 et créer une clé d'accès

Pour autoriser SQL Server à communiquer avec Cloud Storage à l'aide du protocole S3, vous devez activer l'interopérabilité et générer une clé d'accès en procédant comme suit :

  1. Accédez aux paramètres Cloud Storage dans la Google Cloud console.

    Accéder aux paramètres Cloud Storage

  2. Sélectionnez l'onglet Interopérabilité.

  3. Sous Clés d'accès pour votre compte utilisateur, cliquez sur Créer une clé.

    Clés d'accès aux buckets

  4. Enregistrez la clé d'accès et le secret générés de manière sécurisée. Vous en aurez besoin à l'étape suivante.

HMAC

Ajouter des identifiants à SQL Server

Pour autoriser SQL Server à s'authentifier auprès de votre bucket Cloud Storage, vous devez créer un objet d'identifiant dans SQL Server afin de stocker la clé d'accès et le secret Cloud Storage. Pour ce faire, exécutez la commande T-SQL suivante dans SQL Server Management Studio (SSMS).

CREATE CREDENTIAL CREDENTIAL_NAME
WITH
    IDENTITY = 'S3 Access Key',
    SECRET = 'ACCESS_KEY:SECRET';

Remplacez les éléments suivants :

  • CREDENTIAL_NAME : par un nom pour vos identifiants.
  • ACCESS_KEY : par la clé d'accès que vous avez créée dans la section précédente.
  • SECRET : par le secret que vous avez créé dans la section précédente.

IDENTITY = 'S3 Access Key' est essentiel, car il indique à SQL Server d'utiliser le nouveau connecteur S3. Le secret doit être au format suivant : clé d'accès, suivie d'un deux-points, puis de la clé secrète.

Exemple :

CREATE CREDENTIAL sql_backup_credentials
WITH
    IDENTITY = 'S3 Access Key',
    SECRET = 'GOOGGE3SVF7OQE5JRMLQ7KWB:b31Pl8Tx1ARJfdGOsbgMFQNbk3nPdlT2UCYzs1iC';

Sauvegarder vos données dans Cloud Storage

Une fois les identifiants en place, vous pouvez sauvegarder votre base de données directement dans le bucket Cloud Storage à l'aide de la commande BACKUP DATABASE avec l'option TO URL. Ajoutez le préfixe s3://storage.googleapis.com à l'URL pour utiliser le connecteur S3, comme suit.

BACKUP DATABASE DATABASE_NAME
TO URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak'
WITH
    CREDENTIAL = 'CREDENTIAL_NAME',
    FORMAT,
    STATS = 10,
    MAXTRANSFERSIZE = 10485760,
    COMPRESSION;

Remplacez les éléments suivants :

  • CREDENTIAL_NAME : nom des identifiants que vous avez créés à l'étape 3. Par exemple, sql_backup_credentials.
  • BUCKET_NAME : nom du bucket que vous avez créé à l'étape 1.
  • FOLDER_NAME : nom du dossier dans lequel vous souhaitez stocker le fichier de sauvegarde.
  • BACKUP_FILE_NAME : nom du fichier de sauvegarde.

Les descriptions des paramètres de sauvegarde utilisés dans la commande sont les suivantes :

  • FORMAT : remplace les fichiers de sauvegarde existants et crée un ensemble multimédia.
  • STATS : indique la progression de la sauvegarde.
  • COMPRESSION : compresse la sauvegarde, ce qui peut réduire la taille du fichier et le temps d'importation.
  • MAXTRANSFERSIZE : recommandé pour éviter les erreurs d'E/S avec les fichiers de sauvegarde volumineux.

Pour en savoir plus, consultez Sauvegarde SQL Server vers une URL pour le stockage d'objets compatible S3.

Pour les bases de données très volumineuses, vous pouvez diviser la sauvegarde en plusieurs fichiers comme suit.

BACKUP DATABASE DATABASE_NAME
TO
    URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_0.bak',
    URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME_1.bak'
    -- ... more files
WITH
    CREDENTIAL = 'CREDENTIAL_NAME',
    FORMAT,
    STATS = 10,
    MAXTRANSFERSIZE = 10485760,
    COMPRESSION;

Restaurer vos données à partir de Cloud Storage

Vous pouvez restaurer votre base de données directement à partir d'un fichier de sauvegarde stocké dans Cloud Storage à l'aide de la commande RESTORE DATABASE, comme suit.

RESTORE DATABASE DATABASE_NAME
FROM URL = 's3://storage.googleapis.com/BUCKET_NAME/FOLDER_NAME/BACKUP_FILE_NAME.bak'
WITH
    CREDENTIAL = 'CREDENTIAL_NAME';

Remplacez les éléments suivants :

  • CREDENTIAL_NAME : nom des identifiants que vous avez créés à l'étape 3. Par exemple, sql_backup_credentials.
  • BUCKET_NAME : nom du bucket que vous avez créé à l'étape 1.
  • FOLDER_NAME : nom du dossier dans lequel vous souhaitez stocker le fichier de sauvegarde.
  • BACKUP_FILE_NAME : nom du fichier de sauvegarde.

Effectuer un nettoyage

Pour éviter que les ressources utilisées lors de ce tutoriel soient facturées sur votre Google Cloud compte :

Supprimer le projet

  1. Dans la Google Cloud console, accédez à la page Gérer les ressources.

    Accéder à la page "Gérer les ressources"

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez Arrêter pour supprimer le projet.

Étape suivante

  • Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Cloud Architecture Center.