Retrouver le dossier par défaut des sauvegardes des bases de données sous SQL Server 2005 et suivants

Voyons comment retrouver le dossier dans lequel sont stockés par défaut les sauvegardes de vos bases de données de deux façons :

– Avec SQL Server Management Studio
– Avec procédure stockée étendue non documentée xp_instance_regread

En effet avec SQL Server Management Studio, on peut bien retrouver où seront, par défaut, stockés les fichiers de la base de données, mais pas leurs sauvegardes :

Si nous regardons dans les Propriétés/Properties de l’instance :

en ouvrant la page « Database Settings »/ »Options », nous obtenons :

C’est en fait dans ce dossier que les fichiers de sauvegarde seront stockés par défaut.
Un petit manque de précision de Microsoft !

Le chemin du dossier est également stocké dans la base de registres, sous la clé suivante :

HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer pour la valeur BackupDirectory.

On peut donc s’amuser à la rechercher à l’aide du bien connu Regedit, mais on peut aussi l’obtenir à l’aide d’une procédure étendue système non documentée qui permet de lire les valeurs stockées dans la base de registres : xp_instance_regread


EXEC master.dbo.xp_instance_regread
N’HKEY_LOCAL_MACHINE’,
N’Software\Microsoft\MSSQLServer\MSSQLServer’,
N’BackupDirectory’

Nous retourne également :

En effet si vous exécutons l’instruction suivante :


BACKUP DATABASE ELSUKET
TO
DISK = ‘ELSUKET.bak’
*

Et que nous explorons le système de gestion de fichiers :

Malheureusement pour changer de dossier, nous n’avons que les deux solutions suivantes :

– Spécifier dans l’instruction BACKUP, le chemin complet du dossier qui recevra les fichiers de sauvegardes de bases de données
– Modifier la valeur de la clé de registre citée plus haut

Bonnes sauvegardes !

ElSüket ;)

3 réflexions au sujet de « Retrouver le dossier par défaut des sauvegardes des bases de données sous SQL Server 2005 et suivants »

  1. SELECT TOP 1 @backupdir = QUOTENAME(LEFT(physical_device_name, LEN(physical_device_name) – CHARINDEX( », REVERSE(physical_device_name))))
    FROM msdb.dbo.backupset AS bs
    JOIN msdb.dbo.backupmediafamily AS bf
    ON bs.media_set_id = bf.media_set_id
    WHERE bs.database_name = base_de_donnees_concernee
    ORDER BY bs.backup_finish_date DESC;

    ++

  2. Encore une une méthode pour compléter :-). En effet il arrive certaines fois de ne pas retrouver le chemin par défaut avec la procédure xp_instance_readreg. Dand ce cas par script je tente de retrouver le dernier path de la dernière sauvegarde pour la base de données concernant. Bien entendu cela suppose qu’au moins une sauvegarde ait été initiée.

    SELECT TOP 1 @backupdir = QUOTENAME(LEFT(physical_device_name, LEN(physical_device_name) – CHARINDEX( », REVERSE(physical_device_name))))
    FROM msdb.dbo.backupset AS bs
    JOIN msdb.dbo.backupmediafamily AS bf
    ON bs.media_set_id = bf.media_set_id
    WHERE bs.database_name =
    ORDER BY bs.backup_finish_date DESC;

    ++

Laisser un commentaire