1 . 介紹
MySQL 支援單向、非同步複製,複製過程中一個伺服器充當主伺服器,而一個或多個其它伺服器充當從伺服器。主伺服器將更新寫入二進位記錄檔,並維護檔案的一個索引以追蹤記錄檔迴圈。這些日誌可以記錄發送到從伺服器的更新。當一個從伺服器串連主伺服器時,它通知主伺服器從伺服器在日誌中讀取的最後一次成功更新的位置。 從伺服器接收從那時起發生的任何更新,然後封鎖並等待主伺服器通知新的更新。請注意當你進行複製時,所有對複製中的表的更新必須在主伺服器上進行。否則,你必須要小心,以避免使用者對主伺服器上的表進行的更新與對從伺服器上的表所進行的更新之間的衝突。
單向複製有利於健壯性、速度和系統管理:
· 主伺服器/從伺服器設定增加了健壯性。主伺服器出現問題時,你可以切換到從伺服器作為備份。
· 通 過在主伺服器和從伺服器之間切分處理客戶查詢的負荷,可以得到更好的客戶回應時間。SELECT查詢可以發送到從伺服器以降低主伺服器的查詢處理負荷。但 修改資料的語句仍然應發送到主伺服器,以便主伺服器和從伺服器保持同步。如果非更新查詢為主,該負載平衡策略很有效,但一般是更新查詢。
· 使用複製的另一個好處是可以使用一個從伺服器執行備份,而不會干擾主伺服器。在備份過程中主伺服器可以繼續處理更新。MySQL 提供了資料庫的同步功能,www.bkjia.com這對我們實現資料庫的冗災、備份、恢複、負載平衡等都是有極大協助
rhel6
master 192.168.0.56
slave 192.168.0.71
master配置:
- yum install mysql mysql-server -y
- vim /etc/my.cnf #加入以下內容
- server-id=1 必須為1到232–1之間的一個正整數值
- log-bin=mysql-bin 啟動二進位日誌系統
- binlog-do-db=test 二進位需要同步的資料庫名
- binlog-ignore-db=mysql 避免同步 mysql 使用者配置,以免不必要的麻煩
- 1)建立同步帳戶,並給予許可權
- /etc/init.d/mysqld start
- mysql
- mysql> grant replication slave,reload,super on *.* to test@'192.168.0.71' identified by 'test';
- flush privileges ;
slave配置:
- yum install mysql mysql-server -y
- mysql -h 192.168.0.56 -utest -ptest 測試同步帳號是否可以使用
在/usr/share/doc/mysql-server-5.1.47/中的my-medium.cnf是mysql配置的模板,它裡面介紹裡兩種配置slave的方式,第一種為直接在設定檔中進行配置:
- 在[mysqld]下添加一下參數
- server-id=2 從伺服器 ID 號,不要和主 ID 相同,如果設定多個從伺服器,每個從伺服器必須有一個唯一的server-id值,必須與主伺服器的以及其它從伺服器的不相同。可以認為server-id值類似於IP地址:這些ID值能唯一識別複製伺服器叢集中的每個伺服器執行個體。
- master-host=192.168.0.11 指定主伺服器 IP 地址
- master-user=test 指定在主伺服器上可以進行同步的使用者名稱
- master-password=test 密碼
- master-port=3306 同步所用的連接埠
- master-connect-retry=60 斷點重新連線時間
- replicate-ignore-db=mysql 屏蔽對 mysql 庫的同步,以免有麻煩
- replicate-do-db=test 同步資料庫名稱
-
- service mysqld start