|
|
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
Использую в приложении MySQL в виде Embedded (5.6, от версии не зависит) и не знаю как быть с бинарными логами. Дело в том, что если включить binlog, то тут же начинает создаваться куча файлов вида binlog.001 binlog.002 binlog.003 и т.д. На обычном сервере таких файлов создаётся за день всего несколько или вообще один, это зависит от настройки max_binlog_size. В данном случае проблема, как я понимаю, состоит в том, что MySQL Embedded это не постоянно запущенный сервис (в привычном виде), а встроенный в программу движок и поэтому MySQL сервер "как бы запускается и останавливается" при каждом SQL запросе. И поскольку в MySQL почему-то задумано создавать новый бинарный лог при каждом перезапуске сервера (или это не так?), то получается что при использовании MySQL Embedded в программе создаются тысячи вот таких вот мелких файлов, вместо того чтобы хранить все логи в одном. Возможно у кого-то есть опыт в решении данной проблемы именно при работе со встроенным движком MySQL в своей программе (MySQL Embedded)? Конфигурация стандартная: log-bin=mysql-bin binlog_format=mixed max_binlog_size=1073741824 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 00:17:12 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
dartweider, а действительно ли их надо вообще включать ? не слишком ли это для встраиваемой программы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 13:35:54 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
dartweiderпри использовании MySQL Embedded в программе создаются тысячи вот таких вот мелких файлов, вместо того чтобы хранить все логи в одном. а по-моему нет он "запускается" функцией mysql_library_init() при попытке его инициализировать через библиотеку. то есть, вы постоянно вызываете инициализацию вместо того чтобы делать это при старте программы. может, просто так не делать ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 13:38:43 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
netwind, Нет, думаю не слишком :-) Как по вашему еще можно обезопасить хранилище данных, кроме как бинарными логами? Никак. Бинарные логи помогут восстановить информацию в случае внезапного отключения электричества, BSOD в системе и так далее. Вопрос ведь не в том нужно их использовать или нет, а в том, почему они некорректно работают в MySQL Embedded. Может я что-то не так делаю в программе или может в конфиге нужно что-то добавить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 13:42:20 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
netwinddartweiderпри использовании MySQL Embedded в программе создаются тысячи вот таких вот мелких файлов, вместо того чтобы хранить все логи в одном. а по-моему нет он "запускается" функцией mysql_library_init() при попытке его инициализировать через библиотеку. то есть, вы постоянно вызываете инициализацию вместо того чтобы делать это при старте программы. может, просто так не делать ? Вот, уже ближе к делу. Смотрите, на форму кинут компонент TFDPhysMySQLDriverLink и собственно в его свойствах указа путь к Dll и сервера и клиента. Т.е. это статический компонент на форме, он не пересоздаётся для каждого запроса. Дальше уже создаются (динамически) подключения и запросы. conn := TFDConnection.Create(nil); query := TFDQuery.Create(nil); Получается, что может быть виноват кривой компонент FireDAC для работы с базой (в моём случае), который каждый раз переинициализирует библиотеку MySQL? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 13:46:41 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
Нет, виноват тот, кто создаёт каждый раз коннект заново вместо того, чтобы пользоваться одним и тем же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 13:56:54 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
dartweidernetwind, Нет, думаю не слишком :-) Как по вашему еще можно обезопасить хранилище данных, кроме как бинарными логами? Никак просто использовать innodb. он же тоже в встраиваемой версии работает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 14:18:20 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
Ну и потом, что значит "обезопасить данные" ? У вас же не банковская программа наверняка. Ну потерялась транзакция и что ? Способы починки myisam гуглятся на раз. На пустом месте проблему выдумали, как мне кажется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 14:21:32 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovНет, виноват тот, кто создаёт каждый раз коннект заново вместо того, чтобы пользоваться одним и тем же. Коннекты создаются динамически, потому что их может быть 1-2 а может и 200. И они работают одновременно, очередь из SQL запросов в одном коннекте тут не канает. Причем тут они вообще? Если бы мне нужен был один коннект к базе, то я бы использовал SQLite и не трогал MySQL. Согласитесь? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 14:56:29 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
netwindНу и потом, что значит "обезопасить данные" ? У вас же не банковская программа наверняка. Ну потерялась транзакция и что ? Способы починки myisam гуглятся на раз. На пустом месте проблему выдумали, как мне кажется. netwindпросто использовать innodb. он же тоже в встраиваемой версии работает. Согласен с вами, просто хочу сделать программу понадёжнее, чтобы юзерам было как можно меньше геморроя. Вылеты и сбои Windows у юзеров нередкость, поэтому и боюсь за базу. Почему делаю упор на бинарные логи - в случае сбоя и правильной настройке база сама себя восстановит автоматически. Извините, я не гуру в MySQL. Получается что лучше использовать innodb вместо MyISAM? Точнее не так надо спросить - разве в случае отсутствия бинарных логов innodb надежнее чем myisam? Само по себе innodb хранилище считает гораздо надежнее чем MyISAM, но медленнее... Но в случае отсутствия binlog (если его вообще не использовать) эта надежность сохраняется? (сбой по питанию, сбой диска и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 15:03:34 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
авторПочему делаю упор на бинарные логи - в случае сбоя и правильной настройке база сама себя восстановит автоматически. Это неверно. назначение у log-bin в принципе другое. не для восстановления транзакций, а для репликации. А вот innodb по своим логам восстановит или откатит потерянные записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 15:10:56 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
netwindавторПочему делаю упор на бинарные логи - в случае сбоя и правильной настройке база сама себя восстановит автоматически. Это неверно. назначение у log-bin в принципе другое. не для восстановления транзакций, а для репликации. А вот innodb по своим логам восстановит или откатит потерянные записи. Знаю, но они так же используются и для восстановления. А вот то, что у InnoDB есть свои логи я как-то подзабыл. Спасибо за совет, попробую отключить нафиг binlog и попробую использовать только InnoDB. Тут уже опасения совсем другие - скорость, но надеюсь всё будет прекрасно, нагрузки на базу минимальная. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 15:17:59 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
dartweider, 1. то что первое приходит в голову (и единственное) - не правильно понимается параметр Код: plaintext Код: plaintext и вы не указали каков размер этих файлов, для понимания происходящего...на какой ОС (Win-Lin)? Что у вас еще в конфиге? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 15:22:44 |
|
||
|
Бинарные логи в MySQL Embedded, есть ли у кого опыт решения проблемы?
|
|||
|---|---|---|---|
|
#18+
dartweider, не используются для восстановления. могут использоваться для восстановления в определенных сценариях умными людьми, но сам mysql их не читает даже никогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2015, 15:25:03 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38993769&tid=1833014]: |
0ms |
get settings: |
6ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
105ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 390ms |

| 0 / 0 |
