MariaDB error InnoDB Danneggiato NextCloud

Linux Varie NextCloud/Owncloud

Oggi decriviamo la procedura per il rispristino del database NextCloud danneggiato ad esempio per un arresto anomalo del sistema

Capita pultroppo spesso che il sistema si danneggi e che mariaDB non riesca più a ripartire a causa del danneggiamento di InnoDB.

Una procedura per tentare il rispristino è la seguente

Facciamo partire mariadb in recovery mode

aggiungiamo queste righe a my.cnf

nano /etc/my.cnf

port = 8881
innodb_force_recovery=6
innodb_purge_threads=0

systemctl start mariadb.service

Innodb_force_recovery ha una scala che va da 1 a 6 se come nel mio caso siete nella situazione peggiore ovvero 6 dopo aver effettuato lo start di mariadb service dovrete aggiungere yn my.cnf [client] prima dei comandi precedenti ma solo dopo aver fatto ripartire il servizio e sensa riavviarlo nuovamente.

[client]

port = 8881
innodb_force_recovery=6
innodb_purge_threads=0

a questo punto eseguite il dump

mysqldump –skip-lock-tables -A > alldb.sql

Ora spegniamo MariaDB

mysqladmin shut


Opzione 1

Creiamo una cartella vuota per mysql

mv /var/lib/mysql /var/lib/mysql.old
mkdir /var/lib/mysql

Adesso proviamo a ripristinare i db vuoti

mysql_install_db


Opzione 2

Se questa opzione fallisce rimuoviamo completamente mariadDB

Assicuriamoci di aver salvato in /var/lib/mysql.old i vecchi db

ls /var/lib/mysql.old

assicuriamoci di aver salvato il dump

ls alldb.sql

a questo punto rimuoviamo mariadb

yum remove mariadb mariadb-server
rm -rf /var/lib/mysql
rm /etc/my.cnf

Reinstalliamo MariaDB

yum -y install mariadb-server mariadb
systemctl start mariadb.service
systemctl enable mariadb.service
mysql_secure_installation (ricordarsi di inserire la stessa password precedente)

Ripristiniamo i database

mysql < alldb.sql -u root -p

Riavviamo il servizio

systemctl restart mariadb.service

Spero di esservi stato utile.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *