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/