in

Script par lots pour sauvegarder toutes vos bases de données SQL Server

Nous avons déjà expliqué comment sauvegarder une base de données SQL Server à partir de la ligne de commande, que faire si vous souhaitez sauvegarder toutes vos bases de données à la fois? Vous pouvez créer un script batch qui exécute la commande de sauvegarde pour chaque base de données, mais ce script devra être mis à jour chaque fois qu’une base de données est ajoutée ou supprimée. De plus, les sauvegardes de la base de données seront toutes ajoutées à un fichier qui augmentera de la taille de la nouvelle sauvegarde à chaque exécution. Au lieu de cela, dans le vrai mode «définissez-le et oubliez-le», nous créerons un script batch qui s’adaptera à votre serveur SQL à mesure que de nouvelles bases de données seront ajoutées et supprimées.

Pour aller droit au but, voici le script de sauvegarde:

@ÉCHO OFF
SETLOCAL

REM Obtenir la date au format AAAA-MM-JJ (en supposant que les paramètres régionaux sont les États-Unis)
FOR / F « tokens = 1,2,3,4 delims = / » %% A IN (‘Date / T’) DO SET NowDate = %% D – %% B – %% C

REM Construire une liste de bases de données à sauvegarder
SET DBList =% SystemDrive% SQLDBList.txt
SqlCmd -E -S MyServer -h-1 -W -Q “SET NoCount ON; CHOISIR le nom FROM master.dbo.sysDatabases WHERE [Name] NOT IN (‘maître’, ‘modèle’, ‘msdb’, ‘tempdb’) »>«% DBList% »

REM Sauvegardez chaque base de données, en ajoutant la date au nom du fichier
FOR / F « tokens = * » %% I IN (% DBList%) DO (
ECHO Sauvegarde de la base de données: %% I
SqlCmd -E -S MyServer -Q « BASE DE DONNÉES DE SAUVEGARDE [%%I] TO Disk = ‘D: Backup% NowDate% _ %% I.bak’ »
ÉCHO.
)

REM Nettoyer le fichier temporaire
IF EXIST « % DBList% » DEL / F / Q « % DBList% »

ENDLOCAL

En supposant que la date est le 13/01/2009 et que vous disposez de 3 bases de données nommées ‘MyDB’, ‘AnotherDB’ et ‘DB Name with Spaces’, le script produira 3 fichiers à l’emplacement de sauvegarde spécifié:

  • 2009-01-13_AnotherDB.bak
  • 2009-01-13_DB Nom avec Spaces.bak
  • 2009-01-13_MyDB.bak

Personnalisation et exécution du script batch

Bien sûr, vous souhaiterez personnaliser le script en fonction de votre environnement, alors voici ce que vous devez faire:

  • Si les paramètres régionaux de votre appareil ne sont pas définis sur les États-Unis, la commande ‘Date / T’ peut ne pas renvoyer la date au format «Tue 01/13/2009». Si tel est le cas, la variable NowDate ne produira pas le format souhaité et doit être ajustée. (1 place)
  • Remplacez «MyServer» par le nom de votre serveur SQL (ajoutez le nom de l’instance le cas échéant). (2 places)
  • Les bases de données nommées «master», «model», «msdb» et «tempdb» sont des bases de données fournies avec SQL Server. Vous pouvez ajouter des noms de base de données supplémentaires à cette liste si vous ne souhaitez pas qu’ils soient sauvegardés. (1 place)
  • Changez l’emplacement de sauvegarde de «D: Backup» à l’emplacement où vous souhaitez stocker les fichiers de sauvegarde de la base de données.

Une fois que vous avez personnalisé le script de commandes, planifiez-le pour qu’il s’exécute via le Planificateur de tâches Windows en tant qu’utilisateur avec des droits d’administrateur et vous êtes prêt.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Comment épingler des widgets au centre de notifications avec Siri dans macOS Sierra

Comment épingler des widgets au centre de notifications avec Siri dans macOS Sierra

Comment surveiller les niveaux d'humidité dans votre maison

Comment surveiller les niveaux d’humidité dans votre maison