MariaDB error InnoDB Danneggiato NextCloud
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.