Linux之Mysql的主从复制(gtid复制、异步复制、全同步复制和半同步复制)

一、Mysql

1. Mysql的介绍

Mysql是一个关系型数据库管理系统,由瑞典MYSQL AB公司开发,目前属于Oracle旗下的产品。关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

2. Mysql复制的介绍

(1)异步复制(Asynchronous replication)

MySQL主从复制是指数据可以从一个MySQL数据库服务器主节点复制到一个或多个从节点。MySQL 默认采用异步复制方式,主库在执行完客户端提交的事务后会立即将结果返给给客户端,并不关心从库是否已经接收并处理,这样就会有一个问题,主如果crash掉了,此时主上已经提交的事务可能并没有传到从上,如果此时,强行将从提升为主,可能导致新主上的数据不完整。

(2)全同步复制(Fully synchronous replication)

指当主库执行完一个事务,所有的从库都执行了该事务才返回给客户端。因为需要等待所有从库执行完该事务才能返回,所以全同步复制的性能必然会收到严重的影响。

(3)半同步复制(Semisynchronous replication)

介于异步复制和全同步复制之间,主库在执行完客户端提交的事务后不是立刻返回给客户端,而是等待至少一个从库接收到并写到relay log中才返回给客户端。相对于异步复制,半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。所以,半同步复制最好在低延时的网络中使用。

3. Mysql中的线程介绍

(1)主节点 binary log dump 线程

当从节点连接主节点时,主节点会创建一个log dump 线程,用于发送bin-log的内容。在读取bin-log中的操作时,此线程会对主节点上的bin-log加锁,当读取完成,甚至在发动给从节点之前,锁会被释放。

(2)从节点I/O线程

当从节点上执行start slave命令之后,从节点会创建一个I/O线程用来连接主节点,请求主库中更新的bin-log。I/O线程接收到主节点binlog dump 进程发来的更新之后,保存在本地relay-log中。

(3)从节点SQL线程

SQL线程负责读取relay log中的内容,解析成具体的操作并执行,最终保证主从数据的一致性。

二、Mysql安装

1. 下载软件,解开tar包

mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
tar xf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar

2. 删除不需要的包,安装要使用的包

rm -fr mysql-community-devel-5.7.24-1.el7.x86_64.rpm 
mysql-community-embedded-5.7.24-1.el7.x86_64.rpm 
mysql-community-embedded-compat-5.7.24-1.el7.x86_64.rpm 
mysql-community-embedded-devel-5.7.24-1.el7.x86_64.rpm
mysql-community-minimal-debuginfo-5.7.24-1.el7.x86_64.rpm
mysql-community-server-minimal-5.7.24-1.el7.x86_64.rpm
mysql-community-test-5.7.24-1.el7.x86_64.rpm
yum install -y *.rpm

3. 修改配置文件

vim /etc/my.cnf
log-bin=mysql-bin    #文档最后加,二进制日志复制,id号来区分主机
server-id =1
systemctl start mysqld

4. 使用随机密码,进行安全初始化

cat /var/log/mysqld.log  | grep password
mysql_secure_installation   (1个n,其余的都为y)
密码必须有字母、数字、特殊字符

5. 创建用户并授权

msql -uroot -p    #登录数据库
CREATE USER 'repl'@'172.25.65.%' IDENTIFIED BY 'Jiang+123';    #创建用户
GRANT REPLICATION SLAVE ON *.* TO 'repl'@'172.25.65.%';        #授权
flush privileges;        #刷新授权表
show plugins;		#查看密码设置插件
show master status;	#查看主mysql的状态,从中获取日志文件和当前日志位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值