配置基于GTID的复制
--------------------------------------------
在参数文件/etc/my.cnf增长下面内容:
主库
master_info_repository=TABLE
relay_log_info_repository=TABLE
log-slave-updates=true
gtid-mode=on
enforce-gtid-consistency=true
sync-master-info=1
slave-parallel-workers=2
binlog-checksum=CRC32
master-verify-checksum=1
slave-sql-verify-checksum=1
binlog-rows-query-log_events=1
report-host=10.45.10.209
report-port=3306
server_id = 2091mysql
从库除了上面的参数外,还要增长
relay-log = relay-log
relay-log-index = relay-log.indexsql
配置GTID的slave
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%' IDENTIFIED BY 'repl123';
flush privileges;
change master to master_host='10.45.10.209', master_user='repl',master_password='repl123',master_auto_position=1; 数据库
GTID复制的好处:
对运维人员来讲应该是一件大喜的事情,在主从切换后,在传统的方式里,你须要找到binlog和POS点,而后change master to指向,
而不是颇有经验的运维,每每会将其找错,形成主从同步复制报错,在mysql5.6里,你无须再知道binlog和POS点,
你只须要知道master的IP、端口,帐号密码便可,由于同步复制是自动的,mysql经过内部机制GTID自动找点同步。架构
----------------------------------------
配置多源复制:
即多个主,复制到1个从库,全部db汇总到一个slave的实例
注意:
多源数据库不能有同名库,不然会致使多源复制失败运维
例如,在220的slave 3307实例上面配置多源复制,聚集3个主的数据
CHANGE MASTER TO MASTER_HOST='10.45.10.209', MASTER_USER='repl', MASTER_PORT=3307, MASTER_PASSWORD='repl123',MASTER_AUTO_POSITION=1 FOR CHANNEL 'master209-2';
CHANGE MASTER TO MASTER_HOST='10.45.10.218', MASTER_USER='repl', MASTER_PORT=3307, MASTER_PASSWORD='repl123',MASTER_AUTO_POSITION=1 FOR CHANNEL 'master218-2';
CHANGE MASTER TO MASTER_HOST='10.45.10.219', MASTER_USER='repl', MASTER_PORT=3307, MASTER_PASSWORD='repl123',MASTER_AUTO_POSITION=1 FOR CHANNEL 'master219-2';server
经常使用管理命令:
mysql> select * from mysql.slave_master_info;资源
mysql> START SLAVE io_thread FOR CHANNEL 'master209-2';
mysql> START SLAVE FOR CHANNEL 'master209-2';同步
mysql> show SLAVE status FOR CHANNEL 'master209-2'\Git
多源复制的好处:
对于备份目的的主备架构,多个主能够备份到一台物理备机上,节约资源io