Réparer une base de données Microsoft SQL Server

Il peut arriver qu'une base de données passe en état semi corrompu... Ce problème peut-être lié à un problème de disque dur (cluster) ou tout simplement un très gros crash (arrêt électrique d'un serveur en pleine activité)

Des instructions permettent de réparer la base de données.

DBCC CHECKDB , va permettre de vérifier l'état d'une base de données en cours. On pourra aussi spécifer la base : DBB CHECKDB ('MaBase')

Si des erreurs sont signalées, plusieurs options de réparations existent :
REPAIR_FAST : qui finalement ne va rien réparer.
REPAIR_REBUILD : qui va procéder à quelques opérations de réparation.
REPAIR_ALLOW_DATA_LOSS : qui est l'option la plus efficace MAIS aussi la plus dangereuse puisque comme cela est indiqué dans le nom : il y a risque de perte de données. Avoir un backup est une bonne idée.

Cette dernière option est efficace et pour l'utiliser vous devrez passer la base de données en mode SINGLE_USER :

alter database mabase
set single_user WITH ROLLBACK IMMEDIATE;
go

Vous pouvez ensuite lancer la demande de réparation :


DBCC CHECKDB ('MaBase', REPAIR_ALLOW_DATA_LOSS)
go

après cette action, Microsoft recommande de lancer un check des contraintes d'intégrités qui peuvent être violées en raison d'une perte potentielle de données :

use MaBase
dbcc checkconstraints
go

et enfin, vous pourrez repasser la base de données en mode MULTI_USER


alter database MaBase
set multi_user
go

Ajouter un commentaire

A propos de l'auteur

 

Développeur depuis plus de 10 ans, j'ai commencé la programmation dès l'âge de 9 ans sur un PC 8088 !!

GW-Basic, Pascal, Turbo Pascal, Delphi ont fait mes bases... Puis Java , bien plus tard... Pour enfin avoir découvert le C#... Quel plaisir de développer avec ce langage des solutions ASP.NET... Le développement Web comme jamais je ne pouvais l'imaginer possible :)

Aujourd'hui titulaire du MCSD VS 6.0, MCAD .NET, et MCT ...

Sur ce blog, je souhaite partager des choses simples mais efficaces... Des problèmes de tous les jours que l'on peut rencontrer et qu'il est simple de régler :)

Mes certifications

Month List