delete + cancel => database crash

delete + cancel => database crash - SQL/NoSQL - Programmation

Marsh Posté le 11-08-2008 à 20:03:06    

bonjour,
 
j'ai un problème sql server (2000), après avoir tenté d'effacer les enregistrements d'une table j'ai finalement cliqué sur "cancel" puis rebooter avant d'attendre que le query analyzer me rende la main.
Je ne peux plus accéder à ma base à présent!
(c'est une grosse base de 15gig)
 
j'ai essayé DBCC CHECKDB mais après 20 min rien ne s'affiche... J'arrive à accéder à la base master mais toute tentative de changer de base (query => change database, dans le query analyzer par exemple) me renvois un lag infinissable.
 
Des idées? J'ai un backup mais il a quelques jours, j'aimerai pouvoir fixer le pb avec les données actuelles.
 
Merci d'avance

Reply

Marsh Posté le 11-08-2008 à 20:03:06   

Reply

Marsh Posté le 12-08-2008 à 03:20:24    

t'es au courant qu'un serveur de base de données ça se reboote pas à la sauvage ?
 
ta base est morte.
 
t'as plus qu'à restaurer le backup et tenter un redo log du journal des transactions. j'ai jamais fais, donc renseigne-toi dans la doc sur la manière de faire. faut juste espérer que ton journal des transactions n'a pas été truncate depuis ton backup.
 
ps : et 20 minutes de patinage, ça n'a rien d'exeptionnel pour une base de 15 Go... laisse-le tourner une nuit entière, et pose toi des questions seulement si au bout de 10 heures il n'y a pas d'évolution.

Reply

Marsh Posté le 12-08-2008 à 03:26:51    

au fait, je sais pas ce que fait le "cancel" du query analyzer. j'avais même jamais vu qu'il existait.
 
par défaut, le query analyzer ne bosse pas en mode transactionnel. donc déjà, je sais pas ce qu'il a cherché à faire pour rammer de la sorte, mais certainement pas un rollback.
 
quand tu veux bosser en mode transactionnel, tapes toujours au début de ta session "begin tran" puis exécute cette ligne.
 
et quand t'as fini un truc donc tu es sûr, tapes "commit".
 
et refais un nouveau begin tran aussi sec.
 
le revers de la médaille, c'est que sql server est pas super au point en ce qui concerne les verrous, donc si la base est utilisée, il se peut que certaines modifs bloquent les gens. mais là au moins, même en cas de reboot intempestif, tant que t'as pas fait comit, tu retrouveras tes données exactement dans l'état où tu les a trouvées.
 
et quand t'es dans une transaction, pour annuler ce que tu as fais, tapes "rollback". éventuellement, ferme simplement le query analyzer, le rollback est toujours l'action par défaut lors de la fin d'une session.
 
éventuellement, lis un peu la documentation, parceque là ça donne l'impression du comptable super fortiche en tableaux croisés dynamiques excel, qui sait faire une requête avec l'assistant d'Access, et se dit "tiens, allez, SQL server à coup de SQL en ligne de commande vous allez voir je suis super fortiche !"


Message édité par MagicBuzz le 12-08-2008 à 03:28:34
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed