SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 24.03.2008 12:21:38

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Несколько разных вопросов :)

1. В момент выполнения оптимизации таблицы, достучаться к ней селектом не удаётся (MyISAM). Так и есть?
2. На сервере 4Гб памяти. Из наблюдений за базой видно, что она не кушает больше 512Мб. Если она скушала 512Мб, то запросы не выполняются, а база ругается на нехватку памяти. Дело в конфиге базы или где-то в ОС могут быть какие-то ограничения? (FreeBSD)
3. Не удаётся выполнить запрос SHOW GLOBAL STATUS. Запрос вешается со статусом "выполняется". Удалить процесс не удаётся. Рестарт сервера не помогает с выполнением запроса, по прежнему вешается sad
4. При добавлении именованного индекса в кеш на 16-32Мб, другие запросы не выполняются, ругаясь на нехватку памяти, тогда как по ресурсам имеется достаточный запас памяти.
5. Какие именно переменные потребляют указанные в них объёмы памяти постоянно, а не по надобности?
6. Есть ли какие-либо советы по значениям переменных по выделению памяти в процентном соотношении от имеющейся памяти для больших нагрузок и большего быстродействия?

Вот такое накопилось smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#2 24.03.2008 12:39:24

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Несколько разных вопросов :)

7. Bin Log. Что за зверь и с чем его едят? smile Разросся до 30Гб, что не очень интересно. Можно просто удалить все файлы?


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#3 24.03.2008 12:54:03

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Несколько разных вопросов :)

1. так и есть
2. MySQL должен есть, сколько ему разрешает ОС. На 32-битных машинах это 3-4 Гб, на 64-битных - без видимого ограничения. Возможно FreeBSD, посмотрите sysctl -a нет ли там ограничений
3. это, вероятно, баг. Если можно повторить, то разместите на bugs.mysql.com
4. Если ругаются, значит запрос действительно запрашивает память - это может быть, например, sort_buffer или join_buffer
5. Большинство выделяется при необходимости. Важно делить на те, которые в одном экземпляре и те, которые выделяются для каждого запроса (если ему требуется). В последней категории read_buffer, sort_buffer, join_buffer. Важно, что если запрос содержит подзапросы, то эти буфферы могут выделяться на подзапрос отдельно.
6. Универсальных советов нет, очень сильно зависит от запросов.
7. binary log - смотреть командой mysqlbinlog, запись всех апдейтов. Идея такая: Пусть у Вас есть backup от 4:00 текущего дня. В 12:00 кто-то случайно или намеренно выполнил DROP DATABASE. Как восстановить? Восстанавливаете BACKUP, а затем mysqlbinlog имя_бинлога --end-datetime="2008.03.24 11:59" | mysql
Фактически повторяете все апдейты. Еще он используется при репликации - реплицируются именно записи бинлога.
При BACKUP, у mysqldump есть ключ --flush-logs, который начинает писать бинлог заново с момента BACKUP. Кроме того, посмотрите FLUSH LOGS http://dev.mysql.com/doc/refman/5.1/en/flush.html
Если Вам не нужен, отключите просто в my.cnf, убрав строчку log-bin=..

Неактивен

 

#4 24.03.2008 13:04:19

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Несколько разных вопросов :)

3. Даже если и баг, раньше он точно не проявлялся smile А что разместить-то? Просто описать проблему, или показать список процессов и результат команды KILL (0 rows affected)? smile
7. А его можно настроить так, чтобы логи хранились за, скажем, прошедшие сутки? Чтобы не скапливались сильно устаревшие логи.


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#5 24.03.2008 13:07:00

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Несколько разных вопросов :)

3. описать проблему, включая все действия, которые помогают понять ее лучше, в том числе KILL
7. mysql -e "FLUSH LOGS" по cron

Неактивен

 

#6 24.03.2008 13:10:32

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Несколько разных вопросов :)

3. Если сборка из портов, то багрепорт не примут. Порты в FreeBSD битые, очень рекомендую
сначала собрать сервер из исходников, предоставляемых MySQL AB.

7. Есть параметр сервера --expire_logs_days, который заставляет сервер проверять, стирать ли
файл бинарного лога в зависимости от его давности. Также, возможно, Вам стоит обратить
внимание на параметр --max_binlog_size, который устанавливает максимальный размер файла.

Замечу, что если у Вас нету полного бэкапа, то бинлог со стертым началом абсолютно бесполезен.
Т.е. если у Вас полный бэкап раз в неделю, то бинлог за последние сутки - бесполезен.

Неактивен

 

#7 24.03.2008 13:20:58

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Несколько разных вопросов :)

Спасибо за ответы.

max_binlog_size в конфиге установил в 1Мб, но разницы не заметил. Вообще на сервере создаются ротированные бекапы раз в сутки, по этому, думаю, бин лог можно отключить smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#8 29.03.2008 19:49:15

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Несколько разных вопросов :)

3. Я подозреваю, что причина может быть в фаерволе, т.к. подобные глюки (а также не всегда успешный перезапуск сервера БД) стали наблюдаться после включения и настройки фаервола. Не подскажите, может серверу нужны ещё какие-нибудь разрешения кроме порта 3306? ОС - FreeBSD  6.3


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#9 29.03.2008 21:10:13

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6756

Re: Несколько разных вопросов :)

Можете отключить InnoDB, станет перезапускаться smile

Проблема в том, что порты битые. Флаги компилятора подобраны плохо и (не говоря уж
о том, что не оптимально) код собирается битым. Самый правильный способ - не собираться
из портов.

Фаервол никак не влияет, разумеется. Единственное, что может помешать серверу
запуститься с точки зрения сети, - это уже занятый другим приложением порт.

Неактивен

 

#10 30.03.2008 13:06:12

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Несколько разных вопросов :)

На сборку из исходников мы уже решились, надеюсь, это не будет проделано зря smile Обидно то, что раньше проблемы не наблюдалось, а InnoDB были всегда включены tongue


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#11 30.03.2008 13:07:41

Neval
Гуру
Откуда: Киев
Зарегистрирован: 11.03.2008
Сообщений: 449

Re: Несколько разных вопросов :)

А дока по флагам компилятора на родном языке де-нить имеется? smile


Человек без чувства юмора - не серьёзный человек wink

Неактивен

 

#12 30.03.2008 13:27:33

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3878

Re: Несколько разных вопросов :)

Может быть это: http://www.vikvik.ru/gnudocrus/index.html

Лучше всего смотреть man gcc, про его перевод не знаю. На самом деле исходники должны собраться сами более-менее правильно, я бы не советовал использовать расширенные оптимизационные возможности gcc (ключи -O и.т.д), так как этом может привести к снижению стабильности.

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson