设定MasterDB
要作抄写的MasterDB必须开启binarylogging,并且在每一个DB主机上,需设定不同的server-id值,这个值是用来辨识群组内的不同主机识别用,其值是介于1-232 。
请关闭MySQL并修改/etc/my.cnf内容如下:
shell> service mysqld stopshell> vi /etc/my.cnf
[mysqld]
# Replication on Master DB
log-bin=mysql-bin
server-id=1
shell> service mysqld start
取得MasterDB 抄写点信息
为了要使SlaveDB作抄写,必须先在MasterDB上确定目前的数据点信息,以使SlaveDB可以从目前的数据点开始作数据抄写,如此可确保两端的数据是同步的。
要取得 Master DB 目前数据点,必须先锁住要作作抄写数据库的所有 tables 的写入操作。
在MasterDB执行下述SQLstatements:
mysql> FLUSH TABLES WITH READ LOCK;Query OK, 0 rows affected (0.01 sec)
mysql> SHOW MASTER STATUS;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 5752 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
请记住这两项信息,后续设定SlaveDB时会用到:File -binarylog檔名
Position - 数据点位置
注意:
对于 InnoDB tables,当执行 FLUSH TABLES WITH READ LOCK 时会锁定所有 table 的 COMMIT 操作。
如果未开启 binary logging,这两字段 File & Position 则为显示空白及 4。