[SQL Server] TempDB : comment déplacer tempDB d’une partition à l’autre ?

Ce billet explique comment migrer les fichiers de la base de données tempDB vers une partition spécifique.

Pour connaître l’utilité et le fonctionnement de tempDB, les différents types d’objets temporaires et les éléments d’optimisation usuels, allez ici.

Raisons principales d’un déplacement de tempDB

En règle générale, la nécessité de déplacer les fichiers de données et de logs de tempDB est motivée par 2 raisons principales :

  1. Volumétrie : la base de données tempDB est trop volumineuse pour sa partition d’accueil.
  2. Performances : placer tempDB sur un LUN dédié permet d’isoler ses activités I/O. TempDB étant une base de données gourmande en I/O, la mettre sur un RAID1 ou RAID10 indépendant est une bonne pratique d’exploitation.

Entrée dans le vif du sujet…

Supposons que les fichiers de données et de logs de tempDB sont situés sur une partition D, et que l’on souhaite les déplacer vers une partition T. Voici le modus operandi :

  • Détermination du nom des fichiers de données et de logs de tempDB :
USE tempdb
GO
EXEC sp_helpfile
GO

Voici un exemple de résultat (les colonnes name et filename nous intéressent):

  • Déplacement des fichiers de données et de logs de tempDB vers le dossier MSSQL (nom de dossier arbitraire) d’une partition T :
USE master
GO
ALTER DATABASE TempDB MODIFY FILE
(NAME = tempdev, FILENAME = 'T:\MSSQL\tempdev.mdf')
GO
ALTER DATABASE TempDB MODIFY FILE
(NAME = templog, FILENAME = 'T:\MSSQL\templog.ldf')
GO

Pour que le déplacement de tempDB soit effectif, il faut procéder, après exécution de la requête ci-dessus, au redémarrage de l’instance SQL Server.

Vous pouvez, après redémarrage, relancer la requête de la 1ère étape (sp_helpfile) pour vérifier le succès du déplacement.

En conclusion…

A travers la lecture de ce billet, nous avons pu voir que le déplacement de tempDB est tout sauf compliqué. Néanmoins, dans la mesure où cela nécessite un redémarrage de l’instance SQL Server, ce qui peut s’avérer désagréable quand la ou les bases applicatives sont sollicitées 24h/24, 7j/7. Par conséquent, il est de bon ton de prévoir à l’avance une partition dédiée (en RAID1 ou RAID10) à tempDB avant toute mise-en-production de ladite instance.

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s