Déplacement des journaux de transactions

Lorsque le paramétrage de SQL Server n’est pas correct, il arrive que vos bases de données soient stockées sur les mauvais volumes. Pour des raisons de performance, il est donc nécessaire de déplacer les journaux de transactions (fichier ldf) sur un autre volume.
Pour cela, identifier au préalable l’emplacement de vos fichiers :

USE PerfAnalysis
GO
sp_helpfile
GO

Le résultat ci-dessous montre le chemin complet des différents fichiers constituant votre base de données.

sp_helpfile

Procédure système : sp_helpfile

L’objectif ici est de déplacer le journal de transaction sur le volume D.

Afin de permettre ce déplacement il faut tout d’abord détacher la base de données. Pour cela passer la base en « Single user ».


Use Master
GO
-- Set database to single user mode
ALTER DATABASE PerfAnalysis
SET SINGLE_USER
GO
-- Detach the database
sp_detach_db 'PerfAnalysis'
GO

Déplacer ensuite le fichier « ldf » sur le volume cible, ici le volume D.

Puis ré-attacher votre base avec la commande suivante, en spécifiant le nouvel emplacement de votre fichier de log.


USE master
GO
-- Now Attach the database
sp_attach_DB 'PerfAnalysis',
'C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\PerfAnalysis.mdf',
'D:\Logs\PerfAnalysis_log.LDF'
GO

Votre base est à présent de nouveau opérationnelle, et votre fichier de transaction sur le nouveau volume. Ces opérations peuvent également être effectuées à la souris, mais le transact-SQL est tellement mieux !

Ceci fonctionne également pour déplacer le fichier MDF bien entendu.