[MySQL] 利用MySQL Proxy 來達成read/write分離

Enviornment:

1. OpenSolaris (當 replication 的master) : mysql(5.1) and mysql-proxy (0.6.1) -- 172.16.1.31

2. WinXP (當 replication 的slave) : mysql (5.1) -- 172.16.1.35


step 1 :先實作出 replication 的環境 .

1) on master :

a) edit my.ini :確認 [mysqld] 下有 log-bin=mysql-bin 和 server-id=1,如果使用innodb的話要再確認 innodb_flush_log_at_trx_commit=1sync_binlog=1 這兩個參數

另外, skip-network 不可開啟會導致 bin-log 複製失敗.

b) create user for replication, mysql > grant replication slave on *.* to 'repl'@'%' identified by '1234';

2) on slave , edit my.ini :

確認 [mysqld] 下有 server-id=2

3) 確認 master 上的 replication information :

a) 先鎖住table, 使用 MySQL > flush tables with read lock;

b) 再取得master上的資訊 MySQL > show master status; <---請記下 file 及 position

4) 將資料由master上dump出來.

a) 使用mysqldump, shell > mysqldump --all-databases --master-data >dbdump.db

b) 如果是MyISAM ,可直接copy data目錄下的 *.frm, *.myi, *.myd

5) 接下來於slave server上執行以下statment :

a) mysql > change master to

-> master_host='172.16.1.31',

-> master_user='repl', <--這是第一步建立給slave要replication的帳號

-> master_password='1234', <--這是第一步建立給slave要replication的密碼

-> master_log_file='mysql-bin.000020', <--這是第三步由master取得的information; file

-> master_log_pos=106; <--這是第三步由master取得的information; position

* * 如果出現 ERROR 1198 (HY000): This operation cannot be performed with a running slave; run STOP SLAVE first.

b) mysql > start slave;


step 2 : 使用MySQL Proxy

1. 安裝 :

a) 安裝需求: libevent 1.x or higher

lua 5.1.x or higher

glib2 2.6.0 or higher

pkg-config

MySQL 5.0.x or higher

MySQL Proxy 0.6.1

在opensolaris上安裝上述lib有很多麻煩,其中glib2可到官網上去下載自行編譯安裝,其餘的可透過opensolaris上的套件資料庫安裝.

沒有留言:

張貼留言