Bonjour,

Suite à mes différents problème de cohérences des données j'ai décidé de lancer un rebuild de tout les indexes de la base en utilisant le script suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
DECLARE @Code Varchar(max)
 
Set @Code = '
				Print ''Début ? ''+Convert(varchar,getdate(),121)
				ALTER INDEX ALL ON ? REBUILD PARTITION = ALL
				DBCC SHRINKFILE (N''DB_tst_log'' , 0, TRUNCATEONLY)
				Print ''Fin ? ''+Convert(varchar,getdate(),121)
			' 
 
EXECUTE sp_MSforeachtable @Code;
J'ai un schrink a chaque itération car sinon le log se remplit et il ne va pas jusqu'au bout.

Sur un clone de la prod en Sql2012 par de problème ça tourne pendant ~40 minutes et tout vas bien.
Mais ma base de prod est en 2008 R2. Alors j'ai essayer de le lancer sur un clone en SQL2008R2.

La ça a tourné une fois pendant plus de 2 heures mais avec un résultat correcte.

Mais lors d'un de mes test au bout de 3h le fichier de log était tellement plein que j'ai été déconnecté, et ensuite plus moyen de vider le log car il était déjà lui même trop plein.
J'ai utiliser différent script que je vous met a disposition :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
USE [DB]
CHECKPOINT 
ALTER DATABASE [DB] SET RECOVERY SIMPLE
ALTER DATABASE [DB] SET OFFLINE WITH ROLLBACK IMMEDIATE
ALTER DATABASE [DB] SET ONLINE
USE [DB]
DBCC SHRINKFILE (N'DB_tst_log' , 0, TRUNCATEONLY)
ainsi que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
ALTER DATABASE DB SET EMERGENCY
ALTER database DB SET SINGLE_USER
DBCC CHECKDB ('DB','REPAIR')
ALTER database DB SET Multi_USER
ALTER database DB SET ONLINE
DBCC SHRINKFILE (N'DB_tst_log' , 0)
Mais rien ne fonctionne comme il faut, mon fichier de log à été réduit a 35Go mais pas plus bas. J'ai restarter le service sql à plusieurs reprises mais sans succes.

Un de vous a-t-il une idée ?

Merci a+