Назад | Перейти на главную страницу

Ведомое устройство MySQL не может возобновить работу с ведущего устройства, если ведущее устройство перезапущено

У меня есть настройка репликации между двумя серверами mysql, один из которых является главным, а другой - подчиненным.

Это хорошо работает, если мастер не перезапускается по какой-либо причине. Когда он возвращается, ведомое устройство не подключается. На раб делаю start slave; тогда это терпит неудачу с


090922 17:49:59 [ОШИБКА] Не удалось открыть журнал реле '/var/run/mysqld/mysqld-relay-bin.000009' (relay_log_pos 67391580) 090922 17:49:59 [ОШИБКА] Не удалось найти целевой журнал во время инициализация журнала реле


И я вынужден взять все данные с главного устройства, загрузить их обратно в подчиненное устройство и запустить его снова.

Как я могу избежать этого, чтобы, если мастер перезапускается, это не задача переделывать все базы данных.

Вот конфигурационный файл Red Hat 5, mysql 5.0.45

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
old_passwords=1

server-id = 9180
slave_compressed_protocol=1
max_allowed_packet=16M

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

Похоже, что перезапуск мастера по какой-то причине стирает двоичные журналы. MySQL не сделает этого сам по себе; он либо получает команду RESET MASTER в какой-то момент, или что-то при запуске сервера очищается /var/run.

Я видел это однажды раньше, когда конфигурация на ведомом устройстве использовала DNS-имя для подключения к мастеру. В моем случае решение заключалось в использовании вместо этого IP-адреса.

Между прочим, когда вы говорите: «Я начинаю рабом», вы сначала останавливаете его, не так ли?

Я видел это раньше. Не помещайте свои журналы в / var / run. Если я правильно помню, система автоматически стирает файлы в этом каталоге. Попробуйте поместить свои двоичные журналы в другой каталог и посмотрите, появится ли ваша ошибка снова.