====== Percona XtraBackup: Ошибка "Too many open files" ====== Исправляем ошибку нехватки файловых дескрипторов при выполнении резервного копирования с помощью **Percona XtraBackup** При использовании **Percona Xtrabackup 2.4.5** и младше необходимо иметь достаточную возможность по количеству открытых файлов в системе, чтобы открыть каждое табличное пространство **InnoDB** в инстансе для резервного копирования. Если вы используете ''innodb_file_per_table = 1'' и имеете большое количество таблиц, то скорее всего получите ошибку следующего вида: | InnoDB: Operating system error number 24 in a file operation. InnoDB: Error number 24 means 'Too many open files' InnoDB: Some operating system error numbers are described at http://dev.mysql.com/doc/refman/5.7/en/operating-system-error-codes.html InnoDB: File ./perconatst/perconatst154734.ibd: 'open' returned OS error 124. Cannot continue operation InnoDB: Cannot continue operation. | === Уточним какое количество файлов нам необходимо. === | # find /var/lib/mysql/ -name "*.ibd" | wc -l 4753866 | === Проверим текущее максимальное значение открытых файлов === | Для того, чтобы временно изменить количество одновременно открытых файлов //(до перезагрузки)//, выполняем команду: # sysctl -w fs.file-max=5000000 Для установки значения на постоянную основу добавим параметр в конфигурационный файл ядра ''/etc/sysctl.conf'' и применим изменения “на лету”. # echo "fs.file-max=5000000">> /etc/sysctl.conf sysctl -p /etc/sysctl.conf Проверим текущее количество открытых файлов: # cat /proc/sys/fs/nr_open 1048576 Увеличим ограничение ресурсов для сервиса **MySQL**, для этого добавим в конец файла ''/etc/security/limits.conf'' следующие строки: | mysql hard nofile 2000000 mysql soft nofile 200000 | Одновременно с этим добавим параметр в конфигурационный файл ядра ''/etc/sysctl.conf'' и применим изменения “на лету”: | # echo "fs.nr_open=2000000">> /etc/sysctl.conf | === Альтернативные способы === Можно увеличить параметр в конфигурационном файле **MySQL**, но потребуется перезагрузка сервиса: | | | # echo "ulimit -n 2000000">> ~/.bashrc | |