2025-03-21 19:01:08
2025-03-14 16:20:13
2025-03-14 16:19:32
2637214
!Friendica Support
Hallo Profis, ich habe ein Problem mit meiner Instanz. In den Logs taucht folgender DB-Fehler auf:Index for table 'post-user' is corrupt; try to repair it
Ein CHECK TABLE `post-user`;
in der MariaDB Konsole zeigt folgendes:
MariaDB [friendica]> CHECK TABLE `post-user`;
+---------------------+-------+----------+-----------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+---------------------+-------+----------+-----------------------------------------------------------+
| friendica.post-user | check | Warning | InnoDB: The B-tree of index PRIMARY is corrupted. |
| friendica.post-user | check | Warning | InnoDB: Index uid_uri-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index uri-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index parent-uri-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index thr-parent-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index external-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index owner-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index author-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index causer-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index vid is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index contact-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index event-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index psid is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index author-id_uid is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index parent-uri-id_uid is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index uid_contactid is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index uid_unseen_contactid is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index uid_unseen is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index uid_hidden_uri-id is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index uid_wall_received is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index author-id_created is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index owner-id_created is marked as corrupted |
| friendica.post-user | check | Warning | InnoDB: Index replies-id is marked as corrupted |
| friendica.post-user | check | error | Corrupt |
+---------------------+-------+----------+-----------------------------------------------------------+
24 rows in set (57,683 sec)
Wenn ich REPAIR TABLE `post-user`;
kommt folgende Ausgabe:
MariaDB [friendica]> REPAIR TABLE `post-user`;
+---------------------+--------+----------+---------------------------------------------------------+
| Table | Op | Msg_type | Msg_text |
+---------------------+--------+----------+---------------------------------------------------------+
| friendica.post-user | repair | note | The storage engine for the table doesn't support repair |
+---------------------+--------+----------+---------------------------------------------------------+
1 row in set (1 min 53,258 sec)
Ich habe keinen Plan mehr. Könnt ihr mich bitte Unterstützen?
Michael 🇺🇦
•Tuxi (Backup)
•Trotzdem Danke. Vielleicht weiß ja jemand anderes noch ein Rat?
Nordnick 🐘
•Kannst Du die Tabelle kopieren?
Ggf. Index manuell löschen und neu erstellen?
Zunächst: Hast Du ein Backup?
Tuxi (Backup)
•@Nordnick 🐘
Wie? *keinplan*
Dachte eigentlich schon, bis ich durch das Problem heute daraufgekommen bin, dass der Backup-Job unbemerkt schon seit einiger Zeit nicht mehr gelaufen ist. 🙄
Michael 🇺🇦
•Tuxi (Backup)
•Es scheinen mehrere Tabellen corrupt zu sein. Ein
... show moremysqlcheck
zeigt folgendes:Es scheinen mehrere Tabellen corrupt zu sein. Ein
mysqlcheck
zeigt folgendes:Esko Arajärvi
•You can use ALTER TABLE tbl_name FORCE to perform a “null” alter operation that rebuilds the table. I have successfully repaired corrupted tables with this.
https://mariadb.com/kb/en/alter-table/#force
Tuxi (Backup)
•Thanks @Esko Arajärvi
Since I am not a database professional, I will ask to be on the safe side. The command is correctly
ALTER TABLE post-user FORCE;
?Um, how dangerous is this execution? Will data be lost?
Esko Arajärvi
•You need to include the table name in back-ticks, because there is a dash in the name of the table.
ALTER TABLE `post-user` FORCE;
This should be completely safe to run, but as always, when manually tweaking things, take a backup beforehand, if possible.
Tuxi (Backup)
•Thanks! 👍
Tuxi (Backup)
•@Esko Arajärvi
Crap an
ALTER TABLE `post-user` FORCE;
produces the following output:Esko Arajärvi
•Damn. That sounds more serious. 🙁
I'm not sure where to start digging for the data next.
Esko Arajärvi
•Are you able to dump the table data with:
mysqldump –u user –p db_name table_name > output_file
Tuxi (Backup)
•😔
Esko Arajärvi
•Esko Arajärvi
•Apparently, if all else fails, try these:
https://mariadb.com/kb/en/innodb-recovery-modes/
Michael 🇺🇦
•Tuxi (Backup)
•Jerry on Friendica
•This happened to me on my instance and I tried everything to fix the corrupted indexes, using expert advice, and couldn't fix it. I finally restored from a backup, which took 12 hours. It happened to me because I made a change to Friendica and restarted it while everything was still running. I know this is not helping you in your current situation, but I want to understand what may have caused this to happen to you and to help other Admins.
Do you have a theory as to what brought this about?
Whenever I am making any changes to Friendica now, I take MariaDB and Apache2 down, and I make a complete backup of the database disk to another disk (sudo cp -rp /mnt/friendica_db_volume_nyc1_01/mariadb /mnt/friendica_backups/) because I never ever want to go through this again. I also take a disk snapshot on Digital Ocean of the external DB drive as well, and have the regular backup available. Total paranoia now.
Good luck. Keep us posted on how you overcome this and what you learn.
xy..
•Tuxi (Backup)
•Ich habe nichts gefunden.
xy..
•@Tuxi (Backup)
https://hevodata.com/learn/mysqlcheck/
Ich glaube wenn repair nicht ging hatte es bei mir drop und recreate oder so gemacht.. kann sein dass repair standardmäßig an ist. Weiss nicht..
xy..
•Tuxi (Backup)
•Danke. Leider aber:
xy..
•xy..
•Kevin Honka
•Falls du da noch Hilfe benötigst:
1. Datenbank stoppen und backup von /var/lib/mysql machen
2. innodb_force_recovery auf 4 stellen. danach erlaubt mysql/mariadb keine Schreibzugriffe mehr https://dev.mysql.com/doc/refman/8.4/en/forcing-innodb-recovery.html
3. DB wieder starten
4. SQL Dump der Datenbank ziehen.
5. innodb_force_recovery entfernen
6. Datenbank durchstarten
6. Datenbank löschen
6. SQL Dump importieren.
MySQL :: MySQL 8.4 Reference Manual :: 17.20.3 Forcing InnoDB Recovery
dev.mysql.comTuxi (Backup)
•Danke. Werde ich mal durchlesen und testen.
Tuxi (Backup)
•@Kevin Honka
Aufgrund des kaputten Indexes funktioniert leider auch kein
mysqldump
. Mist.mysqldump: Error 1034: Index for table 'apcontact' is corrupt; try to repair it when dumping table `apcontact` at row: 1859034
Ich werde es aber jetzt mit der
--force
Option versuchen.Johannes Brakensiek
•Tuxi (Backup)
•Habe auch das Gefühl, dass da mehr im argen ist.
Tuxi (Backup)
•Also folgender Stand:
Ich konnte gestern einen Dump der DB ziehen. Danach konnte ich seltsamerweise euch ein
mysqloptimize
erfolgreich und ohne Fehlermeldung ausführen. Ob das aminnodb_force_recovery 4
liegt oder an was anderem, kann ich, ehrlich gesagt nicht sagen.Die Instanz lief danach auch für eine Zeit ohne Probleme. Allerdings sind dann nach so ca. 30 Minuten wieder die gleichen Fehlermeldungen im Friendica-Log aufgetaucht.
Aktuell läuft ein Testimport der gestern exportierten Datenbank. Wenn diese erfolgreich ist, dann hätte ich zumindest Daten auf einem Stand von gestern.
Allerdings frage ich mich, ob der mysqldump korrupt ist, oder nicht?
@Michael 🇺🇦
Frage: Wenn ich den Import erfolgreich in eine andere DB durchführen konnte, kann ich dann in der
local.config.php
den Namen der DB einfach ändern und es ist alles lauffähig? Oder ist der Name der DB auch noch irgendwo anderes hinterlegt?Michael 🇺🇦
•Tuxi (Backup)
•Danke
Tuxi (Backup)
•Tuxi (Backup)
•Content warning: 2025-03-21T18:18:54Z app [ERROR]: DB Error {"code":1356,"error":"View 'friendicadb.account-user-view' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them","params":"SELECT `id`, `uid`, `pid` FROM `acc
Hallo Profis,
habe eine neue Datenbank erstellt, dort die Sicherung eingespielt, die ich Ende Januar für den Serverumzug auch verwendet habe. In der "local.config.php habe ich den Namen der Datenbank auf die neue geändert.
Trotzdem funktioniert die Instanz nicht und ich habe massenhaft DB Errors im friendical.og. Wieso funktioniert die Sicherung die vor ein paar Wochen für den umzug noch funktioniert hat aufeinmal nicht mehr. Das passt doch irgendwie nicht zusammen.
Auszug aus dem friendica.log:
Tuxi (Backup)
•Hallo Profis,
habe eine neue Datenbank erstellt, dort die Sicherung eingespielt, die ich Ende Januar für den Serverumzug auch verwendet habe. In der "local.config.php habe ich den Namen der Datenbank auf die neue geändert.
Trotzdem funktioniert die Instanz nicht und ich habe massenhaft DB Errors im friendical.og. Wieso funktioniert die Sicherung die vor ein paar Wochen für den umzug noch funktioniert hat aufeinmal nicht mehr. Das passt doch irgendwie nicht zusammen.
Auszug aus dem friendica.log:
... show moreHallo Profis,
habe eine neue Datenbank erstellt, dort die Sicherung eingespielt, die ich Ende Januar für den Serverumzug auch verwendet habe. In der "local.config.php habe ich den Namen der Datenbank auf die neue geändert.
Trotzdem funktioniert die Instanz nicht und ich habe massenhaft DB Errors im friendical.og. Wieso funktioniert die Sicherung die vor ein paar Wochen für den umzug noch funktioniert hat aufeinmal nicht mehr. Das passt doch irgendwie nicht zusammen.
Auszug aus dem friendica.log:
Seltsamerweise sagt mir ein "mysqlcheck -u root -p --check --databases friendicadb" das alles in Ordnung wäre:
Tuxi (Backup)
•