Мой MySQL Master (без подключенных ведомых устройств прямо сейчас) записывает 125-байтовый файл каждую минуту или около того:
-rw-rw---- 1 mysql mysql 125 2012-12-28 16:46 snapshot-mysql-v2-bin.004876
-rw-rw---- 1 mysql mysql 125 2012-12-28 16:45 snapshot-mysql-v2-bin.004875
-rw-rw---- 1 mysql mysql 125 2012-12-28 16:43 snapshot-mysql-v2-bin.004874
-rw-rw---- 1 mysql mysql 125 2012-12-28 16:41 snapshot-mysql-v2-bin.004873
при записи фактического содержимого двоичного журнала в файл с гораздо меньшим номером:
-rw-rw---- 1 mysql mysql 330755915 2012-12-28 16:48 snapshot-mysql-v2-bin.004472
(и когда этот файл заполняется, он переходит к следующему файлу).
Кроме того, MySQL не записывает имя фактического файла с содержимым (004472 выше) в файл .index, поэтому, когда я подключаю подчиненное устройство, он не может реплицироваться, пока я не отредактирую файл .index вручную.
Версия MySQL - 5.1.41-3ubuntu12.10-log.
Любые идеи?
Проблема заключалась в том, что файл / var / lib / mysql / ibdata1 был заблокирован и недоступен для записи MySQL. Я нашел много записей об этом в файле mysql.err, несмотря на то, что сервер MySQL работал нормально (и в таблицы InnoDB было добавлено множество строк).
Чтобы исправить это, мне пришлось убить все экземпляры mysqld (выключения mysqladmin было недостаточно для их получения), а затем я запустил:
cp -a ibdata1 ibdatanew1
и я отредактировал my.cnf, чтобы указать на файл ibdatanew1. Я снова запустил MySQL, сбросил мастер, сбросил логи, и последние 6 часов все было в порядке.
Я до сих пор не понимаю, как заблокированный файл ibdata1 позволил бы MySQL продолжить работу, но, возможно, проблема с ibdata1 возникла только в отношении записи двоичного журнала? (Следует отметить, что я привык видеть проблемы с ibdata1 в журнале mysqld.log, а не в журнале mysql.err).