4.mysql学习笔记:mysql的复制(一)

来源:互联网 发布:算法的复杂度分析 编辑:程序博客网 时间:2024/06/05 17:30

mysql的复制

复制概述

复制要解决的一个基本问题是服务器之间数据的同步,一个master(主库)的数据可以同步到多个备库(slave)上。而且其中一个备库也可以配置成令一个服务器的主库。

mysql支持两种复制方式:

1.基于行的复制
2.基于语句的复制

两种方式都是在主库上记录二进制日志,在备库上重放日志的方式来实现异步的数据复制的(mysql还支持半同步复制,不过效率要略低于异步复制)。这个方式可能会导致备库(slave)上的数据可能与主库(master)上的有所延迟。

一般来讲:msyql的复制大部分是向后兼容的,也就是说新版本的服务器要作为老版本的备库(slave),因为旧版的不一定能够支持新的特性。


复制需要解决的问题

复制常见的用途有:

1.数据分布
2.负载均衡

通过mysql的复制可以将读操作分布到多个服务器上,实现对读密集型应用的优化。

可以采用的技巧是:
(1)DNS轮询
(2)LVS(linux虚拟服务器)

3.高性能和故障分析
帮助应用程序避开单点故障
4.mysql升级测试


复制的如何工作

mysql的复制包含有三个步骤:

1.在主库(master)上把数据更改记录到二进制日志中(Binary Log),这些记录被成为二进制日志事件。
2.备库(slave)将主库上的日志复制到自己的中继日志(Relay Log)中。
3.备库读取中继日志中的事件,将其放到备库数据之上。

如下图所示:
这里写图片描述

注意:mysql会根据事务提交的顺序而非每条语句的执行顺序来记录二进制日志


配置复制

为mysql服务器配置复制一般分为以下几个步骤:

1.在每台服务器上创建复制帐号
2.配置主库(master)和备库(slave)
3.通知备库(slave)连接到主库(master)并从主库复制数据

准备:
主库(master): 192.168.3.245 (server5.example.com)
备库(slave): 192.168.3.242 (server2.example.com)


创建复制帐号

mysql会赋予一些特殊的权限给复制线程,在备库(slave)运行的I/O线程会建立一个到主库(master)的TCP/IP链接,所以就要求我们必须在master上建立一个用户,并赋予其合适的权限,slave通过该用户连接到主库并读取日志。

在192.168.3.245和192.168.3.242做如下操作:

192.168.3.245(master):
这里写图片描述

192.168.3.242(slave):
这里写图片描述

注意:为什么在slave也要创建复制帐号,其中一个好处就是后续如果有需要的话可以方便的交换主备库的角色。


配置主库(master)和备库(slave)

在192.168.3.245(master)mysql的配置文件/etc/my.cnf上做如下修改:

[root@server5 ~]# vim /etc/my.cnf
这里写图片描述

重起192.168.3.245上的mysql服务:
这里写图片描述

确认二进制日志文件已经在master上建立,使用show master status命令:
这里写图片描述


在192.168.3.242上做如下配置:

[root@server5 ~]# vim /etc/my.cnf

这里写图片描述

relay_log 为中继日志的位置和名称
log_slave_updates 允许备库将其重要的事件也记录到自身的二进制日志中
read_only 阻止没有任何特殊权限的线程修改数据(通常不是十分使用,特别针对那些需要建表的应用)

重起mysql数据库:
这里写图片描述


启动复制

备库连接到主库并重放其二进制文件:
这里写图片描述

可以看到Slave_IO_State、Slave_IP_Running、Slave_SQL_Running这三个显示当前备库复制尚未运行。

开始复制:
这里写图片描述

执行该命令没有显示错误,查看状态发现已经开始运行,等待主库更改日志信息。

在主库中做一些修改操作,可以看到备库的文件和日志位置都有可能会增加:

我们在主库中创建了数据库haha:
这里写图片描述

然后查看备库中也多了一个数据库haha,说明复制是成功的:
这里写图片描述

在master中显示进程列表,可以看到id2的进程发送了二进制日志给slave:
这里写图片描述

在slave中也会看到有两个线程在进行处理:
这里写图片描述

小结:
至此,我们通过一个简单的示例介绍了mysql的复制过程,在接下来的章节里将会着重介绍mysql的多种使用和复制原理。敬请期待。

1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 京东店铺关门了怎么办 国美退款不到账怎么办 小米小店通过了怎么办 苹果的发票丢了怎么办 苹果7p开不开机怎么办 申请退款了怎么卖家还发货怎么办 买家申请退款卖家不退款怎么办 卖家恶意不退款怎么办 欠条到期了对方不还钱怎么办 冰箱磕了一坑怎么办 办信用卡没有家庭地址的怎么办 钱付了货没收到怎么办 在苏宁易购上买东西地址错了怎么办 手机分期付款银行卡丢了怎么办 华硕笔记本鼠标不动了怎么办 韵达快递不派送怎么办 中通快递不派送怎么办 农业银行信用卡密码输错三次怎么办 农业银行卡多次输错密码怎么办 想把店长弄走怎么办 济南银座卡过期了怎么办 银座购物卡丢失后怎么办 银座的卡丢了怎么办 银行卡换了旧卡怎么办 大理市民卡丢了怎么办 市民卡内的钱怎么办 宝付支付乱扣款怎么办 苏宁任性贷逾期怎么办 第二次跟家里开口要钱还网贷怎么办 网贷到家来要钱怎么办 网贷贷不了啦急要钱怎么办 百度推广竞价关键词太长怎么办 药店位置差客流少怎么办 网站上的用词违规怎么办 苹果16g内存不够怎么办 手机16g内存不够怎么办 在私企年纪大了怎么办 谷歌浏览器显示不安全打不开怎么办 4s密码多次错误怎么办 苹果4s手机系统错误怎么办 汽车充电口坏了怎么办