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 fluide et économique pour la reprise après sinistre et la migration des données dans le cloud.
La fonctionnalité native de sauvegarde SQL Server utilise 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 coûts 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, en vue d'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 :
Pour obtenir une estimation des coûts en fonction de votre utilisation prévue, utilisez le simulateur de coût.
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
Pour ce tutoriel, vous avez besoin d'un projet Google Cloud . Vous pouvez en créer un ou sélectionner un projet existant :
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, activate Cloud Shell.
Assurez-vous que Microsoft SQL Server 2022 ou version ultérieure est installé et en cours d'exécution.
Assurez-vous que votre projet Google Cloud et SQL Server disposent des autorisations requises pour effectuer des tâches de sauvegarde et de restauration.
Assurez-vous que le compte utilisateur ou de service associé aux clés d'accès dispose des autorisations nécessaires pour créer et afficher des objets dans le bucket Cloud Storage.
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.
Sélectionnez votre projet Google Cloud .
gcloud config set project PROJECT_ID
Créer le bucket Pour créer le bucket, exécutez la commande
gcloud storage buckets create
comme suit.gcloud storage buckets create gs://BUCKET_NAME --location=BUCKET_LOCATION
Remplacez les éléments suivants :
BUCKET_NAME
: nom unique de votre bucket.BUCKET_LOCATION
par l'emplacement de votre bucket.Accédez à vos paramètres Cloud Storage dans la console Google Cloud .
Sélectionnez l'onglet Interopérabilité.
Sous Clés d'accès pour votre compte utilisateur, cliquez sur Créer une clé.
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.
CREDENTIAL_NAME
: nommez vos identifiants.ACCESS_KEY
: avec la clé d'accès que vous avez créée dans la section précédente.SECRET
: avec le secret que vous avez créé dans la section précédente.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.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.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.- 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.
- Découvrez des architectures de référence, des schémas et des bonnes pratiques concernant Google Cloud. Consultez notre Cloud Architecture Center.
Créer un bucket Cloud Storage
Vous pouvez créer un bucket Cloud Storage à l'aide de la console Google Cloud ou de la commande
gcloud storage
.Pour créer un bucket Cloud Storage à l'aide de la commande
gcloud storage
, procédez comme suit.Configurer l'interopérabilité S3 et créer une clé d'accès
Pour permettre à SQL Server de 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 :
Pour les environnements de production, nous vous recommandons d'utiliser une clé HMAC (Hash-based Message Authentication Code) de compte de service pour une sécurité et une gestion améliorées.
Ajouter des identifiants à SQL Server
Pour permettre à SQL Server de s'authentifier auprès de votre bucket Cloud Storage, vous devez créer un objet d'identifiant dans SQL Server pour 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 :
IDENTITY = 'S3 Access Key'
est essentiel, car il indique à SQL Server d'utiliser le nouveau connecteur S3. Le secret doit être mis en forme comme la 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'optionTO URL
. Préfixez l'URL avecs3://storage.googleapis.com
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 :
Voici la description des paramètres de sauvegarde utilisés dans la commande :
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 depuis 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 :
Effectuer un nettoyage
Pour éviter que les ressources utilisées dans ce tutoriel soient facturées sur votre compte Google Cloud :
Supprimer le projet
Étapes suivantes
-