MySQLデータベース2台のホストが同時に実戦
6889 ワード
MySQLは一方向、非同期レプリケーションをサポートし、レプリケーション中に1つのサーバがプライマリサーバとして機能し、1つ以上の他のサーバがセカンダリサーバとして機能します.プライマリ・サーバは、バイナリ・ログ・ファイルに書き込まれたインデックスを更新し、ログ・ファイルのインデックスを維持してログ・ループを追跡します.
サーバからプライマリ・サーバに接続すると、プライマリ・サーバにログから最後に正常に更新された場所を通知します.その時から発生した更新をサーバから受信し、プライマリ・サーバが次の更新を通知するのをブラックアウトして待機します.
実际のプロジェクトでは、2台の离れたホストにMySQLデータベースがインストールされています.2台のサーバーは互いに准备されています.お客様は、1台の机械が故障した场合、もう1台はサーバー上のアプリケーションを引き継ぐことができます.これは、2台のデータベースのデータが実际に一致する必要があります.ここではMySQLの同期机能を使用して、2台の同期コピーを実现します.
次の操作例を示します.
サーバからプライマリ・サーバに接続すると、プライマリ・サーバにログから最後に正常に更新された場所を通知します.その時から発生した更新をサーバから受信し、プライマリ・サーバが次の更新を通知するのをブラックアウトして待機します.
実际のプロジェクトでは、2台の离れたホストにMySQLデータベースがインストールされています.2台のサーバーは互いに准备されています.お客様は、1台の机械が故障した场合、もう1台はサーバー上のアプリケーションを引き継ぐことができます.これは、2台のデータベースのデータが実际に一致する必要があります.ここではMySQLの同期机能を使用して、2台の同期コピーを実现します.
次の操作例を示します.
1、
:RedHat Enterprise Linux 5
:MySQL Ver 14.12 Distrib 5.0.22
:MySQL
:
ServA:10.240.136.9
ServB:10.240.136.149
1.1
ServA ServB :
MySQL>GRANT all privileges ON *.* TO tongbu@'10.240.136.149' IDENTIFIED BY '123456';
ServB ServA :
MySQL>GRANT all privileges ON *.* TO tongbu@'10.240.136.9' IDENTIFIED BY '123456';
1.2
1、 root ServA, ServA my.cnf
vi /etc/my.cnf
[MySQLd] :
1 default-character-set=utf82 3 log-bin=MySQL-bin4 5 relay-log=relay-bin6 7 relay-log-index=relay-bin-index8 9 server-id=110 11 master-host=10.240.136.14912 13 master-user=tongbu14 15 master-password=12345616 17 master-port=330618 19 master-connect-retry=3020 21 binlog-do-db=umsdb22 23 replicate-do-db=umsdb24 25 replicate-ignore-table=umsdb.boco_tb_menu26 27 replicate-ignore-table=umsdb.boco_tb_connect_log28 29 replicate-ignore-table=umsdb.boco_tb_data_stat30 31 replicate-ignore-table=umsdb.boco_tb_log_record32 33 replicate-ignore-table=umsdb.boco_tb_workorder_record
2、 root ServB, ServB my.cnf
vi /etc/my.cnf
[MySQLd] :
1 default-character-set=utf82 3 log-bin=MySQL-bin4 5 relay-log=relay-bin6 7 relay-log-index=relay-bin-index8 9 server-id=210 11 master-host=10.240.136.912 13 master-user=tongbu14 15 master-password=12345616 17 master-port=330618 19 master-connect-retry=3020 21 binlog-do-db=umsdb22 23 replicate-do-db=umsdb24 25 replicate-ignore-table=umsdb.boco_tb_menu26 27 replicate-ignore-table=umsdb.boco_tb_connect_log28 29 replicate-ignore-table=umsdb.boco_tb_data_stat30 31 replicate-ignore-table=umsdb.boco_tb_log_record32 33 replicate-ignore-table=umsdb.boco_tb_workorder_record
1.3
ServA , ServB MySQL:
service MySQLd restart
ServB root MySQL, :
MySQL> stop slave;
MySQL> load data from master;
MySQL> start slave;
ServA MySQL:
service MySQLd restart
1.4
MySQL :
MySQL> show slave status\G
, , slave , yes ; , :
1 *************************** 1. row ***************************2 3 Slave_IO_State: Waiting for master to send event4 5 Master_Host: 10.21.2.906 7 Master_User: tongbu8 9 Master_Port: 330610 11 Connect_Retry: 3012 13 Master_Log_File: localhost-bin.00000514 15 Read_Master_Log_Pos: 3975388216 17 Relay_Log_File: localhost-relay-bin.00006218 19 Relay_Log_Pos: 982666320 21 Relay_Master_Log_File: localhost-bin.00000522 23 Slave_IO_Running: Yes24 25 Slave_SQL_Running: Yes26 27 Replicate_Do_DB: bak,umsdb28 29 Replicate_Ignore_DB:30 31 Replicate_Do_Table:32 33 Replicate_Ignore_Table: umsdb.boco_tb_connect_log,umsdb.boco_tb_menu,umsdb.boco_tb_workorder_record,
umsdb.boco_tb_data_stat,umsdb.boco_tb_log_record34 35 Replicate_Wild_Do_Table:36 37 Replicate_Wild_Ignore_Table:38 39 Last_Errno: 040 41 Last_Error:42 43 Skip_Counter: 044 45 Exec_Master_Log_Pos: 3975388246 47 Relay_Log_Space: 982666348 49 Until_Condition: None50 51 Until_Log_File:52 53 Until_Log_Pos: 054 55 Master_SSL_Allowed: No56 57 Master_SSL_CA_File:58 59 Master_SSL_CA_Path:60 61 Master_SSL_Cert:62 63 Master_SSL_Cipher:64 65 Master_SSL_Key:66 67 Seconds_Behind_Master:
3、
, , ServA , ServB , 。
ServB , ServA , ServB , ServB , show slave status\G Slave_IO_Running No, , ServB 。 ? 。 , :
--slave-net-timeout=seconds
: slave log , 。
, 60
slave-net-timeout=60
MySQL , 。
4、
, slave master , slave :
MySQL> show slave status\G
:
1 *************************** 1. row ***************************2 3 Slave_IO_State: Waiting for master to send event4 5 Master_Host: 10.21.3.2406 7 Master_User: tongbu8 9 Master_Port: 330610 11 Connect_Retry: 3012 13 Master_Log_File: MySQL-bin.00000114 15 Read_Master_Log_Pos: 36016 17 Relay_Log_File: localhost-relay-bin.00000318 19 Relay_Log_Pos: 49720 21 Relay_Master_Log_File: MySQL-bin.00000122 23 Slave_IO_Running: Yes24 25 Slave_SQL_Running: Yes26 27 Replicate_Do_DB: bak28 29 Replicate_Ignore_DB:30 31 Replicate_Do_Table:32 33 Replicate_Ignore_Table:34 35 Replicate_Wild_Do_Table:36 37 Replicate_Wild_Ignore_Table:38 39 Last_Errno: 040 41 Last_Error:42 43 Skip_Counter: 044 45 Exec_Master_Log_Pos: 36046 47 Relay_Log_Space: 49748 49 Until_Condition: None50 51 Until_Log_File:52 53 Until_Log_Pos: 054 55 Master_SSL_Allowed: No56 57 Master_SSL_CA_File:58 59 Master_SSL_CA_Path:60 61 Master_SSL_Cert:62 63 Master_SSL_Cipher:64 65 Master_SSL_Key:66 67 Seconds_Behind_Master: 0 Master_Log_File master 。
master :
MySQL> show master logs;
:
+----------------------+-----------+
| Log_name | File_size |
+----------------------+-----------+
| localhost-bin.000001 | 495 |
| localhost-bin.000002 | 3394 |
+----------------------+-----------+
slave Master_Log_File master , slave :
MySQL> start slave;
master , master , 。
slave :
MySQL> stop slave;
master :
MySQL> stop slave;
slave :
MySQL> load data from master;
MySQL> reset master;
MySQL> start slave;
master :
MySQL> reset slave;
MySQL>start slave;
:LOAD DATA FROM MASTER MyISAM 。