Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день всем!
на обеих машинах
# 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
Помогите с проблемкой
Спасибо
Неактивен
Ну так табличка же уже есть, да? Зачем заливать данные второй раз?
Неактивен
Да, спасибо, я уже сам понял что load data from master нужно делать всего раз, перед запуском и на одной машине
Неактивен
Помогите с проблемкой или обясните что я делаю не правильно
Как я понял репликация работает так в моем случае
При простое одного из серверов, после его включения сервер сам скачает обновления и сделает свои данные актуальными. Не нужно на нем делать 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
Неактивен