Comment automatiser une sauvegarde d'une base de données SQL Server Express

Cet article est destiné aux utilisateurs qui utilisent XPressEntry avec un moteur de base de données SQL Server Express et souhaitent automatiser la sauvegarde de leur base de données. Ce n'est pas pour les utilisateurs qui ont un backend Production SQL Server complet ou pour les utilisateurs qui planifient des sauvegardes de l'ensemble de l'environnement Windows. Les bases de données de production SQL Server disposent d'un outil plus simple via le module Maintenance de SQL Server Management Studio.

Ces instructions sont basées sur cet article Microsoft (https://docs.microsoft.com/en-us/troubleshoot/sql/admin/schedule-automate-backup-database) mais est adapté à XPressEntry. Téléchargez les liens à partir des instructions ci-dessous, plutôt que dans l'article Microsoft, car certains des téléchargements ont été mis à jour.

Pour commencer à automatiser votre sauvegarde, téléchargez la procédure stockée SQL suivante: https://raw.githubusercontent.com/microsoft/mssql-support/master/sample-scripts/backup_restore/SQL_Express_Backups.sql

Exécutez cette commande sql sur votre base de données master. Il créera une procédure stockée qui sauvegardera votre base de données lorsqu'elle sera appelée.

Si vous utilisez SQL Express 2016 ou une version ultérieure, téléchargez et installez ce https://docs.microsoft.com/en-us/sql/tools/sqlcmd-utility. Les versions antérieures peuvent ignorer cette étape, car elle était incluse dans l'installation SQL par défaut.

Ouvrez le bloc-notes ou votre éditeur de texte préféré. Collez-y la ligne suivante.

sqlcmd -S  . \ SQLEXPRESS -E -Q "EXEC sp_BackupDatabases @ databaseName = 'XPressEntry', @ backupLocation = 'C: \ SQLBackups \', @ backupType = 'F'"

Mettez à jour la ligne ci-dessus dans votre éditeur de texte avec les informations suivantes.

. \ SQLEXPRESS - Remplacez-le par votre SQLMachineName \ Instance.
@ databaseName = 'YourDatabaseName' XPressEntry est la valeur par défaut.
@ backupLocation = 'Remplacez par le chemin de votre dossier où les sauvegardes seront stockées'
@ backupType = 'F' F pour sauvegarde complète, D pour sauvegarde différentielle

Enregistrez ce fichier sous XPressEntryBackup.bat dans un endroit où il ne sera pas supprimé accidentellement.

Dans Windows, ouvrez le Planificateur de tâches. Créez une nouvelle tâche qui exécutera un programme.

Créer une tâche

Sélectionnez l'utilisateur sous lequel la tâche sera exécutée. Cet utilisateur doit disposer des autorisations de sauvegarde appropriées dans votre base de données SQL Server ou des droits d'administrateur système. Cet utilisateur aura également besoin d'autorisations d'écriture de fichier sur l'emplacement de sauvegarde.

Ensuite, sélectionnez la fréquence d'exécution de la tâche.

Tâche de déclenchement

Enfin, sélectionnez l'action que la tâche doit entreprendre. Cliquez sur l'onglet "Actions", puis sur le bouton "Nouveau", et enfin accédez à l'emplacement où vous avez enregistré XPressEntryBackup.bat

Action de tâche

Créez la tâche et entrez le mot de passe du compte utilisateur sous lequel la tâche s'exécute. Testez la tâche en la sélectionnant dans la liste des tâches, en cliquant dessus avec le bouton droit de la souris et en sélectionnant Exécuter. Il doit créer une sauvegarde de votre base de données SQL Server avec l'horodatage de la sauvegarde.