标签:多线程 主从复制 gtid sql(dml...)
GTID = source_id:transaction_id
source_id 表示执行事务的主库
transaction_id 是一个序列号,表示这个主库上执行的第 n 个事务。
server_uuid是系统自动生成的,用来的替代server_id,因为source_id是手工设置的,可能会有冲突
mysql-community-client-5.7.17-1.el6.x86_64.rpm
mysql-community-common-5.7.17-1.el6.x86_64.rpm
mysql-community-libs-5.7.17-1.el6.x86_64.rpm
mysql-community-libs-compat-5.7.17-1.el6.x86_64.rpm
mysql-community-server-5.7.17-1.el6.x86_64.rpm
yum install * -y
/etc/init.d/mysqld start
tail -n 3 /var/log/mysqld.log
创建root用户
mysql> alter user root@localhost identified by ‘Westos+007‘;
vim /etc/my.cnf
23 server-id=3
24 gtid-mode=ON
25 enforce-gtid-consistency
26
27 log-bin=mysql-bin
28 binlog-do-db=test
29
30 log-slave-updates
mysql> grant replication slave on *.* to miao@‘172.25.88.%‘ identified by ‘Westos+007‘;
vim /etc/my.cnf
23 server-id=4
24 read-only
25
26 gtid-mode=ON
27 enforce-gtid-consistency
28
29 log-slave-updates #开启从库改变记录在log-bin日志的属性,从库也可能作其他数据库的主库
将server33设置master,
mysql> change master to master_host=‘172.25.88.33‘,master_user=‘miao‘,master_password=‘Westos+007‘ ,master_auto_position=1;#自动定位pos
mysql> start slave;
检验是否为GTID模式
1.不用手动定位pos和binlog的位置,添加参数master_auto_position=1即可
2.多线程并发复制,Slave-parallel-workers=0,1,2(禁用,单线程,两个线程)
master数据库有改动,比如DML,存入bin-log中,
备份到主数据库中,网络I/O才去master给slave去取数据
所以经典模式下一般手动设置给slave备份,因为一定要保证主被数据一样,自动容易出问题。
推荐使用mysql5.7
1.DDL(Definition)数据库定义语言
DDL不需要commit.
CREATE,ALTER,DROP,TRUNCATE(快速清空sql表),COMMENT,RENAME
2.DML(Manipulation)数据操纵语言
DML需要commit.
SELECT,INSERT,UPDATE,DELETE,MERGE(更改),CALL,EXPLAIN PLAN,LOCK TABLE
3.DCL(Control )数据库控制语言
GRANT 授权 REVOKE
4.TCL(Transaction Control Language)事务控制语言
SAVEPOINT 设置保存点,ROLLBACK 回滚,SET TRANSACTION
I/O:selinux,iptables,授权
SQL:主从数据不一致
本文出自 “12049878” 博客,谢绝转载!
标签:多线程 主从复制 gtid sql(dml...)
原文地址:http://12059878.blog.51cto.com/12049878/1911768