Planifier et automatiser les sauvegardes de bases de données SQL Server dans SQL Server Express

Cet article explique comment utiliser un script Transact-SQL ainsi que le Planificateur de tâches de Windows pour automatiser les sauvegardes de bases de données SQL Server Express sur une base planifiée.

Version du produit d’origine : SQL Server
Numéro de l’article d’origine dans la base de connaissances : 2019698

Résumé

Les éditions de SQL Server Express ne permettent pas de planifier des travaux ou des plans de maintenance, car le composant Agent SQL Server n’est pas inclus dans ces éditions. Par conséquent, vous devez adopter une approche différente pour sauvegarder vos bases de données lorsque vous utilisez ces éditions.

Actuellement, les utilisateurs de SQL Server Express peuvent sauvegarder leurs bases de données à l’aide de l’une des méthodes suivantes :

Utilisez SQL Server Management Studio ou Azure Data Studio. Pour plus d’informations sur l’utilisation de ces outils pour sauvegarder une base de données, consultez les liens suivants :

Cet article explique comment utiliser un script Transact-SQL avec le Planificateur de tâches pour automatiser les sauvegardes de bases de données SQL Server Express sur une base planifiée.

Remarque

Cela s’applique uniquement aux éditions express de SQL Server et non à SQL Server Express LocalDB.

Plus d’informations

Vous devez suivre les quatre étapes suivantes pour sauvegarder vos bases de données SQL Server à l’aide du Planificateur de tâches de Windows :

Étape A : Créer une procédure stockée pour sauvegarder vos bases de données.

Connectez-vous à votre instance SQL Express et créez une procédure stockée sp_BackupDatabases dans votre base de données master utilisant le script situé à l’emplacement suivant :

SQL_Express_Backups

Étape B : téléchargez l’outil SQLCMD (le cas échéant).

L’utilitaire sqlcmd vous permet d’entrer des instructions Transact-SQL, des procédures système et des fichiers de script. Dans SQL Server version 2014 et inférieures, l’utilitaire est livré avec le produit. À partir SQL Server 2016, sqlcmd est proposé en téléchargement séparé. Pour plus d’informations, consultez Utilitaire sqlcmd.

Étape C : Créer un fichier de commandes à l’aide d’un éditeur de texte.

Dans un éditeur de texte, créez un fichier de commandes nommé Sqlbackup.bat, puis copiez le texte de l’un des exemples suivants dans ce fichier, en fonction de votre scénario :

  • Tous les scénarios ci-dessous utilisent D:\SQLBackups en guise d’espace réservé. Le script doit être adapté à l’emplacement du lecteur et du dossier de sauvegarde appropriés dans votre environnement.

  • Si vous utilisez l’authentification SQL, assurez-vous que l’accès au dossier est limité aux utilisateurs autorisés, car les mots de passe sont stockés en texte clair.

Remarque

Le dossier de la version exécutable de SQLCMD se trouve généralement dans les variables de chemins d’accès du serveur après l’installation de SQL Server ou après une installation en tant qu’outil autonome. Toutefois, si la variable de chemin d’accès ne répertorie pas ce dossier, vous pouvez ajouter son emplacement à la variable de chemin d’accès ou spécifier le chemin d’accès complet à l’utilitaire.

Exemple 1 : Sauvegardes complètes de toutes les bases de données dans l’instance nommée locale de SQLEXPRESS à l’aide de l’authentification Windows.

 // Sqlbackup.bat
 sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @backupType='F'"

Exemple 2 : Sauvegardes différentielles de toutes les bases de données dans l’instance nommée locale de SQLEXPRESS à l’aide d’un SQLLogin et de son mot de passe.

 // Sqlbackup.bat
sqlcmd -U <YourSQLLogin> -P <StrongPassword> -S .\SQLEXPRESS -Q "EXEC sp_BackupDatabases  @backupLocation ='D:\SQLBackups', @BackupType='D'"

Remarque

SQLLogin doit disposer au moins du rôle Opérateur de sauvegarde dans SQL Server.

Exemple 3 : Sauvegardes de journal de toutes les bases de données dans l’instance nommée locale de SQLEXPRESS à l’aide de l’authentification Windows

 // Sqlbackup.bat
 sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\',@backupType='L'"

Exemple 4 : Sauvegardes complètes de la base de données USERDB dans l’instance nommée locale de SQLEXPRESS à l’aide de l’authentification Windows

 // Sqlbackup.bat
 sqlcmd -S .\SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @backupLocation='D:\SQLBackups\', @databaseName='USERDB', @backupType='F'"

De même, vous pouvez faire une Sauvegarde différentielle de USERDB en collant en ’D’ pour le paramètre @backupType et une Sauvegarde logarithmique de USERDB en collant en ’L’ pour le @backupType paramètre.

Étape D : Planifiez un travail à l’aide du Planificateur de tâches de Windows pour exécuter le fichier de commandes que vous avez créé à l’étape B. Pour ce faire, procédez comme suit :

  1. Sur l’ordinateur qui exécute SQL Server Express, cliquez sur Démarrer, puis dans la zone de texte, tapez Planificateur de tâches.

    Capture d’écran de l’option d’application de bureau Planificateur de tâches dans la barre de recherche du menu Démarrer.

  2. Sous Meilleure correspondance, cliquez sur Planificateur de tâches pour le lancer.

  3. Dans le Planificateur de tâches, faites un clic droit sur Bibliothèque de planification de tâches et cliquez sur Créer une tâche de base….

  4. Entrez le nom de la nouvelle tâche (par exemple : SQLBackup), puis cliquez sur Suivant.

  5. Sélectionnez Quotidien pour le déclencheur de tâche et cliquez sur Suivant.

  6. Définissez la récurrence sur un jour et cliquez sur Suivant.

  7. Sélectionnez Démarrer un programme comme action et cliquez sur Suivant.

  8. Cliquez sur Parcourir, sélectionnez le fichier de commandes que vous avez créé à l’étape C, puis cliquez sur Ouvrir.

  9. Cochez la case Ouvrir les propriétés de cette tâche quand j’aurai cliqué sur Terminer.

  10. Dans l’onglet Général,

    1. Passez en revue les options de sécurité et assurez-vous des éléments suivants pour le compte d’utilisateur exécutant la tâche (répertoriés sous Lors de l’exécution de la tâche, utilisez le compte d’utilisateur suivant :)

      Le compte doit disposer au moins des autorisations de lecture et d’exécution pour lancer l’utilitaire sqlcmd. De plus,

      • Si vous utilisez l’authentification Windows dans le fichier de commandes, vérifiez que le propriétaire de la tâche dispose des autorisations requises pour effectuer des sauvegardes SQL.

      • Si vous utilisez l’authentification SQL dans le fichier de commandes, l’utilisateur SQL doit disposer des autorisations nécessaires pour effectuer des sauvegardes SQL.

    2. Réglez les autres paramètres en fonction de vos besoins.

Conseil

En guise de test, exécutez le fichier de commandes de l’étape C à partir d’une invite de commandes démarrée avec le compte d’utilisateur propriétaire de la tâche.

Tenez compte des éléments suivants lorsque vous utilisez la procédure décrite dans cet article :

  • Le service du Planificateur de tâches doit être en cours d’exécution au moment où le travail est planifié pour s’exécuter. Nous vous recommandons de définir le type de démarrage de ce service sur Automatique. Cela garantit que le service s’exécute même lors d’un redémarrage.

  • Le lecteur sur lequel les sauvegardes sont écrites doit avoir beaucoup d’espace. Nous vous recommandons de nettoyer régulièrement les anciens fichiers du dossier de sauvegarde pour vous assurer de ne pas manquer d’espace disque. Le script ne contient pas la logique permettant de nettoyer les anciens fichiers.

Références complémentaires

Vue d’ensemble du Planificateur de tâches