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.
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.
Arrêter l’instance Cyberwatch :
sudo cyberwatch stop
(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
Effacer le contenu du fichier
ib_logfile0
::> ib_logfile0
Redémarrer l’application :
cyberwatch restart
Si l’application ne démarre pas correctement, merci de contacter le support Cyberwatch.