Expérience
Réduire la taille des bases SQL Server (pour les fainéants)
Contexte
Il arrive d’être confronté à une machine serveur de bases de données MS SQL Server ne disposant plus d’espace disque.
Dans ce cas, une solution consiste à réduire (Shrinker pour les franglais) les bases de données et leurs logs.
C’est réalisable, entre autre, par :
- L’interface de MS SQL Server Management Studio (base par base)
- Une requête SQL (massivement, mais il faut être polyglotte en SQL)
- Une commande PowerShell de 2 lignes (massivement, pour les fainéants comme moi)
Je vous propose donc la troisième solution…
Mode opératoire
Ici sont décrites les étapes pour effectuer l’opération de réduction sur toutes les bases de données d’une instance en PowerShell
- Ouvrir SQL Server Management Studio.
- Se connecter à l’instance de base de données souhaitée
- Demander l’affichage de la console PowerShell, par un clic droit sur le nœud Bases de données (Attention : c’est très important de procéder depuis ce nœud)
- Saisir alors les lignes de commandes suivantes :
dir | %{$_.Shrink(0, [Microsoft.SqlServer.Management.Smo.ShrinkMethod]::Default)}
dir | %{$_.LogFiles | %{$_.Shrink(0, [Microsoft.SqlServer.Management.Smo.ShrinkMethod]::Default)}}
La première ligne réduit les données
La seconde ligne réduit les logs.
Et voilà…