sql >> Databáze >  >> RDS >> Mysql

Chyba:Tablespace for table xxx existuje. Před IMPORTEM prosím ZNEŠKODNĚTE tabulkový prostor

Trochu pozdě, ale obecně jsem viděl, že k tomuto problému dochází, když se při spuštění v režimu 'innodb_file_per_table' zobrazí chyba 'tablespace full'. Aniž bych zacházel do přílišných podrobností (více zde ), tabulkový prostor databázového serveru je definován nastavením innodb_data_file_path a ve výchozím nastavení je poměrně malý. I když je tabulkový prostor větší, může se stále vyskytovat u větších dotazů a podobně (je v něm uloženo mnoho netabulkového 'věci', zpětné protokoly, mezipaměti atd...).

Každopádně jsem zjistil, že když se podíváte do adresáře OS, kde jsou uloženy soubory na tabulku, /var/lib/mysql ve výchozím nastavení na OSX, /usr/local/var/mysql s homebrew iirc, najdete osiřelý soubor název_tabulky.ibd bez běžného doprovodného souboru název_tabulky.frm. Pokud tento soubor .ibd přesunete do bezpečného dočasného umístění (jen pro jistotu), problém by měl být vyřešen.

$ ls /var/lib/mysql

table1.frm
table1.idb
table2.frm
table2.idb
table3.idb <- problem table, no table3.frm
table4.frm
table4.idb

$ mkdir /tmp/mysql_orphans
$ mv /var/lib/mysql/table3.ibd /tmp/mysql_orphans/

Nicméně jedno upozornění, ujistěte se, že co kdy problém původně způsobuje, např. dlouho běžící dotaz, uzamčená tabulka atd... byl vymazán. Jinak skončíte s dalším osiřelým souborem .ibd, když to zkusíte podruhé.



  1. oracle diff:jak porovnat dvě tabulky?

  2. Domovská stránka Oracle pouze pro čtení

  3. Připojení AnySQL Maestro k Salesforce.com

  4. Přehled nástrojů databázových diagramů dostupných pro PostgreSQL