SQL Server : sauvegarde à froid des bases master, msdb et model
Les 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