SQL Server : sauvegarde à froid des bases master, msdb et model

SQL Server : sauvegarde à froid des bases master, msdb et modelLes bases master, msdb et model sont des bases critiques pour SQL Server. S’il est assez facile de remplacer la base model par celle provenant d’une autre installation de la version SQL server installée sur votre machine, il n’en est pas de même pour master et msdb. La base master contient des informations liées à l’installation et la configuration de l’instance, les comptes de connexions à l’instance. Quant à msdb, elle contient les plans de maintenance et les travaux.

Avant de mettre en production votre base, je vous conseille de réaliser une sauvegarde à froid des fichiers liés à ces bases à l’aide de ce script PowerShell :

Clear-Host
#L'instruction  Invoke-Sqlcmd exécutera la requête dans le contexte défini par Set-Location
Set-Location SQLSERVER:\SQL\CHEZNOI\DSFC
[String]$sql="
    SELECT
        physical_name as path
    FROM
        sys.databases AS db
        INNER JOIN sys.master_files AS mf ON db.database_id=mf.database_id
    WHERE 
        db.name IN ('master','msdb','model')
"
$files=Invoke-Sqlcmd -Query $sql
#Arrêt des services pour pouvoir procéder à la copie consistante des fichiers
[String]$sqlagent='SQLAgent$DSFC'
[String]$mssql='MSSQL$DSFC'
Stop-Service -Name $sqlagent -Force:$true
Stop-Service -Name $mssql -Force:$true
#Copie de l'emplacement d'origine et des fichiers des bases master, msdb, model
[String]$destination='d:\sauve'
$files|Export-Csv -Path "$destination\emplacements.csv" -Force:$true -NoTypeInformation
foreach($file in $files)
{
    Copy-Item -Path ($file).path -Destination $destination -Force:$true
}
#Redémarrage des services
Start-Service -Name $mssql
Start-Service -Name $sqlagent
#Nettoyage des objets PowerShell
$file=$null
$files=$null

Base de données  / PowerShell SQL Server