Partage maintenant:
Table des Matières cacher

Backup SQL Server Base de données avec notre guide complet 2025. Instructions étape par étape et meilleures pratiques pour tous les niveaux de compétence.

1. Présentation de SQL Server Backup

1.1 Qu'est-ce que SQL Server Sauvegarde?

SQL Server La sauvegarde consiste à créer des copies de vos fichiers de base de données pour les protéger contre la perte de données. Une sauvegarde capture l'état de votre base de données à un instant T, vous permettant ainsi de restaurer vos données en cas de panne matérielle, d'erreur humaine ou de sinistre.

SQL Server stocke les sauvegardes dans des fichiers .bak par défaut, qui contiennent tous les objets de base de données, y compris les tables, les procédures stockées, les vues, les index et les journaux de transactions.

1.2 Pourquoi SQL Server La sauvegarde est essentielle

Les sauvegardes de bases de données constituent votre dernier rempart contre la perte de données. Sans sauvegardes adéquates, votre organisation risque :

  • Perte permanente de données des pannes matérielles ou de la corruption
  • Temps d'arrêt prolongé pendant les tentatives de récupération
  • Perturbation des affaires et perte de revenus
  • Violations de conformité si les données ne peuvent pas être récupérées
  • Dommages à la réputation des interruptions de service

Régulier SQL Server les sauvegardes garantissent la continuité des activités et répondent aux exigences réglementaires en matière de protection des données.

1.3 Scénarios courants de perte de données

Comprendre quand une perte de données se produit vous aide à développer une stratégie de sauvegarde efficace :

  • Pannes matérielles : Pannes de disque, dysfonctionnements du serveur ou pannes du système de stockage
  • Erreurs humaines : Suppressions accidentelles, mises à jour incorrectes ou tables supprimées
  • Problèmes logiciels : Bugs d'application, mises à jour corrompues ou pannes du système
  • Failles de sécurité: Attaques de ransomware, suppressions malveillantes ou accès non autorisés
  • Catastrophes naturelles: Incendies, inondations ou pannes de courant affectant les centres de données

2. Compréhension SQL Server Types de sauvegarde

SQL Server prend en charge plusieurs types de sauvegarde, chacun répondant à des besoins de récupération et des exigences de stockage différents.

2.1 Sauvegarde complète

Une sauvegarde complète crée une copie complète de votre base de données entière, y compris tous les fichiers de données et une partie du journal des transactions nécessaires à la récupération.

2.1.1 Quand utiliser la sauvegarde complète

Les sauvegardes complètes sont idéales pour :

  • Établir une base de référence pour d'autres types de sauvegarde
  • Bases de données de petite et moyenne taille où le temps de sauvegarde est acceptable
  • Planifications de sauvegarde hebdomadaires ou mensuelles
  • Bases de données avec des modifications peu fréquentes

2.1.2 Avantages et limites de la sauvegarde complète

Avantages :

  • Processus de restauration le plus simple : un seul fichier contient tout
  • Autonome et indépendant des autres sauvegardes
  • Temps de récupération le plus rapide pour la restauration complète de la base de données

Limitations:

  • Nécessite un espace de stockage important
  • Temps de sauvegarde plus long pour les grandes bases de données
  • Consommation de ressources plus élevée lors des opérations de sauvegarde

2.2 Sauvegarde différentielle

Une sauvegarde différentielle capture uniquement les modifications de données depuis la dernière sauvegarde complète, réduisant ainsi le temps de sauvegarde et les besoins de stockage.

2.2.1 Comment fonctionne la sauvegarde différentielle

Les sauvegardes différentielles suivent les modifications à l'aide des extensions modifiées. Lors de la restauration, SQL Server applique d'abord la dernière sauvegarde complète, puis applique la most sauvegarde différentielle récente.

2.2.2 Sauvegarde complète ou différentielle

Sauvegarde complète ou différentielle

Aspect Sauvegarde complète Sauvegarde différentielle
Taille Base de données complète Uniquement les modifications depuis la dernière sauvegarde complète
Temps de sauvegarde La plus longue Plus rapide que plein
Processus de restauration Restauration d'un seul fichier Nécessite un différentiel complet
Stockage requis Most espace Moins d'espace au départ, s'agrandit avec le temps

2.3 Sauvegarde du journal des transactions

Les sauvegardes du journal des transactions capturent toutes les transactions depuis la dernière sauvegarde du journal, permettant une récupération à un instant T.

2.3.1 Comprendre les journaux de transactions

Le journal des transactions enregistre chaque modification apportée à votre base de données. Les sauvegardes du journal tronquent la partie inactive du journal, l'empêchant ainsi de croître indéfiniment et de saturer votre disque.

2.3.2 Récupération à un moment précis

Les sauvegardes de journaux de transactions vous permettent de restaurer votre base de données à tout moment. Ceci est essentiel pour récupérer des données après des modifications ou des suppressions accidentelles.

Pour effectuer une récupération à un instant T, vous avez besoin de :

  • La dernière sauvegarde complète
  • Le most sauvegarde différentielle récente (facultatif)
  • Toutes les sauvegardes du journal des transactions à partir de la sauvegarde complète/différentielle sur votre tarobtenir du temps

2.4 Sauvegarde du journal de fin

Les sauvegardes de fin de journal capturent les enregistrements de journal qui n'ont pas encore été sauvegardés, évitant ainsi la perte de données et préservant une chaîne de journaux intacte. Avant de récupérer un SQL Server Pour restaurer la base de données à son point le plus récent, vous devez sauvegarder la fin de son journal de transactions. Cette sauvegarde est la dernière sauvegarde pertinente du plan de récupération de la base de données.

Le diagramme expliquant les sauvegardes de fin de journal dans SQL Server.

Remarque: Tous les scénarios de restauration ne nécessitent pas une sauvegarde de fin de journal. Elle n'est pas nécessaire si le point de récupération est contenu dans une sauvegarde de journal antérieure. Une sauvegarde de fin de journal est également inutile si vous déplacez ou remplacez (écrasez) une base de données et n'avez pas besoin de la restaurer à un instant ultérieur à sa création.ost sauvegarde récente.

2.4.1 Quand les sauvegardes de fin de journal sont nécessaires

Les scénarios suivants décrivent quand vous devez effectuer une sauvegarde de fin de journal :

Restauration de bases de données en ligne : Si la base de données est en ligne et que vous prévoyez de la restaurer, commencez par sauvegarder la fin du journal. Pour éviter toute erreur avec une base de données en ligne, vous devez utiliser l'option WITH NORECOVERY de l'instruction Transact-SQL BACKUP lors de la sauvegarde. SQL Server base de données.

Récupération de base de données hors ligne : Si une base de données est hors ligne et ne parvient pas à starSi vous devez restaurer la base de données, sauvegardez d'abord la fin du journal. Aucune transaction n'étant possible pour le moment, l'utilisation de l'option WITH NORECOVERY est facultative. NORECOVERY est en fait identique à une sauvegarde du journal des transactions en copie seule dans ce scénario.

Sauvegarde de la base de données endommagée : Si une base de données est endommagée, essayez d'effectuer une sauvegarde de la fin du journal à l'aide de l'option WITH CONTINUE_AFTER_ERROR de l'instruction BACKUP. Sur une base de données endommagée, la sauvegarde de la fin du journal ne peut réussir que si les fichiers journaux sont intacts, si la base de données est dans un état compatible avec les sauvegardes de la fin du journal et si elle ne contient aucune modification journalisée en masse. Si une sauvegarde de la fin du journal ne peut être créée, toutes les transactions validées après la dernière mise à jour MS seront supprimées. SQL Server les bases de données de sauvegarde sont lost.

2.4.2 Options clés pour les sauvegardes de fin de journal

AVEC NORECOVERY : Utilisez WITH NORECOVERY si vous sauvegardez une partie du journal d'une base de données en ligne que vous prévoyez de restaurer ultérieurement. NORECOVERY met la base de données hors ligne. Vous pouvez également effectuer une sauvegarde. SQL Server Journal de fin d'une base de données hors ligne. Pour laisser la base de données hors ligne, utilisez WITH NORECOVERY. Notez que le journal sera tronqué sauf si vous spécifiez l'option COPY_ONLY ou NO_TRUNCATE.

AVEC CONTINUER_APRES_ERREUR : Utilisez CONTINUE_AFTER_ERROR uniquement si vous sauvegardez la fin d'une base de données endommagée. Lors de la sauvegarde de la fin d'un journal sur une base de données endommagée, certaines métadonnées normalement enregistrées dans les sauvegardes de journaux peuvent être indisponibles.

2.5 Sauvegarde par copie uniquement

Les sauvegardes en copie seule créent une sauvegarde indépendante sans affecter la séquence de sauvegarde normale. Elles ne perturbent pas les chaînes de sauvegarde différentielles ni la continuité du journal des transactions.

Utilisez des sauvegardes de copie uniquement pour :

  • Création de copies de bases de données de test ou de développement
  • Sauvegardes ad hoc sans impact sur les sauvegardes planifiées
  • Sauvegarde avant des modifications majeures ou des tests

2.6 Sauvegarde de fichiers et de groupes de fichiers

Sauvegardes de fichiers et de groupes de fichiers tarObtenir des fichiers ou des groupes de fichiers spécifiques plutôt que la base de données entière. Cette approche est efficace pour les bases de données très volumineuses, dont la sauvegarde complète prend trop de temps.

Les avantages comprennent:

  • Opérations de sauvegarde plus rapides pour les grandes bases de données
  • Sauvegarde parallèle de plusieurs groupes de fichiers
  • Options de récupération granulaire
  • Planifications de sauvegarde optimisées pour les groupes de fichiers en lecture seule

2.7 Sauvegarde partielle

Les sauvegardes partielles incluent toutes les données du groupe de fichiers principal et de tous les groupes de fichiers en lecture/écriture, à l'exception des groupes de fichiers en lecture seule. Cela réduit la taille et la durée de sauvegarde des bases de données dont les données historiques statiques sont stockées dans des groupes de fichiers en lecture seule.

3. SQL Server Modèles de récupération

SQL Server les modèles de récupération déterminent quels types de sauvegarde sont disponibles et comment les journaux de transactions sont gérés.

3.1 Modèle de récupération simple

3.1.1 Caractéristiques et cas d'utilisation

La récupération simple tronque automatiquement le journal des transactions après chaque point de contrôle, récupérant ainsi de l'espace sans nécessiter de sauvegardes de journaux.

Idéal pour:

  • Bases de données de développement et de test
  • Bases de données où la perte de données entre les sauvegardes est acceptable
  • Entrepôts de données avec processus ETL pouvant être réexécutés
  • Bases de données en lecture seule ou de rapports

3.1.2 Options de sauvegarde disponibles

La récupération simple prend en charge :

  • Sauvegardes complètes
  • Sauvegardes différentielles
  • Sauvegardes de fichiers et de groupes de fichiers
  • Sauvegardes en copie uniquement

Les sauvegardes du journal des transactions sont pas disponible dans un modèle de récupération simple.

3.2 Modèle de récupération complète

3.2.1 Caractéristiques et avantages

La récupération complète enregistre toutes les transactions et conserve les enregistrements jusqu'à leur sauvegarde. Cela permet une récupération complète des données à tout moment dans une sauvegarde du journal des transactions.

Principaux avantages:

  • Potentiel minimal de perte de données
  • Capacité de restauration à un moment donné
  • Prend en charge l'expédition des journaux et la mise en miroir de la base de données
  • Flexibilité de récupération maximale

3.2.2 Gestion du journal des transactions

En cas de récupération complète, vous devez effectuer des sauvegardes régulières du journal des transactions pour :

  • Empêcher le journal des transactions de remplir l'espace disque
  • Maintenir une chaîne de sauvegarde continue
  • Activer la récupération à un moment précis
  • Contrôler la croissance du fichier journal

Calendrier de sauvegarde typique : sauvegardes complètes hebdomadaires, sauvegardes différentielles quotidiennes, sauvegardes de journaux toutes les 15 à 30 minutes.

3.3 Modèle de récupération journalisé en masse

3.3.1 Quand utiliser la journalisation en masse

La récupération journalisée en masse enregistre de manière minimale les opérations en masse telles que BULK INSERT, SELECT INTO et les reconstructions d'index tout en conservant une journalisation complète pour les transactions régulières.

Utilisez la récupération journalisée en masse lorsque :

  • Réalisation d'opérations d'importation en masse de grande envergure
  • Reconstruction des index sur des tables volumineuses
  • Exécution d'opérations bénéficiant d'une journalisation minimale
  • Nécessité de réduire la taille du journal des transactions lors d'opérations spécifiques

3.3.2 Limitations et considérations

Limites importantes :

  • La restauration ponctuelle n'est pas disponible pendant les opérations en masse
  • Les sauvegardes de journaux sont plus volumineuses lorsque des opérations en masse se produisent
  • Doit basculer entre la journalisation complète et la journalisation en masse selon les besoins

3.4 Choisir le bon modèle de récupération

Sélectionnez votre modèle de récupération en fonction des besoins de votre entreprise :

Modèle de récupération Risque de perte de données Récupération ponctuelle Idéal pour
Simple Modifications depuis la dernière sauvegarde Non Développement/test, perte de données acceptable
Full Minimal (généralement quelques minutes) Oui Bases de données de production, données critiques
Journalisé en masse Modifications depuis la dernière sauvegarde du journal Limité pendant les opérations en vrac Temporary utiliser lors d'opérations en vrac

4. sauvegarde SQL Server Base de données utilisant SSMS

4.1 Prérequis et préparation

Avant de sauvegarder votre SQL Server base de données, assurez-vous :

  • Vous disposez des autorisations appropriées (autorisation db_owner ou BACKUP DATABASE)
  • Espace disque suffisant pour le fichier de sauvegarde
  • SQL Server Management Studio (SSMS) installé
  • Chemins réseau accessibles en cas de sauvegarde vers des emplacements réseau

4.2 Étape par étape : Sauvegarde complète avec SSMS

Suivez ces étapes pour créer une sauvegarde complète de votre SQL Server base de données utilisant SSMS.

Ouverture 4.2.1 SQL Server Studio de gestion

  1. Lancement SQL Server Studio de gestion
  2. Entrez le nom de votre serveur dans le champ Nom du serveur champ
  3. Sélectionnez votre méthode d'authentification
  4. Cliquez sur Se connectez

4.2.2 Sélection des options de base de données et de sauvegarde

  1. In Explorateur d'objets, élargir la Bases de données nœud
  2. Cliquez avec le bouton droit sur la base de données que vous souhaitez sauvegarder
  3. Choisir Tâches -> Sauvegarde
    Starune tâche de sauvegarde pour un SQL Server base de données dans SQL Server Atelier de gestion.
  4. Dans l' Sauvegarder la base de données fenêtre, vérifiez le nom de la base de données
  5. Choisir Full car Type de sauvegarde
    Créer une sauvegarde complète d'un SQL Server base de données dans SQL Server Atelier de gestion.

4.2.3 Configuration de la destination de sauvegarde

  1. Sous Destinationcliquez Supprimer pour effacer le chemin par défaut (si nécessaire)
  2. Cliquez sur Ajouter pour spécifier un nouvel emplacement de sauvegarde
  3. Entrez le chemin et le nom du fichier avec .bak l'extension de
  4. Cliquez sur OK pour confirmer la destination

Définir la destination de sauvegarde dans SQL Server Atelier de gestion.

4.2.4 Advanced Backup Paramètres

  1. Cliquez sur Options de média dans le panneau de gauche
  2. Choisissez les options de sauvegarde :
    • Écraser tous les jeux de sauvegarde existants – Remplace les sauvegardes existantes
    • Ajouter à l'ensemble de sauvegarde existant – Ajoute au fichier de sauvegarde existant

    Définissez les options du support de sauvegarde dans SQL Server Atelier de gestion.

  3. Cliquez sur options de sauvegarde dans le panneau de gauche
  4. Configurer les paramètres facultatifs :
    • Compresser la sauvegarde – Réduit la taille du fichier de sauvegarde
    • Chiffrer la sauvegarde – Protège les données sensibles
    • Vérifier la sauvegarde une fois terminée – Vérifie l’intégrité de la sauvegarde

    Définissez les options de sauvegarde dans SQL Server Atelier de gestion.

4.2.5 Exécution de la sauvegarde

  1. Vérifiez tous les paramètres dans le Sauvegarder la base de données fenêtre
  2. Cliquez sur OK à starle processus de sauvegarde
  3. Attendez que la sauvegarde soit terminée
  4. Un message de réussite s'affiche lorsque la sauvegarde est terminée
  5. Cliquez sur OK pour fermer la boîte de dialogue de confirmation

4.3 Création d'une sauvegarde différentielle avec SSMS

Pour créer une sauvegarde différentielle, suivez les mêmes étapes qu'une sauvegarde complète, mais sélectionnez Différentielle comme type de sauvegarde à l'étape 4.2.2. N'oubliez pas que les sauvegardes différentielles nécessitent une sauvegarde complète préalable comme base de référence.

Créer une sauvegarde différentielle d'un SQL Server base de données dans SQL Server Atelier de gestion.

4.4 Création d'une sauvegarde du journal des transactions avec SSMS

Les sauvegardes du journal des transactions ne sont disponibles que pour les bases de données utilisant des modèles de récupération complète ou en masse.

  1. Cliquez avec le bouton droit sur la base de données dans Explorateur d'objets
  2. Choisir Tâches -> Sauvegarde
  3. Choisir Journal des transactions comme type de sauvegarde
  4. Configurer la destination et les options selon les besoins
  5. Cliquez sur OK pour créer la sauvegarde du journal

Créer une sauvegarde du journal des transactions d'un SQL Server base de données dans SQL Server Atelier de gestion.

4.5 Création d'une sauvegarde en copie seule avec SSMS

Les sauvegardes en copie uniquement n'interfèrent pas avec votre séquence de sauvegarde habituelle.

  1. Suivez les étapes pour créer une sauvegarde complète
  2. Dans l' options de sauvegarde page
  3. Vérifiez la Sauvegarde en copie uniquement option
  4. Terminez le processus de sauvegarde normalement

Créer une sauvegarde de copie uniquement d'un SQL Server base de données dans SQL Server Atelier de gestion.

5. sauvegarde SQL Server Base de données utilisant T-SQL

5.1 Syntaxe de base de la base de données de sauvegarde

La commande T-SQL BACKUP DATABASE fournit un contrôle programmatique sur SQL Server sauvegardes.

BACKUP DATABASE database_name
TO DISK = 'backup_file_path'
WITH options;

5.2 Commandes T-SQL de sauvegarde complète

5.2.1 Script de sauvegarde complète simple

Créez une sauvegarde complète de base avec des options minimales :

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
GO

5.2.2 Sauvegarde complète avec options

Ajoutez des informations descriptives et des options de formatage :

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH FORMAT,
     INIT,
     NAME = 'AdventureWorks-Full Database Backup',
     DESCRIPTION = 'Full backup of AdventureWorks database',
     STATS = 10
GO

Options expliquées :

  • Format – Crée un nouveau jeu de sauvegarde
  • INIT – Écrase le fichier de sauvegarde existant
  • Nom – Attribue un nom au jeu de sauvegarde
  • DESCRIPTION – Ajoute un texte descriptif
  • Statistiques – Affiche la progression tous les 10 %

5.3 Commandes T-SQL de sauvegarde différentielle

Les sauvegardes différentielles utilisent l'option DIFFERENTIAL :

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH DIFFERENTIAL,
     INIT,
     NAME = 'AdventureWorks-Differential Backup',
     STATS = 10
GO

5.4 Commandes T-SQL de sauvegarde du journal des transactions

Utilisez BACKUP LOG pour les sauvegardes du journal des transactions :

BACKUP LOG AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH INIT,
     NAME = 'AdventureWorks-Transaction Log Backup',
     STATS = 10
GO

5.5 Options de sauvegarde T-SQL avancées

5.5.1 Sauvegarde sur plusieurs fichiers

Répartissez la sauvegarde sur plusieurs fichiers pour des performances plus rapides :

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_1.bak',
   DISK = 'D:\Backups\AdventureWorks_2.bak',
   DISK = 'E:\Backups\AdventureWorks_3.bak'
WITH FORMAT, INIT
GO

5.5.2 Sauvegarde avec compression

Réduisez la taille du fichier de sauvegarde et la bande passante du réseau :

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Compressed.bak'
WITH COMPRESSION,
     INIT,
     STATS = 10
GO

5.5.3 Sauvegarde avec chiffrement

Protégez les données sensibles grâce au cryptage :

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
     ENCRYPTION (
         ALGORITHM = AES_256,
         SERVER CERTIFICATE = BackupCertificate
     ),
     STATS = 10
GO

5.5.4 Sauvegarde avec protection par mot de passe

Ajouter une protection par mot de passe (obsolète, utilisez plutôt le chiffrement) :

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH PASSWORD = 'StrongPassword123!',
     INIT
GO

5.5.5 Sauvegardes en miroir

Créer des copies simultanées vers différents emplacements :

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
MIRROR TO DISK = 'D:\Backups\AdventureWorks_Mirror.bak'
WITH FORMAT, INIT
GO

5.6 Exemples et scripts de sauvegarde T-SQL

Script de sauvegarde complet avec gestion des erreurs :

DECLARE @BackupPath NVARCHAR(500);
DECLARE @DatabaseName NVARCHAR(128) = 'AdventureWorks';
DECLARE @BackupDate NVARCHAR(20);

SET @BackupDate = CONVERT(NVARCHAR(20), GETDATE(), 112);
SET @BackupPath = 'C:\Backups\' + @DatabaseName + '_' + @BackupDate + '.bak';

BEGIN TRY
    BACKUP DATABASE @DatabaseName
    TO DISK = @BackupPath
    WITH COMPRESSION,
         INIT,
         NAME = @DatabaseName + '-Full Backup',
         STATS = 10;
    
    PRINT 'Backup completed successfully: ' + @BackupPath;
END TRY
BEGIN CATCH
    PRINT 'Backup failed: ' + ERROR_MESSAGE();
END CATCH
GO

6. sauvegarde SQL Server Base de données utilisant PowerShell

6.1 Applets de commande de sauvegarde PowerShell

SQL Server Le module PowerShell fournit des applets de commande pour l’automatisation de la sauvegarde :

  • Sauvegarde de la base de données SQL – Crée des sauvegardes de bases de données
  • Restaurer-SqlDatabase – Restaure les sauvegardes de bases de données
  • Obtenir-SqlDatabase – Récupère les informations de la base de données

Importer le SQL Server module:

Import-Module SqlServer

6.2 Création de scripts de sauvegarde avec PowerShell

Commande de sauvegarde PowerShell de base :

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks.bak" `
                    -BackupAction Database `
                    -CompressionOption On

Exemple de sauvegarde différentielle :

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks_Diff.bak" `
                    -BackupAction Database `
                    -Incremental

Sauvegarde du journal des transactions :

Backup-SqlDatabase -ServerInstance "localhost" `
                    -Database "AdventureWorks" `
                    -BackupFile "C:\Backups\AdventureWorks_Log.trn" `
                    -BackupAction Log

6.3 Automatisation des sauvegardes avec PowerShell

Créer un script de sauvegarde automatisé pour plusieurs bases de données :

# Configuration
$ServerInstance = "localhost"
$BackupPath = "C:\Backups"
$Databases = @("AdventureWorks", "TestDB", "ProductionDB")
$Timestamp = Get-Date -Format "yyyyMMdd_HHmmss"

# Create backup directory if not exists
if (-not (Test-Path $BackupPath)) {
    New-Item -ItemType Directory -Path $BackupPath
}

# Backup each database
foreach ($Database in $Databases) {
    $BackupFile = Join-Path $BackupPath "$Database`_$Timestamp.bak"
    
    try {
        Backup-SqlDatabase -ServerInstance $ServerInstance `
                          -Database $Database `
                          -BackupFile $BackupFile `
                          -BackupAction Database `
                          -CompressionOption On
        
        Write-Host "Successfully backed up $Database to $BackupFile" -ForegroundColor Green
    }
    catch {
        Write-Host "Failed to backup $Database : $_" -ForegroundColor Red
    }
}

7. sauvegarde SQL Server Base de données utilisant la ligne de commande

SQL Server fournit des utilitaires de ligne de commande qui vous permettent de sauvegarder SQL Server Base de données sans utiliser SSMS ni interface graphique. Ces outils sont essentiels pour l'automatisation, la création de scripts et l'administration à distance.

7.1 Utiliser la base de données de sauvegarde SQLCMD

SQLCMD est l'utilitaire de ligne de commande moderne pour SQL Server qui a remplacé OSQL. Il offre des fonctionnalités améliorées et constitue l'outil recommandé pour l'exécution de commandes T-SQL depuis l'invite de commande.

7.1.1 Syntaxe de base de SQLCMD

sqlcmd -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S : Spécifie le SQL Server nom de l'instance
  • -ré: Spécifie le nom de la base de données
  • -Q: Exécute une requête et quitte
  • -E : Utilise l'authentification Windows
  • -U: Indique SQL Server nom d'utilisateur de connexion
  • -P: Spécifie le mot de passe pour SQL Server vous connecter

7.1.2 Création d'une sauvegarde avec SQLCMD

Pour sauvegarder SQL Server en utilisant SQLCMD, suivez ces étapes :

  1. Open Invite de commandes or PowerShell
  2. Accédez à la SQL Server répertoire des outils (généralement ajouté au PATH lors de l'installation)
  3. Exécutez la commande de sauvegarde de la base de données SQLCMD avec les paramètres appropriés
  4. Vérifiez que le fichier de sauvegarde a été créé avec succès

Exemple de commande de sauvegarde complète à l’aide de l’authentification Windows :

sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"

Exemple d'utilisation SQL Server Authentification:

sqlcmd -S localhost -U sa -P YourPassword -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH COMPRESSION, INIT"

Création d'une sauvegarde différentielle avec SQLCMD

sqlcmd -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, COMPRESSION, INIT"

Création d'une sauvegarde du journal des transactions avec SQLCMD

sqlcmd -S localhost -E -Q "BACKUP LOG AdventureWorks TO DISK='C:\Backups\AdventureWorks_Log.trn' WITH COMPRESSION, INIT"

7.2 Utiliser la base de données de sauvegarde OSQL

OSQL est un utilitaire de ligne de commande hérité pour SQL ServerBien que Microsoft recommande d’utiliser SQLCMD à la place, OSQL reste disponible pour la compatibilité descendante avec les scripts et systèmes plus anciens.

7.2.1 Syntaxe OSQL de base

La syntaxe OSQL est similaire à SQLCMD :

osql -S ServerName -d DatabaseName -Q "BACKUP DATABASE statement"
  • -S : SQL Server nom de l'instance
  • -ré: Nom de la base de données
  • -Q: Exécute la requête et quitte
  • -E : Utilise une connexion sécurisée (authentification Windows)
  • -U: Nom d'utilisateur connexion
  • -P: Mot de passe

7.2.2 Création d'une sauvegarde avec OSQL

Pour effectuer des opérations de sauvegarde de base de données OSQL :

  1. Open Invite de commandes
  2. Vérifiez qu'OSQL est disponible dans votre SQL Server installation
  3. Exécutez la commande de sauvegarde OSQL

Exemple de sauvegarde complète :

osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks.bak' WITH INIT"

Exemple de sauvegarde différentielle :

osql -S localhost -E -Q "BACKUP DATABASE AdventureWorks TO DISK='C:\Backups\AdventureWorks_Diff.bak' WITH DIFFERENTIAL, INIT"

8. Tiers SQL Server Outils de sauvegarde

Si SQL Server Inclut des fonctionnalités de sauvegarde natives, tandis que des outils tiers offrent des fonctionnalités avancées, l'automatisation et une gestion de niveau professionnel pour les organisations aux besoins complexes. Ces solutions offrent une compression avancée, une gestion centralisée et des workflows de sauvegarde simplifiés. SQL Server bases de données dans plusieurs environnements.

8.1 Veeam Backup pour SQL Server

Veeam propose des solutions complètes de protection des données spécialement conçues pour la sauvegarde SQL Server bases de données avec un impact minimal sur les systèmes de production.

Caractéristiques principales:

  • Traitement sensible aux applications pour SQL Server cohérence des sauvegardes
  • Sauvegarde et gestion du journal des transactions
  • Récupération ponctuelle avec options de restauration granulaires
  • Intégration avec Veeam Backup & Replication pour une protection unifiée des données
  • Vérification et validation automatiques des sauvegardes
  • Prise en charge des groupes de disponibilité Always On
  • Au niveau de la machine virtuelle et au niveau de l'application SQL Server options de sauvegarde

8.2 Barracuda Backup pour SQL Server

Barracuda fournit des solutions de sauvegarde intégrées au cloud avec une gestion simplifiée pour MS SQL Server opérations de sauvegarde de la base de données.

Caractéristiques principales:

  • Chaînes de vente SQL Server planification de sauvegarde
  • Réplication cloud intégrée vers Barracuda Cloud Storage
  • Déduplication et compression globales
  • Capacités de récupération locale instantanée
  • Console de gestion Web
  • Prise en charge des sauvegardes complètes, différentielles et des journaux de transactions
  • Protection contre les ransomwares avec des sauvegardes immuables

8.3 Veritas NetBackup pour SQL Server

Veritas NetBackup est une plate-forme de sauvegarde de niveau entreprise offrant une protection complète pour SQL Server bases de données dans des environnements informatiques complexes.

Caractéristiques principales:

  • Gestion de sauvegarde à l'échelle de l'entreprise pour des milliers de SQL Server cas
  • Algorithmes avancés de déduplication et de compression
  • Politiques et planification de sauvegarde flexibles
  • Support pour tous SQL Server modèles de récupération
  • Intégration avec la bibliothèque de bandesraries et stockage en nuage
  • Récupération granulaire de bases de données, de tables et d'objets
  • Prise en charge multiplateforme (Windows, Linux SQL Server)
  • Gestion automatisée du cycle de vie des sauvegardes

8.4 Commvault Complete Backup & Recovery pour SQL Server

Commvault offre une gestion intelligente des données avec une sauvegarde complète SQL Server capacités et fonctionnalités d'automatisation avancées.

Caractéristiques principales:

  • Optimisation de la sauvegarde et détection des anomalies pilotées par l'IA
  • Plateforme unifiée pour la sauvegarde, la récupération et l'archivage
  • Avancé SQL Server compression de sauvegarde (jusqu'à 90 % de réduction)
  • Orchestration automatisée de la reprise après sinistre
  • Synchronisation en direct pour une protection RPO proche de zéro
  • Support pour SQL Server déploiements sur site, cloud et hybrides
  • IntelliSnap pour les sauvegardes basées sur des instantanés
  • Capacités complètes de conformité et de découverte électronique

8.5 Cohesity DataProtect pour SQL Server

Cohesity fournit une gestion de données de nouvelle génération avec une infrastructure hyperconvergée pour les environnements modernes SQL Server opérations de sauvegarde.

Caractéristiques principales:

  • Architecture à l'échelle du Web pour une gestion simplifiée
  • Capacités de restauration de masse instantanée pour SQL Server bases de données
  • Instantanés cohérents avec les applications
  • Déduplication globale sur toutes les sauvegardes
  • Intégration cloud native (AWS, Azure, Google Cloud)
  • Tableaux de bord d'analyse et de surveillance intégrés
  • Cloner et tester les capacités de la base de données
  • Protection contre les ransomwares avec des instantanés immuables

8.6 Red Gate SQL Backup Pro

Red Gate SQL Backup Pro est un outil spécialisé axé exclusivement sur l'optimisation SQL Server opérations de sauvegarde et de restauration avec une compression et des performances supérieures.

Caractéristiques principales:

  • Taux de compression à la pointe de l'industrie (jusqu'à 95 %)
  • Résilience du réseau pour la sauvegarde SQL Server via des connexions peu fiables
  • Cryptage de sauvegarde avec AES 256 bits
  • Vérification de la copie de sauvegarde et contrôle de l'intégrité
  • Historique de sauvegarde détaillé et rapports
  • Intégration avec SQL Server Studio de gestion
  • Prise en charge de la sauvegarde vers des emplacements réseau et du stockage cloud
  • Sauvegarde et restauration parallèles pour des opérations plus rapides

9. Comment restaurer SQL Server Base de données

9.1 Comprendre le processus de restauration

Restaurer un SQL Server La base de données est recrée à partir des fichiers de sauvegarde. Le processus de restauration lit le fichier de sauvegarde et reconstruit la base de données à son état initial.

Considérations importantes :

  • La restauration écrase la base de données existante
  • Les utilisateurs sont déconnectés pendant la restauration
  • La restauration doit suivre la séquence de sauvegarde (complète, puis différentielle, puis journaux)
  • La base de données n'est pas disponible pendant l'opération de restauration

9.2 Restauration d'une sauvegarde complète à l'aide de SSMS

Suivez ces étapes pour restaurer une sauvegarde complète de la base de données.

9.2.1 Processus de restauration étape par étape

  1. Open SQL Server Studio de gestion et connectez-vous à votre serveur
  2. In Explorateur d'objets, clic-droit Bases de données
  3. Choisir Restaurer la base de données
  4. Dans l' Source section, sélectionnez Appareil
  5. Cliquez sur ... bouton pour parcourir les fichiers de sauvegarde
  6. Cliquez sur Ajouter et accédez à votre fichier .bak
  7. Sélectionnez le fichier de sauvegarde et cliquez sur OK
  8. Dans l' Destination section, entrez le nom de la base de données
  9. Examiner les jeux de sauvegarde à restaurer
  10. Cliquez sur OK à start la restauration

9.2.2 Options et paramètres de restauration

Cliquez sur Options dans le panneau de gauche pour configurer :

  • Remplacer la base de données existante (AVEC REMPLACEMENT) – Permet la restauration sur une base de données existante
  • Conserver les paramètres de réplication (AVEC KEEP_REPLICATION) – Maintient la configuration de réplication
  • Restreindre l'accès à la base de données restaurée (WITH RESTRICTED_USER) – Limites post-restaurer l'accès
  • État de récupération – Choisissez entre RESTAURATION AVEC RÉCUPÉRATION ou NORECOVERY

9.3 Restauration de la sauvegarde différentielle

La restauration différentielle nécessite des sauvegardes complètes et différentielles :

  1. Tout d’abord, restaurez la sauvegarde complète avec NORECOVERY option
  2. Restaurez ensuite la sauvegarde différentielle avec RÉCUPÉRATION option

Exemple T-SQL :

-- Restore full backup (NORECOVERY to allow differential)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

-- Restore differential backup (RECOVERY to complete)
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Diff.bak'
WITH RECOVERY;
GO

9.4 Restauration avec sauvegardes du journal des transactions

Pour une récupération à un instant T, restaurez dans l'ordre :

  1. Restaurer la sauvegarde complète avec NORECOVERY
  2. Restaurer la sauvegarde différentielle avec NORECOVERY (si disponible)
  3. Restaurer les sauvegardes du journal des transactions dans l'ordre avec NORECOVERY
  4. Restaurer la sauvegarde finale du journal avec RECOVERY
-- Restore full backup
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

-- Restore first log backup
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log1.trn'
WITH NORECOVERY;

-- Restore second log backup with recovery
RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log2.trn'
WITH RECOVERY;
GO

9.5 Restauration à un instant T

Restaurer la base de données à un moment précis à l'aide de l'option STOPAT :

-- Restore to specific time: January 15, 2025 at 2:30 PM
RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Full.bak'
WITH NORECOVERY, REPLACE;

RESTORE LOG AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks_Log.trn'
WITH RECOVERY, STOPAT = '2025-01-15 14:30:00';
GO

9.6 Restauration à l'aide de commandes T-SQL

Script de restauration complet avec déplacement de fichier :

RESTORE DATABASE AdventureWorks
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH MOVE 'AdventureWorks_Data' TO 'D:\Data\AdventureWorks.mdf',
     MOVE 'AdventureWorks_Log' TO 'E:\Logs\AdventureWorks.ldf',
     REPLACE,
     STATS = 10;
GO

9.7 Vérification de l'intégrité de la sauvegarde avant la restauration

Vérifier la validité de la sauvegarde sans restaurer :

RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak';
GO

Cette commande vérifie que le jeu de sauvegarde est complet et lisible sans réellement restaurer la base de données.

10. SQL Server Meilleures pratiques de sauvegarde

10.1 Élaboration d'une stratégie de sauvegarde

10.1.1 Évaluation des besoins opérationnels

Avant de mettre en œuvre des sauvegardes, évaluez :

  • Criticité des données : Quelle est l’importance de ces données pour les opérations ?
  • Changer la fréquence : À quelle fréquence les données changent-elles ?
  • Taille de la base de données : Quelle est la taille de la base de données ?
  • Ressources disponibles: Quel stockage et quelle bande passante sont disponibles ?
  • Besoins de conformité : Quelles réglementations devez-vous suivre ?

10.1.2 Définition du RTO et du RPO

Objectif de temps de récupération (RTO): Temps d'arrêt maximal acceptable. Détermine la rapidité avec laquelle vous devez rétablir les opérations.

Objectif de point de récupération (RPO): Perte de données maximale acceptable. Détermine la fréquence de sauvegarde.

Exigence RTO/RPO Stratégie de sauvegarde recommandée
RPO : Heures, RTO : Heures Journal quotidien complet + journal des transactions toutes les 1 à 2 heures
RPO : minutes, RTO : heures Sauvegardes quotidiennes complètes + journaux toutes les 15 à 30 minutes
RPO : proche de zéro, RTO : minutes Groupes de disponibilité permanents + sauvegardes fréquentes des journaux
RPO : jours, RTO : jours Complète hebdomadaire + différentiel journalier

10.2 Création d'une planification de sauvegarde

10.2.1 Recommandations de fréquence

Calendrier de sauvegarde typique pour les bases de données de production :

  • Sauvegardes complètes : Hebdomadaire (dimanche soir en période de faible activité)
  • Sauvegardes différentielles : Tous les jours (tous les soirs)
  • Sauvegardes du journal des transactions : Toutes les 15 à 30 minutes pendant les heures ouvrables
  • Sauvegardes en copie uniquement : Selon les besoins pour les tests ou le développement

10.2.2 Équilibrer les performances et la protection

Tenez compte de ces facteurs lors de la planification :

  • Heures creuses: Exécutez des sauvegardes complètes pendant les périodes de faible activité
  • Impact sur les ressources : La compression réduit les E/S mais augmente l'utilisation du processeur
  • Bande passante réseau : Planifier des sauvegardes réseau lorsque le trafic est faible
  • Fenêtres de sauvegarde : Assurez-vous que les sauvegardes sont terminées avant les heures ouvrables

10.3 Meilleures pratiques de stockage de sauvegarde

10.3.1 Stockage sur site et hors site

Sauvegardes sur site :

  • Temps de sauvegarde et de restauration plus rapides
  • C inférieurost pour l'accès haute fréquence
  • Vulnérable aux catastrophes locales
  • Idéal pour les scénarios de récupération rapide

Sauvegardes hors site :

  • Protection contre les catastrophes spécifiques au site
  • Conformité aux exigences de redondance géographique
  • Temps de restauration plus lents
  • Essentiel pour la reprise après sinistre

10.3.2 Options de sauvegarde dans le cloud

Avantages du stockage en cloud :

  • Stockage Blob Azure : Originaire SQL Server intégration, cost-efficace pour les accès peu fréquents
  • Amazon S3 : Niveaux de stockage très durables et flexibles
  • Google Cloud Storage : Prix ​​compétitifs, disponibilité mondiale

10.3.3 Politiques de conservation des sauvegardes

Politique de conservation des échantillons :

  • Conservez des sauvegardes quotidiennes pendant 7 jours
  • Conservez des sauvegardes hebdomadaires pendant 4 semaines
  • Conservez des sauvegardes mensuelles pendant 12 mois
  • Conserver des sauvegardes annuelles pendant 7 ans (conformité)

10.4 Compression et chiffrement des sauvegardes

Avantages de la compression :

  • Réduit la taille du fichier de sauvegarde de 50 à 70 %
  • Réduit le temps de sauvegarde
  • Réduit le stockage costs
  • Réduit la bande passante du réseau pour les sauvegardes à distance

Bonnes pratiques de chiffrement :

  • Chiffrez toujours les sauvegardes contenant des données sensibles
  • Utiliser le cryptage AES 256 bits
  • Gestion sécurisée des certificats ou des clés
  • Documentez les clés de chiffrement et stockez-les séparément

10.5 Test et vérification des sauvegardes

10.5.1 Tests de restauration réguliers

Tester les procédures de restauration trimestriellement ou mensuellement :

  1. Restaurer les sauvegardes dans un environnement de test
  2. Vérifier l'intégrité et l'exhaustivité des données
  3. Vérifier la fonctionnalité de l'application
  4. Temps de restauration du document (valider le RTO)
  5. Identifier et résoudre tous les problèmes

10.5.2 Utilisation de RESTORE VERIFYONLY

Automatiser la validation des sauvegardes :

-- Verify backup integrity
RESTORE VERIFYONLY
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO

Exécutez la vérification immédiatement après la fin de la sauvegarde ou dans le cadre d’une maintenance planifiée.

10.6 Automatisation et surveillance des sauvegardes

10.6.1 SQL Server Emplois d'agent

Créer des tâches de sauvegarde automatisées :

  1. Afficher SQL Server AgentLien externe dans SSMS
  2. Faites un clic droit Emplois et sélectionnez New Job
  3. Nommez la tâche (par exemple, « Sauvegarde complète quotidienne »)
  4. Ajouter un Etape avec les commandes de sauvegarde T-SQL
  5. Créer un Horaires pour le temps d'exécution
  6. Configurez Notifications pour le succès/l'échec

10.6.2 Plans de maintenance

SQL Server Les plans de maintenance fournissent une interface visuelle pour l'automatisation de la sauvegarde :

  1. Accédez à la direction -> Plans d'entretien
  2. Faites un clic droit et sélectionnez Assistant de plan de maintenance
  3. Sélectionnez les tâches de sauvegarde à automatiser
  4. Configurer la planification et les options de sauvegarde
  5. Configurer les rapports et la journalisation

10.6.3 Alertes et notifications de sauvegarde

Configurer les notifications par e-mail :

  • Configurer la messagerie de base de données dans SQL Server
  • Créer des alertes en cas d'échec de sauvegarde
  • Surveiller l'historique des tâches de sauvegarde
  • Envoyer des rapports de synthèse aux administrateurs

10.7 Documentation et planification de la reprise après sinistre

Maintenir une documentation complète :

  • Calendrier de sauvegarde : Quand et qu'est-ce qui est sauvegardé
  • Politiques de conservation : Combien de temps les sauvegardes sont-elles conservées ?
  • Lieux de stockage : Où sont stockées les sauvegardes
  • Procédures de restauration : Instructions de récupération étape par étape
  • Coordonnées: Personnel clé et fournisseurs
  • Résultats du test de récupération : Résultats de tests documentés

11. Avancée SQL Server Scénarios de sauvegarde

11.1 Sauvegarde de très grandes bases de données (VLDB)

11.1.1 Stratégies de fichiers et de groupes de fichiers

Pour les bases de données dépassant plusieurs centaines de gigaoctets :

  • Séparez les données en lecture seule et en lecture-écriture dans différents groupes de fichiers
  • Sauvegardez rarement les groupes de fichiers en lecture seule
  • Concentrez les sauvegardes fréquentes sur les groupes de fichiers actifs
  • Utilisez des sauvegardes au niveau des fichiers pour un contrôle granulaire

Exemple de sauvegarde de fichier :

-- Back up specific file
BACKUP DATABASE LargeDB 
FILE = 'LargeDB_Data1'
TO DISK = 'C:\Backups\LargeDB_File1.bak'
WITH COMPRESSION;
GO

11.1.2 Optimisation des performances de sauvegarde

Améliorer les performances de sauvegarde VLDB :

  • Sauvegardes par bandes : Écrire dans plusieurs fichiers simultanément
  • Compression: Réduire les besoins d'E/S et de stockage
  • Plusieurs périphériques de sauvegarde : Paralléliser les opérations de sauvegarde
  • Stockage rapide : Utiliser des disques SSD pour la préparation des sauvegardes
  • Nombre de tampons : Augmenter l'option BUFFERCOUNT
  • Taille de transfert maximale : Optimiser le paramètre MAXTRANSFERSIZE
-- Optimized VLDB backup
BACKUP DATABASE LargeDB
TO DISK = 'C:\Backups\LargeDB_1.bak',
   DISK = 'D:\Backups\LargeDB_2.bak',
   DISK = 'E:\Backups\LargeDB_3.bak'
WITH COMPRESSION,
     BUFFERCOUNT = 100,
     MAXTRANSFERSIZE = 4194304;
GO

11.2 Sauvegarde dans les groupes de disponibilité Always On

Les groupes de disponibilité Always On répartissent la charge de sauvegarde entre les réplicas :

  • Configurer les préférences de sauvegarde (primaire, secondaire ou toute réplique)
  • Déchargez les sauvegardes vers des répliques secondaires pour réduire la charge de travail principale
  • Utiliser les sauvegardes COPY_ONLY sur les réplicas secondaires
  • Surveiller les paramètres de priorité de sauvegarde
-- Check backup preferences
SELECT 
    ag.name AS AvailabilityGroup,
    ar.replica_server_name,
    ar.backup_priority
FROM sys.availability_replicas ar
INNER JOIN sys.availability_groups ag ON ar.group_id = ag.group_id;
GO

11.3 Sauvegarde pour la mise en miroir de la base de données

Dans les scénarios de mise en miroir de bases de données :

  • Sauvegardez régulièrement la base de données principale
  • Les sauvegardes des journaux de transactions sont essentielles pour la mise en miroir
  • La base de données miroir est en état de RESTAURATION (ne peut pas être sauvegardée directement)
  • Envisagez de sauvegarder le miroir après le basculement

11.4 Sauvegarde sur Azure Blob Storage

SQL Server peut sauvegarder directement sur Azure Blob Storage :

  1. Créer un compte de stockage Azure
  2. Créer SQL Server informations d'identification pour l'authentification Azure
  3. Utiliser la syntaxe URL pour la destination de la sauvegarde
-- Create credential for Azure
CREATE CREDENTIAL [https://mystorageaccount.blob.core.windows.net/backups]
WITH IDENTITY = 'SHARED ACCESS SIGNATURE',
SECRET = 'your_SAS_token';
GO

-- Backup to Azure
BACKUP DATABASE AdventureWorks
TO URL = 'https://mystorageaccount.blob.core.windows.net/backups/AdventureWorks.bak'
WITH COMPRESSION,
     STATS = 10;
GO

11.5 Sauvegarde vers l'URL

Avantages de la sauvegarde sur URL :

  • Capacité de stockage cloud illimitée
  • Redondance géographique gérée automatiquement
  • Modèle de tarification à l'utilisation
  • Aucun espace disque local requis
  • Prend en charge jusqu'à 64 URL par sauvegarde (striping)

11.6 Sauvegardes par bandes pour des performances optimales

Les sauvegardes par bandes divisent les données sur plusieurs fichiers pour des E/S plus rapides :

-- Striped backup to 4 files
BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AW_Stripe1.bak',
   DISK = 'D:\Backups\AW_Stripe2.bak',
   DISK = 'E:\Backups\AW_Stripe3.bak',
   DISK = 'F:\Backups\AW_Stripe4.bak'
WITH COMPRESSION, FORMAT;
GO

Remarque : Tous les fichiers de bandes sont requis pour la restauration. L'absence d'un fichier rend la sauvegarde inutilisable.

12. Dépannage SQL Server Problèmes de sauvegarde

12.1 Erreurs de sauvegarde courantes et solutions

Erreur : « Erreur du système d’exploitation 5 : Accès refusé »

  • Cause: SQL Server le compte de service manque d'autorisations
  • Solution: Accorder des autorisations d'écriture à SQL Server compte de service sur le dossier de sauvegarde

Erreur : « Impossible d’ouvrir le périphérique de sauvegarde… Erreur de périphérique ou périphérique hors ligne »

  • Cause: Chemin non valide ou partage réseau indisponible
  • Solution: Vérifier que le chemin existe, vérifier la connectivité réseau, assurer un espace disque suffisant

Erreur : « Espace disque insuffisant »

  • Cause: Espace disque insuffisant pour la sauvegarde
  • Solution: Libérez de l'espace disque, utilisez la compression, sauvegardez vers un emplacement différent

Erreur : « Base de données en cours d’utilisation. La base de données est utilisée par d’autres utilisateurs. »

  • Cause: Connexions actives pendant la restauration
  • Solution: Utilisez l'option AVEC REMPLACER ou déconnectez d'abord les utilisateurs

12.2 Problèmes de performances de sauvegarde

Diagnostiquer les sauvegardes lentes :

  • Vérifier les performances d'E/S du disque à l'aide de Analyseur de performances
  • Surveiller la progression de la sauvegarde avec l'option STATS
  • Évaluation SQL Server journal des erreurs pour les goulots d'étranglement
  • Envisagez la compression pour réduire les E/S
  • Utiliser des sauvegardes réparties sur plusieurs disques

Requête pour surveiller la progression de la sauvegarde :

SELECT 
    session_id,
    command,
    percent_complete,
    CAST(((DATEDIFF(s,start_time,GetDate()))/3600) as varchar) + ' hour(s), '
    + CAST((DATEDIFF(s,start_time,GetDate())%3600)/60 as varchar) + 'min, '
    + CAST((DATEDIFF(s,start_time,GetDate())%60) as varchar) + ' sec' as running_time,
    CAST((estimated_completion_time/3600000) as varchar) + ' hour(s), '
    + CAST((estimated_completion_time %3600000)/60000 as varchar) + 'min, '
    + CAST((estimated_completion_time %60000)/1000 as varchar) + ' sec' as est_time_to_go,
    dateadd(second,estimated_completion_time/1000, getdate()) as est_completion_time
FROM sys.dm_exec_requests 
WHERE command LIKE 'BACKUP%';
GO

12.3 Problèmes d'espace et de stockage

Prévenir les problèmes de stockage :

  • Mettre en œuvre des politiques de conservation : Supprimer automatiquement les anciennes sauvegardes
  • Utiliser la compression : Réduisez la taille du fichier de sauvegarde de 50 à 70 %
  • Archiver vers un stockage moins cher : Déplacer les anciennes sauvegardes vers le stockage d'archives
  • Surveiller l'espace disque : Configurer des alertes en cas de faible espace disque
  • Estimer la taille de la sauvegarde : Calculer la taille attendue avant la sauvegarde

Estimer la taille de la sauvegarde :

-- Estimate full backup size
EXEC sp_spaceused;
GO

12.4 Problèmes d'autorisation et d'accès

Autorisations requises pour les sauvegardes :

  • SAUVEGARDE DE LA BASE DE DONNÉES autorisation
  • opérateur de sauvegarde de base de données appartenance aux rôles
  • sysadmin rôle du serveur (pour toutes les opérations de sauvegarde)

Accorder des autorisations de sauvegarde :

-- Grant backup permission to user
GRANT BACKUP DATABASE TO [BackupUser];
GRANT BACKUP LOG TO [BackupUser];
GO

-- Add user to backup operator role
ALTER ROLE db_backupoperator ADD MEMBER [BackupUser];
GO

12.5 Fichiers de sauvegarde corrompus

Détecter et gérer les sauvegardes corrompues :

Vérifier l’intégrité de la sauvegarde :

RESTORE VERIFYONLY 
FROM DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM;
GO

Activer CHECKSUM pour les sauvegardes futures :

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH CHECKSUM, INIT;
GO

Stratégies de prévention :

  • Utilisez toujours l'option CHECKSUM pendant la sauvegarde
  • Vérifier les sauvegardes immédiatement après leur création
  • Les tests se restaurent régulièrement
  • Stockez les sauvegardes sur un stockage fiable
  • Conserver plusieurs copies de sauvegarde

12.6 Récupérer les données à partir de fichiers de sauvegarde corrompus

Si vos fichiers de sauvegarde sont corrompus et que vous souhaitez toujours récupérer des données, vous pouvez utiliser des outils tiers tels que DataNumen SQL Recovery, comme ci-dessous :

  1. Start DataNumen SQL Recovery.
  2. Sélectionnez le fichier de sauvegarde corrompu comme fichier source en modifiant le filtre sur « Tous les fichiers (*.*) » :
    Sélectionnez le fichier de sauvegarde corrompu (*.bak) comme fichier source à récupérer.
  3. Définissez le fichier de sortie .MDF si nécessaire.
  4. Cliquez sur "Start Recovery” et suivez les instructions pour récupérer la base de données.
  5. Après le processus de récupération, une nouvelle base de données de récupération apparaîtra dans SQL Server qui contient toutes les données récupérées.

Utilisez le  DataNumen SQL Recovery pour récupérer des données corrompues SQL Server fichier de sauvegarde (*.bak).

13. SQL Server Sécurité de sauvegarde

13.1 Sécurisation des fichiers de sauvegarde

Protégez les fichiers de sauvegarde contre tout accès non autorisé :

  • Autorisations du système de fichiers : Restreindre l'accès aux seuls administrateurs autorisés
  • Sécurité du réseau: Utiliser des protocoles sécurisés pour les sauvegardes réseau
  • Sécurité physique: Stockez les supports de sauvegarde dans des endroits sécurisés
  • Journalisation des accès : Auditer l'accès aux fichiers de sauvegarde

13.2 Options de cryptage

SQL Server prend en charge le cryptage de sauvegarde transparent :

Créer un certificat pour le chiffrement :

-- Create master key
USE master;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'StrongP@ssw0rd!';
GO

-- Create certificate
CREATE CERTIFICATE BackupCertificate
WITH SUBJECT = 'Database Backup Certificate',
EXPIRY_DATE = '2026-12-31';
GO

Sauvegarde cryptée :

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks_Encrypted.bak'
WITH COMPRESSION,
     ENCRYPTION (
         ALGORITHM = AES_256,
         SERVER CERTIFICATE = BackupCertificate
     );
GO

Important : Sauvegardez séparément le certificat et la clé privée. Sans eux, les sauvegardes chiffrées ne peuvent pas être restaurées.

-- Backup certificate
BACKUP CERTIFICATE BackupCertificate
TO FILE = 'C:\Certificates\BackupCertificate.cer'
WITH PRIVATE KEY (
    FILE = 'C:\Certificates\BackupCertificate.key',
    ENCRYPTION BY PASSWORD = 'C3rt!f!c@t3P@ss'
);
GO

13.3 Contrôle d'accès et autorisations

Mettre en œuvre le principe du moindre privilège :

  • Accorder des autorisations de sauvegarde uniquement aux comptes nécessaires
  • Utiliser des comptes distincts pour les opérations de sauvegarde et de restauration
  • Évitez d'utiliser le compte sa pour les sauvegardes
  • Auditer régulièrement les autorisations de sauvegarde
  • Supprimer les autorisations lorsqu'elles ne sont plus nécessaires

13.4 Considérations relatives à la conformité

Répondre aux exigences réglementaires :

  • GDPR: Chiffrer les sauvegardes contenant des données personnelles, mettre en œuvre des politiques de conservation
  • HIPAA : Chiffrer les PHI dans les sauvegardes, contrôler l'accès, maintenir les pistes d'audit
  • PCI DSS : Crypter les sauvegardes de données des titulaires de carte, sécuriser le stockage des sauvegardes
  • SOx : Maintenir l'intégrité des sauvegardes et les politiques de conservation des documents

14. Surveillance et maintenance des opérations de sauvegarde

14.1 Suivi de l'historique de sauvegarde

SQL Server stocke l'historique des sauvegardes dans la base de données msdb :

-- View recent backup history
SELECT 
    bks.database_name,
    bks.backup_start_date,
    bks.backup_finish_date,
    CASE bks.type
        WHEN 'D' THEN 'Full'
        WHEN 'I' THEN 'Differential'
        WHEN 'L' THEN 'Log'
        ELSE 'Other'
    END AS backup_type,
    bks.backup_size / 1024 / 1024 AS backup_size_mb,
    bkmf.physical_device_name
FROM msdb.dbo.backupset bks
INNER JOIN msdb.dbo.backupmediafamily bkmf ON bks.media_set_id = bkmf.media_set_id
WHERE bks.backup_start_date >= DATEADD(DAY, -7, GETDATE())
ORDER BY bks.backup_start_date DESC;
GO

Rechercher des bases de données sans sauvegardes récentes :

SELECT 
    d.name AS database_name,
    MAX(bs.backup_finish_date) AS last_backup_date,
    DATEDIFF(DAY, MAX(bs.backup_finish_date), GETDATE()) AS days_since_last_backup
FROM sys.databases d
LEFT JOIN msdb.dbo.backupset bs ON d.name = bs.database_name
WHERE d.database_id > 4  -- Exclude system databases
GROUP BY d.name
HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE())
    OR MAX(bs.backup_finish_date) IS NULL
ORDER BY last_backup_date;
GO

14.2 Utilisation SQL Server Rapports

SQL Server Management Studio inclut des rapports de sauvegarde intégrés :

  1. Cliquez avec le bouton droit sur la base de données dans l'Explorateur d'objets
  2. Choisir Rapports -> Rapports standard
  3. Choisissez parmi les rapports disponibles :
    • Événements de sauvegarde et de restauration
    • Toutes les sauvegardes
    • Journal des transactions Statut d'expédition

14.3 Outils de surveillance tiers

Solutions de surveillance commerciale :

  • Sentinelle SQL : Surveillance et alerte complètes
  • Moniteur SQL Redgate : Surveillance et diagnostic en temps réelostics
  • Analyseur de performances de base de données SolarWinds : Surveillance des performances et des sauvegardes
  • Diagnostic SQL IderaostGestionnaire ic : Validation et alerte de sauvegarde

14.4 Vérifications de l'état de sauvegarde

Créer une procédure de contrôle de santé :

-- Backup health check procedure
CREATE PROCEDURE sp_BackupHealthCheck
AS
BEGIN
    -- Check for databases without recent full backup
    SELECT 
        'Missing Recent Full Backup' AS issue,
        d.name AS database_name,
        ISNULL(CAST(MAX(bs.backup_finish_date) AS VARCHAR), 'Never') AS last_backup
    FROM sys.databases d
    LEFT JOIN msdb.dbo.backupset bs 
        ON d.name = bs.database_name AND bs.type = 'D'
    WHERE d.database_id > 4
    GROUP BY d.name
    HAVING MAX(bs.backup_finish_date) < DATEADD(DAY, -7, GETDATE()) OR MAX(bs.backup_finish_date) IS NULL; -- Check for failed backup jobs SELECT 'Failed Backup Job' AS issue, j.name AS job_name, jh.run_date, jh.run_time, jh.message FROM msdb.dbo.sysjobs j INNER JOIN msdb.dbo.sysjobhistory jh ON j.job_id = jh.job_id WHERE jh.run_status = 0 -- Failed AND jh.step_id = 0 AND jh.run_date >= CONVERT(INT, CONVERT(VARCHAR, GETDATE()-7, 112))
        AND j.name LIKE '%backup%';
END
GO

15. SQL Server FAQ sur la sauvegarde

15.1 À quelle fréquence dois-je effectuer une sauvegarde ? SQL Server?

La fréquence de sauvegarde dépend de votre objectif de point de récupération (RPO) :

  • Bases de données de production critiques : Complètement hebdomadaire, différentiel quotidien, journal toutes les 15 à 30 minutes
  • Bases de données de production standard : Complètement hebdomadaire, différentiel quotidien, journal toutes les 1 à 2 heures
  • Bases de données de développement : Complète quotidienne ou hebdomadaire
  • Bases de données en lecture seule : Complet après chaque modification de données

15.2 Quelle est la différence entre une sauvegarde complète et une sauvegarde différentielle ?

Une sauvegarde complète copie l'intégralité de la base de données, tandis qu'une sauvegarde différentielle ne capture que les modifications depuis la dernière sauvegarde complète. Les sauvegardes différentielles sont plus petites et plus rapides, mais nécessitent une sauvegarde complète de base pour la restauration.

15.3 Puis-je effectuer une sauvegarde SQL Server Pendant qu'il fonctionne ?

Oui, SQL Server Prend en charge les sauvegardes en ligne. Les utilisateurs peuvent continuer à travailler pendant les opérations de sauvegarde. SQL Server utilise son journal de transactions pour maintenir la cohérence, garantissant que les sauvegardes sont valides même avec des modifications simultanées.

15.4 Combien de temps dure SQL Server Prendre une sauvegarde ?

La durée de la sauvegarde varie en fonction de :

  • Taille de la base de données : Les bases de données plus volumineuses prennent plus de temps
  • Type de sauvegarde : Les sauvegardes complètes prennent plus de temps
  • Compression: Peut augmenter le temps CPU mais réduire la durée globale
  • Vitesse de stockage : Les SSD sont nettement plus rapides que les disques durs
  • Charge du serveur : Une activité plus élevée ralentit les sauvegardes

Plages typiques : une base de données de 10 Go peut prendre 5 à 15 minutes pour une sauvegarde complète avec compression sur du matériel moderne.

15.5 Où dois-je stocker SQL Server Des sauvegardes ?

Meilleure pratique : suivez la règle 3-2-1 :

  • 3 des copies de vos données
  • 2 différents types de stockage (par exemple, disque et bande/cloud)
  • 1 copie hors site

Emplacements recommandés :

  • Disque local pour une récupération rapide
  • Stockage réseau pour une gestion centralisée
  • Stockage cloud (Azure, AWS) pour la reprise après sinistre

15.6 Quelle est l'extension de fichier .bak ?

L'extension .bak est l'extension de fichier par défaut pour SQL Server fichiers de sauvegarde. C'est une convention, pas une obligation. SQL Server Les sauvegardes fonctionnent avec n'importe quelle extension de fichier. Cependant, l'extension .bak facilite l'identification des fichiers de sauvegarde et constitue une pratique courante dans le secteur.

15.7 Comment effectuer une sauvegarde SQL Server vers un lecteur réseau ?

Pour sauvegarder sur un lecteur réseau :

  1. Qu'on Assure SQL Server le compte de service dispose d'autorisations d'écriture sur le partage réseau
  2. Utiliser le chemin UNC dans la commande de sauvegarde : \\ServerName\ShareName\BackupFile.bak
  3. Tester la connectivité avant de planifier des sauvegardes automatisées
BACKUP DATABASE AdventureWorks
TO DISK = '\\BackupServer\SQLBackups\AdventureWorks.bak'
WITH COMPRESSION, INIT;
GO

15.8 Puis-je compresser SQL Server Des sauvegardes ?

Oui, SQL Server prend en charge la compression de sauvegarde native (Enterprise Edition ou Standard Edition starting SQL Server 2016 SP1). La compression réduit généralement la taille des sauvegardes de 50 à 70 % et diminue souvent le temps de sauvegarde en réduisant les E/S, bien qu'elle augmente l'utilisation du processeur.

BACKUP DATABASE AdventureWorks
TO DISK = 'C:\Backups\AdventureWorks.bak'
WITH COMPRESSION;
GO

16. Conclusion

16.1 À emporter

Efficace à partir de SQL Server Les stratégies de sauvegarde protègent vos données et assurent la continuité de vos activités. Gardez ces points essentiels à l'esprit :

  • Comprendre les types de sauvegarde : Choisissez les types de sauvegarde appropriés (complet, différentiel, journal des transactions) en fonction de vos besoins de récupération
  • Sélectionnez le modèle de récupération approprié : Récupération complète des données critiques, simple pour les bases de données de développement
  • Mettre en œuvre la planification de sauvegarde : Des sauvegardes complètes régulières combinées à des sauvegardes différentielles et de journaux minimisent la perte de données
  • Tester les procédures de restauration : Les sauvegardes ne sont utiles que si elles peuvent être restaurées avec succès
  • Automatiser et surveiller : Utilisez le SQL Server Agent, plans de maintenance et outils de surveillance
  • Sauvegardes sécurisées : Crypter les données sensibles et contrôler l'accès aux fichiers de sauvegarde
  • Stocker des copies hors site : Protégez-vous contre les catastrophes à l'échelle du site grâce au stockage cloud ou distant
  • Documentez tout : Maintenir une documentation claire des procédures de sauvegarde et de récupération

16.2 Prochaines étapes et ressources

Pour améliorer votre SQL Server implémentation de sauvegarde :

  • Évaluez votre stratégie de sauvegarde actuelle par rapport aux meilleures pratiques
  • Calculez vos besoins en RTO et RPO
  • Tester les procédures de restauration sur les systèmes hors production
  • Revoir et mettre à jour régulièrement les calendriers de sauvegarde
  • Mettre en œuvre une surveillance et des alertes automatisées
  • Former les membres de l'équipe aux procédures de restauration

Ressources supplémentaires:

  • Microsoft SQL Server Documentation : Guide officiel de sauvegarde et de restauration
  • SQL Server Forums communautaires de sauvegarde : partage d'expériences et de solutions
  • Certifications professionnelles : Microsoft Certified : Azure Database Administrator Associate

16.3 Outils et solutions recommandés

Basé sur différents scénarios :

Petites entreprises

  • Originaire SQL Server sauvegarde planifiée SQL Server Emplois d'agent
  • SQLBackupAndFTP pour l'intégration cloud
  • Sauvegarde Azure pour SQL Server

Moyennes entreprises :

  • SQL Server Plans d'entretien
  • Outils tiers comme Redgate SQL Backup Pro
  • Veeam Backup pour SQL Server

Grandes entreprises :

  • Quest LiteSpeed ​​pour une compression maximale
  • Commvault ou Veritas NetBackup pour la gestion des sauvegardes d'entreprise
  • Groupes de disponibilité permanente pour une haute disponibilité

SQL Server La sauvegarde est essentielle à l'administration des bases de données. Grâce à une planification, une mise en œuvre et des tests appropriés, vous pouvez garantir la protection et la récupération de vos données en cas de besoin.tarmettre en œuvre ces meilleures pratiques dès aujourd'hui pour sécuriser votre SQL Server bases de données.


À propos de l’auteur

Yuan Sheng est un administrateur de base de données senior (DBA) avec plus de 10 ans d'expérience dans SQL Server Environnements et gestion de bases de données d'entreprise. Il a résolu avec succès des centaines de scénarios de récupération de bases de données dans des organisations du secteur financier, de la santé et de l'industrie manufacturière.

Yuan se spécialise dans SQL Server Récupération de bases de données, solutions de haute disponibilité et optimisation des performances. Sa vaste expérience pratique comprend la gestion de bases de données de plusieurs téraoctets, la mise en œuvre de groupes de disponibilité permanente (AAL) et le développement de stratégies automatisées de sauvegarde et de restauration pour les systèmes d'entreprise critiques.

Grâce à son expertise technique et à son approche pratique, Yuan se concentre sur la création de guides complets qui aident les administrateurs de bases de données et les professionnels de l'informatique à résoudre des problèmes complexes. SQL Server défis efficacement. Il se tient au courant des dernières SQL Server les versions et les technologies de base de données en constante évolution de Microsoft, testant régulièrement des scénarios de récupération pour garantir que ses recommandations reflètent les meilleures pratiques du monde réel.

Vous avez des questions sur SQL Server Besoin d'aide pour la récupération de votre base de données ? Yuan vous accueille. commentaires et suggestions pour améliorer ces ressources techniques.

Partage maintenant: