MySQL:过滤复制添加库

58 阅读1分钟

1.需求

当前mysql5.7过滤复制(从库过滤a,b库)中需要再添加一个c库,记录下

2.操作步骤

  1. 全量备份c库,从备份得到start-position
  2. 导入c库到从库
  3. 暂停sql线程,设置REPLICATE_DO_DB参数添加上c库,从主从复制信息得到stop-position
  4. 根据以上拿到的position,解析binlog拿到sql文件
  5. 恢复sql文件数据
  6. 开启sql线程

3.操作

1.全量备份c库

mysqldump -S /db/3306/mysqld.sock  --default-character-set=utf8mb4 --master-data=2 --single-transaction --set-gtid-purged=OFF -q -f -B c|gzip >c_dump.sql.gz

2.导入c库到从库

zcat c_dump.sql.gz |mysql -S /db/3307/mysqld.sock

3.暂停sql线程

STOP SLAVE SQL_THREAD;

4.从备份和主从信息中拿到position,到主库中解析binlog

mysqlbinlog --no-defaults  --start-position=153333715 --stop-position=260035313 --database=hugo  mysql-bin.000142 |mysql -S /db/3307/mysqld.sock

5.开启sql线程

start SLAVE SQL_THREAD;