Réparer une base de données corrompue

Cette page décrit comment réparer une base de données corrompue.

La corruption de la base de données peut se produire lorsque la base de données est arrêtée brutalement (si le serveur s’est arrêté par exemple). Cette procédure est destinée aux utilisateurs qui sont à l’aise avec les bases de données MariaDB. En cas de doute, contactez le support Cyberwatch.

  1. Valider que la base de données est bien corrompue :

    Inspecter les logs de la base de données. Si la base de données est déployée en tant que conteneur (situation par défaut), utiliser la commande suivante :

     sudo cyberwatch logs db -f
    

    Si la base de données est corrompue, les logs devraient contenir une ou plusieurs lignes similaires à :

     [ERROR] InnoDB: Ignoring the redo log due to missing MLOG_CHECKPOINT between the checkpoint 
     44002250712 and the end 44002250240.
    
  2. Arrêter l’instance Cyberwatch :

    sudo cyberwatch stop
    
  3. (Recommandé) Sauvegarder les fichiers de la base de données.

    • Avec Docker Swarm :

        cd /var/lib/docker/volumes/cbwonpremise_data_db
        tar cvzf cyberwatch_db_$(date +%Y%m%d).tar.gz _data
      
    • Avec MicroK8s :

        cd /var/lib/volumes/cyberwatch
        tar cvzf cyberwatch_db_$(date +%Y%m%d).tar.gz db
      
  4. Effacer le contenu du fichier ib_logfile0 :

     :> ib_logfile0
    
  5. Redémarrer l’application :

     cyberwatch restart
    

Si l’application ne démarre pas correctement, merci de contacter le support Cyberwatch.

Sources externes


Retour en haut