MySQL搭建帶過濾的複製環境

dbhelper發表於2014-11-27
單位準備新上線一些功能,這些功能和原來生產庫模組的功能是沒有關係的,準備新建一個資料庫給它使用。
但是他需要關聯查詢原來生產庫的某些表。
後來的方案就是新建一個庫,從原來的生產庫複製需要的那幾個表過來用於關聯查詢。


模擬如下
Master模擬生產庫,Slave是新建的資料庫,只是從Master伺服器複製表A。

1.Master初始化資料,模擬線上執行一段時間的資料庫
  1. create database mvbox;
  2. use mvbox;
  3. create table a as select * from mysql.user;
  4. create table b as select * from mysql.db;
2.Master建立複製帳號
  1. grant replication slave,replication client on *.*
  2. to xx@'%' identified by 'xx';
3.修改Slave的配置檔案
    replicate-do-table=mvbox.a

4.Slave建立目標資料庫 mvbox
    create database mvbox;    

5.Slave配置複製資訊
  1. change master to
  2. master_host='192.168.56.1',
  3. master_port=3306,
  4. master_user='xx',
  5. master_password='xx';

6.Slave匯入Master的資料(Slave伺服器上執行)
  1. mysqldump -uxx -pxx -h192.168.56.1 --single-transaction --master-data mvbox a | mysql -uroot -Dmvbox
原理:
這個過程執行之前,檢視Master的binlog位置


假如在Slave上生成Master SQL檔案的內容
mysqldump -uxx -pxx -h192.168.56.1 --single-transaction --master-data mvbox a > a.sql
可以看到生成的內容已經包括了Master伺服器binlog的資訊


應用了mysqldump的內容之後
此時檢視Slave的複製狀態


7.在Slave上啟動複製
    start slave;

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-1250101/,如需轉載,請註明出處,否則將追究法律責任。

相關文章