Bonjour,
Après un redémarrage docker d'hier soir, je détecte une corruption dans une de mes tables
La base est là si je vais un show tablesCode:
1
2
3
4
5 mysqlcheck -u fadace -p -h mariadb-p01 -P 33041 --check mabase ... cpval.soc Error : Table 'mabase.soc' doesn't exist in engine status : Operation failed
Les fichiers sont physiquement présents
La restauration d'un fichier (et de la base complète) d'avant-hier ne résoud rienCode:
1
2
3 [root@mariadb-p01 cpval]# ll soc* -rw-r--r--. 1 systemd-bus-proxy ssh_keys 3858 Nov 25 12:02 soc.frm -rw-r--r--. 1 systemd-bus-proxy ssh_keys 114688 Nov 25 12:02 soc.ibd
J'essaie de supprimer la table et ses fichiers
Si je recrée la table, il me spécifie
Si j'essaie de la suppimerCode:ERROR 1050 (42S01): Table '`mabase`.`soc`' already exists
MariaDB [cpval]> drop table soc ;
ERROR 1051 (42S02): Unknown table 'mabase.soc'
La recréation a malgré tout ajouté un fichier
qui fait que si j'essaie d'importer, je reçois unCode:
1
2 [root@mariadb-p01 mabase]# ls -l soc* -rw-rw----. 1 systemd-bus-proxy ssh_keys 65536 Nov 25 13:12 soc.ibd
Code:
1
2 ERROR 1813 (HY000) at line 11: Tablespace for table '`cpval`.`soc`' exists. Please DISCARD the tablespace before IMPORT
Si je remonte cette table sur un autre nom, aucun souci
Si je renomme cette table sous un 3e nom, aucun souci : les fichiers ibd et frm sont renommés et la table aussi
Si je renomme cette table a son nom d'origine :
ERROR 1050 (42S01): Table './mabase/soc' already exists
... bien qu'aucun ficher soc.* n'existe plus:ptdr:
Il doit forcément y avoir une corruption au niveau du catalogue car si je recrée la base from scratch (= je supprime la base et je la laisse recréer par le script SQL d'import), je me ramasse un mabase.soc already exists (sur une base donc créée par le script)
Par contre, si je spécifie un autre nom pour la base dans le script, la création se passe sans encombre.