SQLinfo.ru - Все о MySQL

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

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

Вы не зашли.

#1 07.04.2011 17:45:42

moose
Участник
Зарегистрирован: 07.04.2011
Сообщений: 16

проблема в репликации мастер-мастер

Добрый день всем!

на обеих машинах
# mysql -V
mysql  Ver 14.14 Distrib 5.1.55, for portbld-freebsd8.2 (amd64) using  5.2

Настроил репликацию мастер-мастер

Когда делаю stop slave load data from master start slave с одного сервера все проходит красиво и быстро
когда делаю stop slave load data from master start slave с другого сервера выдает ошибку и долго обрабатывает

110407 16:31:52 [ERROR] Slave SQL: Error 'Table 'test_tariffs' already exists' on query. Default database: 'test'.
........
110407 16:31:52 [Warning] Slave: Table 'test_tariffs' already exists Error_code: 1050
110407 16:31:52 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'test-bin.000005' position 112431


Помогите с проблемкой
Спасибо

Неактивен

 

#2 08.04.2011 21:56:47

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

Re: проблема в репликации мастер-мастер

Ну так табличка же уже есть, да? Зачем заливать данные второй раз?

Неактивен

 

#3 10.04.2011 02:26:07

moose
Участник
Зарегистрирован: 07.04.2011
Сообщений: 16

Re: проблема в репликации мастер-мастер

Да, спасибо, я уже сам понял что load data from master нужно делать всего раз, перед запуском  и на одной машине

Неактивен

 

#4 11.04.2011 14:52:00

moose
Участник
Зарегистрирован: 07.04.2011
Сообщений: 16

Re: проблема в репликации мастер-мастер

Помогите с проблемкой или обясните что я делаю не правильно
Как я понял репликация работает так в моем случае

При простое одного из серверов, после его включения сервер сам скачает обновления и сделает свои данные актуальными. Не нужно на нем делать load data. Разумеется, во время этого процесса не стоит выполнять на "опаздывающем" сервере никакие запросы, потому что результат будет непредсказуем.
Но если что-то пошло не так, например сервер был выключен слишком долго, binlog-и были удалены с основного сервера за давностью, тогда сервер что опаздует не сможет скачать обновления и тут уже нужно вручную синхронизировать данные.

делаю проверку

Остановил сервер С2, на С1 добавил в таблицы данные,прошло буквально 3 минуты , включил С2

На С1
....
Slave_IO_Running: No
Slave_SQL_Running: Yes
....
Last_IO_Error: error reconnecting to master 'replication@10.0.0.2:3306' - retry-time: 60 retries: 86400

за несколько секунд в С1

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

на втором С2 сделал вручную

CHANGE MASTER TO MASTER_HOST='10.0.0.1', MASTER_USER='replication', MASTER_PASSWORD='slaveASD123', MASTER_LOG_FILE=' mysql-bin.000001', MASTER_LOG_POS=12823;

где MASTER_LOG_FILE=mysql-bin.000001 MASTER_LOG_POS=12823 посмотрел на С1

start slave;
show slave status\G;

....
Slave_IO_Running: No
Slave_SQL_Running: Yes
....
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'


Конфиги такие за исключением server-id = 1 и auto-increment-offset = 1 на одном , а на втором

skip-slave-start
slave-compressed = 1
server-id = 2
relay-log=mysql-relay-bin
log-bin=mysql-bin
auto-increment-increment = 2
auto-increment-offset = 2
replicate-same-server-id = 0
binlog-do-db = abills
binlog-ignore-db = mysql


включил лог запросов, при старте второго сервера С2 , ни чего не происходить, значить ошибки не должно быть

tail -f querry.log
/usr/local/libexec/mysqld, Version: 5.1.55-log (FreeBSD port: mysql-server-5.1.55). started with:
Tcp port: 3306 Unix socket: /tmp/mysql.sock
Time Id Command Argument


добавляются данные когда синхронизируется С1

110411 13:15:02 1 Connect replication@10.0.0.1 on
1 Query SET NAMES latin1
1 Query SELECT UNIX_TIMESTAMP()
1 Query SHOW VARIABLES LIKE 'SERVER_ID'
1 Binlog Dump Log: 'mysql-bin.000003' Pos: 106

Неактивен

 

Board footer

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