Oprava mysql chyby „Out of resources when opening file“

Dneska jen krátce. Nastavoval jsem zálohování MySQL a mysql server proti tomu poměrně originálně protestoval:

mysqldump: Got error: 1016: Can't open file: './db1_tree1/trm_POLAR.frm' (errno: 24) when using LOCK TABLES
mysqldump: Got error: 23: Out of resources when opening file './db1_tree1/trm_POLAR.MYD' (Errcode: 24) when using LOCK TABLES

Ačkoliv to zpočátku vypadalo jako problém s právy (chyba 1016 – nemohu otevřít soubor), problém ve skutečnosti byl v nastavení open_files_limit. Databáze, kterou jsem dumpoval je specifická tím, že má v sobě velké množství tabulek. Při pokusu o její dump MySQL zkoušela načíst informace o všech tabulkách a došly ji file deskriptory. Řešením bylo jejich množství navýšit v konfiguračním souboru a mysql restartovat.

Databáze obsahuje pouze MyISAM tabulky. Na jednu takovou tabulku MySQL použije 2 file deskriptory. Open_files_limit jsem proto nastavil na cca. 3x vyšší hodnotu, než je aktuální počet tabulek v databázi.

UPDATE 16.3.2013
V článku jsem nezmínil o jaký zálohovací software šlo, použil jsem automysqlbackup. Uvedený problém se ale může vyskytnout u jakéhokoliv nástroje, který používá k vytvoření zálohy mysqldump.

2 Komentáře.

    • V článku jsem to nepsal, ale stalo se mi to právě s mysqlbackupem 😛 . Ale tenhle problém bude mít každá záloha používající mysqldump.

      Každopádně ale díky za tip!