| forum.bitel.ru http://forum.bitel.ru/ |
|
| mysql err 24 http://forum.bitel.ru/viewtopic.php?f=19&t=4655 |
Страница 1 из 2 |
| Автор: | skyb [ 13 окт 2010, 12:43 ] |
| Заголовок сообщения: | mysql err 24 |
Замучался уже выискивать в чем может быть проблема и как победить Пытаюсь делать дамп мускула и вот что вылетает Код: # mysqldump bgbilling -p > bgbilling.sql Enter password: mysqldump: Couldn't execute 'SHOW TRIGGERS LIKE 'log\_error\_1\_201007'': Out of resources when opening file '/usr/local/tmp_mysql/#sql_dc1_0.MYD' (Errcode: 24) (23) Код: # cat my.cnf # A generic my.cnf file based on /usr/share/mysql/my-medium.cnf # # This is for a system with little memory (32M - 64M) where MySQL plays # an important part, or systems up to 128M where MySQL is used together with # other programs (such as a web server) # # The following options will be passed to all MySQL clients [client] user = root #password = your_password port = 3306 socket = /var/lib/mysql/mysql.sock # Here follows entries for some specific programs # The MySQL server [mysqld] max_allowed_packet = 500M myisam_data_pointer_size = 6 max_connections = 100000 server-id=1 log-bin = /mnt/advanced/mysql_bin/mysql_bin user = mysql datadir = /var/lib/mysql port = 3306 socket = /var/lib/mysql/mysql.sock pid-file = /var/run/mysqld/mysqld.pid skip-locking key_buffer = 16M table_cache = 64 sort_buffer_size = 512K net_buffer_length = 8K read_buffer_size = 256K read_rnd_buffer_size = 512K myisam_sort_buffer_size = 8M collation_server = utf8_unicode_ci character_set_server = utf8 # plugins plugin_dir=/usr/lib64/mysql/plugin #plugin-load=ha_archive.so;ha_blackhole.so;ha_innodb.so;ha_revision.so;ha_sphinx.so;libpbxt.so # acivate the federated storage engine #federated # Default to using old password format for compatibility with old and # shorter password hash. # Reference: http://dev.mysql.com/doc/mysql/en/Password_hashing.html old_passwords # Don't listen on a TCP/IP port at all. This can be a security enhancement, # if all processes that need to connect to mysqld run on the same host. # All interaction with mysqld must be made via Unix sockets or named pipes. # Note that using this option without enabling named pipes on Windows # (via the "enable-named-pipe" option) will render mysqld useless! # #skip-networking # Point the following paths to different dedicated disks tmpdir = /usr/local/tmp_mysql #log-update = /path-to-dedicated-directory/hostname # Uncomment the following if you are using BDB tables #bdb_cache_size = 4M #bdb_max_lock = 10000 [mysqldump] quick max_allowed_packet = 640M [mysql] no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates default-character-set = utf8 [isamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [myisamchk] key_buffer = 20M sort_buffer_size = 20M read_buffer = 2M write_buffer = 2M [mysqlhotcopy] interactive-timeout [mysql.server] user=mysql basedir=/var/lib [mysqld_safe] #open-files-limit=320000 err-log=/var/log/mysqld/mysqld.log pid-file=/var/run/mysqld/mysqld.pid # MySQL Instance Manager options section [manager] user=mysql default-mysqld-path=/usr/sbin/mysqld socket=/var/lib/mysql/mysqlmanager.sock pid-file=/var/run/mysqld/mysqlmanager.pid password-file=/etc/mysqlmanager.passwd run-as-service monitoring-interval=20 port=2273 меня параметры Код: max_allowed_packet = 500M max_connections = 100000 max_allowed_packet = 640M #open-files-limit=320000 ----- вначале он небыл коменчен и был 32000 не помогает |
|
| Автор: | Sets [ 13 окт 2010, 13:28 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Попробуй tempdir поменять на чтонибудь типа /tmp/mysql_tmp либо чтонибудь в /var, зачем без толку фрагментировать собственный статический раздел. либо вообще закоментировать строку пусть демон сам ищет себе место, скорее всего в /tmp и найдет |
|
| Автор: | skyb [ 13 окт 2010, 13:35 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Забыл сказать, вначате там было /var/tmp я думал мож на место ругается...перенес где место много...картина таже |
|
| Автор: | Sets [ 13 окт 2010, 14:00 ] |
| Заголовок сообщения: | Re: mysql err 24 |
можно поковыряться в strace: Код: strace -f mysqldump bgbilling -p > bgbilling.sql 2> strace.log
|
|
| Автор: | skyb [ 14 окт 2010, 18:58 ] |
| Заголовок сообщения: | Re: mysql err 24 |
подропал таблици, прошло дальше...но непомогло...мож уже объемы непозволяют?...кто как делает дамп базы расскажите...поделитесь инфой!!! |
|
| Автор: | Sets [ 14 окт 2010, 19:30 ] |
| Заголовок сообщения: | Re: mysql err 24 |
я делаю mysqldump могу предложить 3 варианта 1) попробуй поставить phpmyadmin и через него сделай он на сколько я знаю делает другим способом - обычными запросами select 2) либо можешь сам скрипт написать который будет собирать сведения из таблицы information_schema и через select формировать dump или же поискать в гугле может уже ктонибудь сделал такой 3) Установить на отдельный комп mysql (желательно той же версии), и скопируй папку /var/lib/mysql/bgbilling на тот комп потом повтори операцию, хотя возможно еще понадобится папка /var/lib/mysql/mysql |
|
| Автор: | skyb [ 15 окт 2010, 03:43 ] |
| Заголовок сообщения: | Re: mysql err 24 |
А будет ли база актуальная при таком копировании? |
|
| Автор: | Sets [ 15 окт 2010, 11:33 ] |
| Заголовок сообщения: | Re: mysql err 24 |
skyb писал(а): А будет ли база актуальная при таком копировании? думаю если остановить mysql перед копированием, будет, у меня пару раз получалась такая операция, но это лишь временная мера, в смысле чтобы базы вытащить, не будешь же какждый раз так издеваться над сервером, после этого можно попробвать дропнуть DB и залить снова, может mysqldump будет работать нормально |
|
| Автор: | skyb [ 15 окт 2010, 12:44 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Дропал, пустило немного дальше, но все равно нет:( |
|
| Автор: | jack7 [ 15 окт 2010, 16:12 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Описание ошибки 24 Код: sh-3.2$ perror 24 OS error code 24: Too many open files что говорит команда? Код: lsof | grep mysql | wc -l это число открытых файлов сервером mysql для копирования можно без проблем использовать 1) mysqlhotcopy - если тип таблиц myisam 2) mysqldump --skip-lock-tables (не блокировать таблицы при копировании, имхо неточности некритичны, так как не раз восстанавливал из бекапа на тестовой машине, полный бекап несколько десятков гигов) |
|
| Автор: | skyb [ 15 окт 2010, 16:54 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Код: # lsof | grep mysql | wc -l lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/skyb/.gvfs Output information may be incomplete. 273 Что ошибка значит понял, а вот победить не смог Цитата: 2) mysqldump --skip-lock-tables (не блокировать таблицы при копировании, имхо неточности некритичны, так как не раз восстанавливал из бекапа на тестовой машине, полный бекап несколько десятков гигов) а база на сколько будет актуальной?
|
|
| Автор: | jack7 [ 15 окт 2010, 17:06 ] |
| Заголовок сообщения: | Re: mysql err 24 |
skyb писал(а): Код: # lsof | grep mysql | wc -l lsof: WARNING: can't stat() fuse.gvfs-fuse-daemon file system /home/skyb/.gvfs Output information may be incomplete. 273 это немного, у меня больше 400 и проблем не видел Цитата: (Errcode: 24) (23) 23 ошибка мелькала, это уже число открытых файлов в системе - надо смотреть Код: sysctl fs.file-max Цитата: а база на сколько будет актуальной? зависит от скорости дисковой подсистемы и памяти в системе у меня порядка 30 гигов в час скидывается, если целиком - а если не скидывать логи за прошлые месяцы то тогда вообще приемлимо |
|
| Автор: | skyb [ 15 окт 2010, 17:16 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Код: # sysctl fs.file-max я про актуальность бекапаfs.file-max = 747755 Цитата: 2) mysqldump --skip-lock-tables (не блокировать таблицы при копировании, имхо неточности некритичны, так как не раз восстанавливал из бекапа на тестовой машине, полный бекап несколько десятков гигов) этим способом |
|
| Автор: | jack7 [ 15 окт 2010, 17:32 ] |
| Заголовок сообщения: | Re: mysql err 24 |
skyb писал(а): Код: # sysctl fs.file-max fs.file-max = 747755 число приличное =) попробуйте тогда бекапить потаблично, сначала копируя только таблицы , которые не содержат логи за прошлые месяцы Код: mysqldump -p bgbilling table1 table2 table3 > tables_1-3.sql методом перебора найдете где спотыкается Цитата: я про актуальность бекапа 2) mysqldump --skip-lock-tables (не блокировать таблицы при копировании, имхо неточности некритичны, так как не раз восстанавливал из бекапа на тестовой машине, полный бекап несколько десятков гигов) этим способом если бекапить все таблицы, кроме логов за прошлые месяцы, бекап делается за 1 час в размере около 25 гигов. самые большие таблицы это логи - предполагаю, что их отставание на час в случае перезаливки бекапа (а это все-таки согласитесь крайняя ситуация) значения для меня не имеет ps использую копирование с slave mysql-сервера |
|
| Автор: | skyb [ 16 окт 2010, 06:21 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Код: mysqldump --skip-lock-tables непрошел этот фокус |
|
| Автор: | jack7 [ 16 окт 2010, 20:07 ] |
| Заголовок сообщения: | Re: mysql err 24 |
ээм так он и не мог помочь по идее, это просто один из способов бекапов ошибка выдается при просмотре триггеров что команда показывает ? Код: show triggers; и есть ли там триггеры в базе? |
|
| Автор: | skyb [ 17 окт 2010, 03:55 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Код: mysql> show triggers;
Empty set (1.65 sec) |
|
| Автор: | jack7 [ 17 окт 2010, 11:25 ] |
| Заголовок сообщения: | Re: mysql err 24 |
а как же Код: mysqldump: Couldn't execute 'SHOW TRIGGERS LIKE 'log\_error\_1\_201007'': Out of resources when opening file попробуй так mysqldump -v bgbilling -p 1> out.log 2> error.log и логи глянь |
|
| Автор: | skyb [ 18 окт 2010, 13:29 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Нечего интересного вот еррор лог Код: -- Retrieving table structure for table log_server_1_201009... -- Sending SELECT query... -- Retrieving rows... mysqldump: Couldn't execute 'SHOW TRIGGERS LIKE 'log\_server\_1\_201009'': Out of resources when opening file '/usr/local/tmp_mysql/#sql_1308_0.MYI' (Errcode: 24) (23) Это последние строки в out.log Код: Reply-Message=33\n\nTrace:\nLogin found.\n');
/*!40000 ALTER TABLE `log_server_1_201009` ENABLE KEYS */; UNLOCK TABLES; |
|
| Автор: | jack7 [ 18 окт 2010, 14:43 ] |
| Заголовок сообщения: | Re: mysql err 24 |
попробуй иноды проверить во временной директории только убедись что полный путь до my.cnf правильно указан Код: grep tmpdir /etc/mysql/my.cnf | grep -v '#' | awk '{ print $3 }' | xargs -I[] df -i []
|
|
| Автор: | skyb [ 19 окт 2010, 05:14 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Код: # grep tmpdir /etc/my.cnf | grep -v '#' | awk '{ print $3 }' | xargs -I[] df -i [] Файловая система Инодов Испол Своб Исп % смонтирована на /dev/md3 51806208 3329 51802879 1% /usr/local Да че с ним такое то... А может ограничивает ли ядро количество дескрипторов? как посмотреть где это значение и как его увеличить. А ещё на сколько ? |
|
| Автор: | jack7 [ 19 окт 2010, 08:20 ] |
| Заголовок сообщения: | Re: mysql err 24 |
с инодами ок обычно (при too many open files) хватает проверить сравнить 1) lsof | wc -l и sysctl fs.file-max 2) на mysql точно нет органичений по файлам? 3) проверить ulimit |
|
| Автор: | skyb [ 19 окт 2010, 08:28 ] |
| Заголовок сообщения: | Re: mysql err 24 |
jack7 писал(а): 2) на mysql точно нет органичений по файлам? Это то что в конфиге? Если да, то пробовал по разному....пробовал с тем конфигом что в первом посте, ну и значения менял jack7 писал(а): 3) проверить ulimit эт чаво? jack7 писал(а): с инодами ок обычно (при too many open files) хватает проверить сравнить что дальше? |
|
| Автор: | jack7 [ 19 окт 2010, 09:20 ] |
| Заголовок сообщения: | Re: mysql err 24 |
1) сравни Код: # lsof | wc -l и Код: # /sbin/sysctl fs.file-max 2) проверка лимитов Код: # ulimit 3) проверить лимиты mysql Код: mysql> show variables like 'open_files_limit';
|
|
| Автор: | skyb [ 20 окт 2010, 07:58 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Код: ulimit -a core file size (blocks, -c) 0 data seg size (kbytes, -d) unlimited scheduling priority (-e) 20 file size (blocks, -f) unlimited pending signals (-i) 73728 max locked memory (kbytes, -l) 64 max memory size (kbytes, -m) unlimited open files (-n) 1024 pipe size (512 bytes, -p) 8 POSIX message queues (bytes, -q) 819200 real-time priority (-r) 0 stack size (kbytes, -s) 8192 cpu time (seconds, -t) unlimited max user processes (-u) 73728 virtual memory (kbytes, -v) unlimited file locks (-x) unlimited от пользователя mysql делал Код: show variables like 'open_files_limit';
+------------------+-------+ | Variable_name | Value | +------------------+-------+ | open_files_limit | 1024 | +------------------+-------+ |
|
| Автор: | jack7 [ 20 окт 2010, 10:06 ] |
| Заголовок сообщения: | Re: mysql err 24 |
1) Код: mysqldump -p --single-transaction bgbilling > bgbilling.sql если не получится 2) попробуй добавить в my.cnf и перезапустить mysql Цитата: set-variable = open_files_limit=10240
|
|
| Автор: | skyb [ 20 окт 2010, 10:09 ] |
| Заголовок сообщения: | Re: mysql err 24 |
а в какой секции то добавить? |
|
| Автор: | jack7 [ 20 окт 2010, 10:11 ] |
| Заголовок сообщения: | Re: mysql err 24 |
секция [mysqld] но проще сначала попробовать Код: mysqldump -p --single-transaction bgbilling > bgbilling.sql
|
|
| Автор: | skyb [ 20 окт 2010, 10:23 ] |
| Заголовок сообщения: | Re: mysql err 24 |
Сделал, прошло, а что сделал то?? что это значит...я про Код: mysqldump -p --single-transaction bgbilling > bgbilling.sql зы плюсик от меня |
|
| Автор: | jack7 [ 20 окт 2010, 10:31 ] |
| Заголовок сообщения: | Re: mysql err 24 |
если сработало - значит у тебя тип таблиц innodb а для них рекомендуют mysqldump --single-transaction, как вариант не препятствующий выполнению текущих операций чтения/записи таблиц базы ps спс за + |
|
| Страница 1 из 2 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
| Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |
|