|
Cet article, vous explique quels sont les mécanismes à mettre en œuvre, pour récupérer la main sur une base de donnée qui n'est plus joignable.
Type : Article / Tutorial
Niveau : 3/5
Durée de lecture : env. 1 heure
Compatibilité / s'applique à :
o Microsoft SQL Seveur 2005 (9.0.XXXX)
o Microsoft SQL Seveur 2008 (10.0.XXXX)
Symptômes :
La base peut être dans plusieurs possible :
Pour connaitre l'état de votre base de donnée si vous n'avez pas management studio, vous pouvez effectuer une requete sur la vue sys.databases :
SELECT state_desc FROM sys.databases WHERE name = 'master';
GO
Ou à l'aide de la fonction DATABASEPROPERTYEX :
SELECT DATABASEPROPERTYEX ('master', 'STATUS');
GO
Si votre base est entrain de faire un rollback, ou de remonter son journal de transactions, pour se retrouver sur un état stable, vous pouvez tentez de vous en passer si les éléments qu'elle remonte ne vous sont pas utiles. Mais attention, cette opération pourrait vous couter la stabilité de votre base !
sp_configure 'allow updates', 1
reconfigure with override
alter database DatabaseName set emergency
alter database DatabaseName rebuild log on (name=logname_log,filename='c:\program files\microsoft sql server\mssql.1\mssql\data\logname.ldf')
Changez le chemin et le nom du fichier pour recréer le même fichier que précédemment
alter database DatabaseName set multi_user
Avant d'effectuer cette ultime étape et remettre la base en production, il est fortement conseillé de vérifier le cohérence de la base, et ceci en single user, sinon le serveur va utiliser des snapshot masqués de la base (appelé '') et risquer de reproduire le problème de non accessibilité :
DBCC CHECKDB (DatabaseName)
Mots clés : Possible schema corruption. Run DBCC CHECKCATALOG
Categories: SQL Serveur
The words you entered did not match the given text. Please try again.
Oops!
Oops, you forgot something.