Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration SQL Server Discussion :

Problème de base de données en mode urgence


Sujet :

Administration SQL Server

  1. #1
    Membre à l'essai
    Problème de base de données en mode urgence
    Bonjour,

    Après un redémarrage d'un serveur SQL, j'ai une des bases de données qui est en mode urgence, j'ai essayé d'exécuter un checkDB mais la base n'est pas accessible.



    d'après le message d'erreur ( fichier inaccesible , mémoire , espace insuffisant ...) je vois pas ce qui pose problème de tout ça (voir image ci-dessous).



    quelqu'un peut m'aider SVP..

  2. #2
    Expert éminent sénior
    Hello,

    - Tu peux déjà commencer par regarder dans le journal des erreurs ce qui se passe
    - Tu peux tenter de la remettre en ligne mais tu auras un message d'erreur si un problème sous-jascent existe :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    ALTER DATABASE <mydatabase> SET ONLINE;
    GO


    ++

  3. #3
    Membre à l'essai
    Bonjour,

    Voila le résultat :

    Msg*5181, Niveau*16, État*5, Ligne*1
    Impossible de redémarrer la base de données "mabase". Retour à l'état précédent.
    Msg*5069, Niveau*16, État*1, Ligne*1
    Échec de l'instruction ALTER DATABASE.
    Msg*824, Niveau*24, État*6, Ligne*1
    SQL Server a détecté une erreur d'E/S logique et relative à la cohérence.
    L'erreur somme de contrôle incorrecte (somme de contrôle attendue*: 0xac81f5b8*; somme de contrôle réelle*:
    0x6bf30cd0) s'est produite pendant une opération de lire de la page (1:0) dans la base de données
    avec l'ID 7 au niveau du décalage 0000000000000000 dans le fichier 'D:\SQLDATA\MSSQL13.MSSQLSERVER\MSSQL\DATA\mabase.mdf'.
    Vous trouverez peut-être plus de détails dans les messages supplémentaires qui figurent dans le journal des erreurs
    et le journal des évènements système de SQL Server.
    Il s'agit d'une condition d'erreur sévère qui met en péril l'intégrité de la base de données et qui doit être corrigée immédiatement.
    Effectuez une vérification complète de la cohérence de la base de données (DBCC CHECKDB).
    Cette erreur peut être due à de nombreux facteurs*; pour plus d'informations, reportez-vous à la documentation en ligne de SQL Server.
    Msg*5243, Niveau*22, État*8, Ligne*1
    Une incohérence a été détectée durant une opération interne. Contactez le support technique.

    Heure de fin*: 2020-05-29T13:27:33.5749209+00:00

  4. #4
    Expert éminent sénior
    Ok tu peux commencer à regarder si tu as une sauvegarde au chaud ...

    Ensuite tu peux déjà essayer de lancer une première vérification:

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
     
    DBCC CHECKDB('<tabase>') WITH NO_INFOMSGS, ALL_ERRORMSGS;
    GO


    ++

  5. #5
    Rédacteur

    Apparemment vos fichiers sont corrompus. Vous pouvez tenter une corrections via DBCC CHECK... mais avant tout il faudrait changer le stockage car dans 99% c'est le disque qui est en train de mourir et dans le 1% restant le contrôleur disque qui déraille.

    Donc :

    Au préalable faites une sauvegarde du journal de transaction en mode d'urgence :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    BACKUP LOG mabase TO DISK = '???\LAST_JT_mabase.bak' WITH NO_TRUNCATE;


    1) copier les fichiers sur un autre disque sain sur la même machine
    2) rattaché la base avec ces fichiers.
    3) si la corruption persiste faire un DBCC CHECKDB
    4) si la corruption porte sur des index non cluster, les supprimer et les recréer
    5) sinon tenter de réparer avec : DBCC CHECK en mode REPAIR_FAST ou REPAIR_REBUILD, ou bvia une restauration de page
    Suivez l'article que j'ai écrit à ce qujet :
    https://blog.developpez.com/sqlpro/p...ver-corrompues

    Si aucune de ces corrections n'est possible :
    1) restaurez la sauvegarde complète en mode NORECOVERY
    2) restaurez tous les journaux intermédiaires en mode NORECOVERY
    3) restaurez le dernier journal fait en urgence en mode RECOVERY (LAST_JT_mabase.bak)
    Cela récupère intégralement votre base sans aucune perte.

    NOTA : si votre base est en mode de journalisation simple, alors vous ne pourrez pas effectuer les phases 2 et 3 et devez faire la phase 1 en mode RECOVERY

    Pour vous former, lisez notre livre :




    A +
    Cette signature n'a pas pu être affichée car elle comporte des erreurs.

  6. #6
    Membre à l'essai
    Bonjour,

    Merci bien, cela a résolu le problème (y)