MySQLマスター同期構成の詳細

6698 ワード

環境:
システム:CentOS Linux release 6.0.x86_64
ソフトウェア:mysql.5.1.X
Master IP 192.168.200.1
Slave IP 192.168.200.2
mysqlインストールはmysqlシングルインスタンスインストールを参照してください
MYSQL主従同期の役割
(1)データ分布
(2)負荷バランス(load balancing)
(3)バックアップ
(4)高可用性(high availability)とフォールトトレランス
MYSQL主従同期の原理
MYSQLの主従同期については、MYSQLの主従同期がどのように動作するか、すなわち主従同期の原理を理解することが最も重要であり、下図によってその動作の過程をよく指導することができる.
構成:
一、Masterの構成
1、/etc/my.cnfには以下の内容が追加されています.
ダブルクリックコード全選択
1
2
3
4
5
6
7
8
9 server-id = 1   sync_binlog=1   auto_increment_increment=2   auto_increment_offset=1   log-slave-updates   log-bin=mysql-bin    binlog-ignore-db=mysql  character- set -server=utf8  init_connect= 'SET NAMES utf8'
デフォルトの文字セットはutf 8に設定されており、この構成は実際の状況で切り捨てることができます.
2、Msterに同期アカウントを作る
ダブルクリックコード全選択
1
2 GRANT REPLICATION SLAVE,FILE ON *.* TO 'backup' @ '192.168.200.2' IDENTIFIED BY '123456' ;   FLUSH PRIVILEGES;
二、Slaveの配置、/etc/my.cnfには以下の内容が追加されています.
ダブルクリックコード全選択
1
2
3
4
5
6
7
8
9
10
11 server-id = 2   sync_binlog=1   auto_increment_increment=1   auto_increment_offset=1   log-slave-updates   log-bin=mysql-bin   binlog-ignore-db=mysql   master-host = 192.168.200.2   master-user = backup   master-password = 123456   master-port = 3306
三、Masterとslavedサーバーmysqlサービスを再起動する.
四、Slaveサーバーはメインサーバーからデータを読み取り、同期を開く
1、
ダブルクリックコード全選択
1
2 FLUSH TABLES WITH READ LOCK; #    LOAD DATA FROM MASTER  # , FILE SELECT , MyISAM , InnoDB 。
2、もしデータがInnoDBの場合、サーバーで表構造とデータを別々にエクスポートし、Slaveサーバーにコピーする必要がある.データベース全体の構造とデータをエクスポート:mysqldump-uユーザー名-pパスワード-hホストdatabase>filename.sqlはあるテーブルのデータと構造をエクスポートする:mysqldump-uユーザー名-pパスワード-hホストdatabase table>filename.sqlはデータベース内のテーブルのデータのみをエクスポートする:mysqldump-uユーザー名-pパスワード-hホスト-T database table>filename.sqlはデータベース内のテーブルの構造のみをエクスポートする:mysqldump-uユーザー名-pパスワード-hホスト-d database table>filename.sql
3、マスターサーバーでマスターの状態を確認する
ダブルクリックコード全選択
1
2
3
4
5
6
7 mysql> show master status;   +------------------+----------+--------------+------------------+   | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |   +------------------+----------+--------------+------------------+   | mysql-bin.000011 |      106 | db_cngamer   |   mysql               |   +------------------+----------+--------------+------------------+   1 row in set (0.00 sec)
ログファイルはmysql-binです.000011、同期ポイントは106
4、Slaveサーバーで次の文を実行する
ダブルクリックコード全選択
1
2
3
4
5 mysql> CHANGE MASTER TO MASTER_HOST= '192.168.11.244' ,MASTER_USER= 'backup' ,MASTER_PASSWORD= '123456' ,MASTER_LOG_FILE= 'mysql-bin.000011' ,MASTER_LOG_POS=106;    Query OK, 0 rows affected (0.01 sec)            mysql> start slave;   Query OK, 0 rows affected (0.00 sec)
4、slaveで同期状態を表示する
ダブルクリックコード全選択
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36 mysql> show slave statusG    *************************** 1. row ***************************                 Slave_IO_State: Queueing master event to the relay log                    Master_Host: 192.168.200.1                    Master_User: backup                    Master_Port: 3306                  Connect_Retry: 60                Master_Log_File: mysql-bin.000011            Read_Master_Log_Pos: 106                 Relay_Log_File: mysqld-relay-bin.000010                  Relay_Log_Pos: 106          Relay_Master_Log_File: mysql-bin.000011               Slave_IO_Running: Yes              Slave_SQL_Running: Yes                Replicate_Do_DB: typecho            Replicate_Ignore_DB: mysql,test             Replicate_Do_Table:          Replicate_Ignore_Table:         Replicate_Wild_Do_Table:    Replicate_Wild_Ignore_Table:                      Last_Errno: 0                     Last_Error:                    Skip_Counter: 0            Exec_Master_Log_Pos: 106                Relay_Log_Space: 106                Until_Condition: None                 Until_Log_File:                   Until_Log_Pos: 0             Master_SSL_Allowed: No             Master_SSL_CA_File:              Master_SSL_CA_Path:                 Master_SSL_Cert:               Master_SSL_Cipher:                  Master_SSL_Key:           Seconds_Behind_Master: 0   1 row in set (0.00 sec)
ご覧の通り、Slave_IO_RunningとSlave_SQL_Runningの2つのカラムの値は「Yes」で、SlaveのI/OとSQLスレッドが正常に動作していることを示しています.
5、構成完了
本文は「平凡な日」ブログから出ていますので、ぜひこの出典を残してください