|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » MySQL - Настройка репликации MySQL с мастер-хоста на слейв-хост |
|
|
MySQL - Настройка репликации MySQL с мастер-хоста на слейв-хост
|
Ветеран Сообщения: 1051 |
В интернете есть множество статей, как это сделать. Так же есть официальный мануал по настройке репликации.
Сделал все как там написано. В итоге имею мастер хост с такими настройками: [mysqld] log-bin server-id=1 character_set_server=cp1251 default-character-set=cp1251 init-connect="SET NAMES cp1251" [mysqld] master-host=192.168.4.1 master-user=replicator master-password=пароль master-port=3306 server-id=2 #log-bin = /var/log/mysql/bin.log #log-bin-index = /var/log/mysql/log-bin.index log-error = /var/log/mysql/error.log #relay-log = /var/log/mysql/relay.log #relay-log-info-file = /var/log/mysql/relay-log.info #relay-log-index = /var/log/mysql/relay-log.index character_set_server=cp1251 default-character-set=cp1251 init-connect="SET NAMES cp1251" mysql> show master status; +--------------------+-----------+-------------------+-----------------------+ | File | Position | Binlog_Do_DB | Binlog_Ignore_DB | +--------------------+-----------+-------------------+-----------------------+ | host-bin.000001 | 436849134 | | | +--------------------+-----------+--------------+------------------+ 1 row in set (0.00 sec) На слейве: show slave status; Slave_IO_State Waiting for master to send event Master_Host 192.168.4.1 Master_User Replicator Master_Port 3306 Connect_Retry 60 Master_Log_File host-bin.000001 Read_Master_Log_Pos 436871384 Relay_Log_File host-relay-bin.000010 Relay_Log_Pos 1040597 Relay_Master_Log_File host-bin.000001 Slave_IO_Running Yes Slave_SQL_Running Yes Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table 0 Last_Errno Last_Error 0 Skip_Counter 436871384 Exec_Master_Log_Pos 1040597 Relay_Log_Space None Until_Condition Until_Log_File 0 Until_Log_Pos No Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master 0 На слейве: load data from master; Query OK, 0 rows affected, 1 warning (5.10 sec) Собственно вопросы: 1. Вижу по размерам БД то, что они не соответствуют друг другу. Значит репликация не работает. 2. Где взять более подробное описание настройки репликации? Как я понимаю команда SLAVE START, стартует запись в двоичный журнал. А команда load data from master, уже реплицирует данные. Причем при старте самой репликации таблицы мастер хоста блокируются. 3. Почему в моем случае, команда load data from master не выполняет своих действий так, как должна? |
|
------- Отправлено: 11:11, 14-08-2007 |
Ветеран Сообщения: 7169
|
Профиль | Отправить PM | Цитировать Цитата Negativ:
![]() Цитата:
А вообще пакеты идут к мастеру? Точнее, от мастера к слейву? У меня есть подозрения, что файерволл блокирует-с... Цитата Negativ:
opennet |
|||
------- Отправлено: 11:53, 14-08-2007 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1051
|
Профиль | Отправить PM | Цитировать dmitryst
Собственно в логах слейва вижу это: file host.local.err: 070814 11:21:45 mysqld started 070814 11:21:45 InnoDB: Started; log sequence number 0 43655 070814 11:21:45 [Warning] Neither --relay-log nor --relay-log-index were used; s o replication may break when this MySQL server acts as a slave and has his hostn ame changed!! Please use '--relay-log=host-relay-bin' to avoid this problem. 070814 11:21:45 [Note] /usr/local/libexec/mysqld: ready for connections. Version: '5.0.27' socket: '/tmp/mysql.sock' port: 3306 FreeBSD port: mysql-se rver-5.0.27 070814 11:21:45 [Note] Slave SQL thread initialized, starting replication in log 'host-bin.000001' at position 441269501, relay log './host-relay-bin.0000 02' position: 4363820 070814 11:21:50 [Note] Slave I/O thread: connected to master 'replicator@192.168.4.1 1:3306', replication started in log 'host-bin.000001' at position 441269501 070814 11:24:27 [Note] Slave I/O thread killed while reading event 070814 11:24:27 [Note] Slave I/O thread exiting, read up to log 'host-bin.000 001', position 441295868 070814 11:24:27 [Note] Error reading relay log event: slave SQL thread was kille d 070814 11:24:32 [Note] Slave SQL thread initialized, starting replication in log 'host-bin.000001' at position 441295868, relay log './host-relay-bin.0000 01' position: 4 070814 11:24:37 [Note] Slave I/O thread: connected to master 'replicator@192.168.4.1 1:3306', replication started in log 'host-bin.000001' at position 441295868 ... -rw-rw---- 1 mysql mysql 3040 Aug 13 02:09 property_definitions.MYD -rw-rw---- 1 mysql mysql 10240 Aug 13 02:09 property_definitions.MYI -rw-rw---- 1 mysql mysql 8764 Aug 13 02:09 property_definitions.frm -rw-rw---- 1 mysql mysql 22360 Aug 13 02:09 property_values.MYD -rw-rw---- 1 mysql mysql 45056 Aug 13 02:09 property_values.MYI -rw-rw---- 1 mysql mysql 8634 Aug 13 02:09 property_values.frm ... Интересен момент: автоматически сервер MySQL может реплицировать данные, без ручной команды load data from master? Возможно эффект load data from master; Query OK, 0 rows affected, 1 warning (5.10 sec) зависит от активности БД? |
------- Отправлено: 12:09, 14-08-2007 | #3 |
![]() Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать Цитата Negativ:
Чтобы включить репликацию достаточно стартонуть мастер, а потом слейв. Самое важное: перед началом репликации базы данных должны быть абсолютно одинаковы! И схема базы и данные должны быть одинаковы. Сделайте копию базы с мастера, запишите данную копию на слейв и только тогда стартуйте репликацию. Ещё из личного опыта: не реплицируйте все базы данных - особенно нельзя реплицировать системную базу данных, а то там начнётся проблемы с созданием юзеров и тд. Для ограничения репликации по базам данных используйте Пара ссылок: Команды и настрйка Репликации Команды Репликации Статья Потестируйте сначало на тестовых баз данных, потом переходите на продуктивную |
|
------- Отправлено: 12:17, 14-08-2007 | #4 |
Ветеран Сообщения: 7169
|
Профиль | Отправить PM | Цитировать Negativ, я бы залил на мастер таблицы со слейва, якобы реплицированные ночью. Ну и сравнил бы.
Цитата Negativ:
|
||
------- Последний раз редактировалось dmitryst, 14-08-2007 в 12:56. Причина: АшЫпка :( Отправлено: 12:26, 14-08-2007 | #5 |
![]() Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать Negativ,
Coветую из лчного опыта - сделайте полный Reset и начните заново - только базы данных подготовьте |
------- Отправлено: 12:36, 14-08-2007 | #6 |
Ветеран Сообщения: 1051
|
Профиль | Отправить PM | Цитировать dmitryst
приходила такая мысль в голову, но т.к. рабочая БД постоянно меняется проверить идентичность практически нереально. Цитата vadimiron:
position 441295868 Я вот только догадываться могу, что это за позиция и где она вообще. ![]() |
|
------- Отправлено: 12:53, 14-08-2007 | #7 |
Ветеран Сообщения: 7169
|
Профиль | Отправить PM | Цитировать Negativ, а если на доп. компе по-быстренькому сделать имитацию? Базы, конечно ,не нужно реальные, можно просто какой-нибудь тестовой чепухой забить, и время от времени менять. Ручками. И контролировать слейв.
|
------- Отправлено: 12:58, 14-08-2007 | #8 |
Ветеран Сообщения: 1051
|
Профиль | Отправить PM | Цитировать Цитата vadimiron:
|
|
------- Отправлено: 13:06, 14-08-2007 | #9 |
![]() Ветеран Сообщения: 1864
|
Профиль | Отправить PM | Цитировать Цитата Negativ:
Эта команда затирает все логи и все ошибки. При проблемах я ей всегда пользуюсь. Когда возникают ошибки и репликация падает, я останавливаю репликацию, использую RESET, привожу базы данных на один уровень и запускаю репликацию. Ошибки у меня возникали только в начале - потом когда всё понял и настроил, вообще проблем не возникает. Уже полгода даже не притрагивался к репликации. У меня к тому же двухсторонняя репликация работает: то есть оба сервера обнавляют друг друга |
|
------- Отправлено: 13:09, 14-08-2007 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Apache [Настройка виртуального хоста] | fast_info | Вебмастеру | 3 | 07-10-2008 14:59 | |
MySQL - [решено] Mysql не может резолвить имя хоста | Filariel | Программирование и базы данных | 4 | 04-10-2006 13:52 | |
Настройка MySQL с русскими шрифтами? | m2001 | Вебмастеру | 3 | 07-04-2005 13:19 | |
MySQL настройка, помогите? | Guest | Вебмастеру | 16 | 19-10-2004 10:31 | |
Закачка на хост MySQL базы | Terabyte | Вебмастеру | 1 | 31-01-2003 16:10 |
|