mysql 主从热备份_MySQL 主从热备份(读写分离)

读写分离的作用

写会锁表,而且比较耗时。如果一个表经常写入,那么无疑会影响到查询的效率。所以将经常写入的数据库进行读写分离之后,会大幅提升读取效率。

(实际上,面试时,只会问你知不知道原理,底层是怎么实现的,其实你会不会配不重要。简单来说,就是主数据库的binLog二进制日志,记录了所有对主数据库的操作,从数据库就是把主数据库把这些操作的日志拷贝过去,再执行一次,这样数据就相同了)。

MySQL读写分离的原理

这个可以了解一下,开发时作用不大。但面试时比问到也不至于哑口无言。

1、master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);

2、  slave将master的binary log events拷贝到它的中继日志(relay log);

3、 slave重做中继日志中的事件,将改变反映它自己的数据。

MySQL的主从备份,听个名词很高大上,其实都是MySQL原本就实现的了,你只需要简单配置一下就可以实现。

第一步:保持主从两个数据库是同步的,最好事先手动同步一下;

第二步:停止两个数据库,分别更改配置文件;

下面我使用如下两个地址来说明配置过程。

主数据库:192.168.0.244

从数据库:192.168.0.8

主服务器数据库,增加如下配置:

server-id = 244    #这个唯一就OK,一般取IP地址后面的几位

log-bin = E:\mysql\data\mysql-bin  #日志所在目录

binlog-do-db = test    #这个是要同步的数据库

从服务器数据库,增加如下配置:

server-id = 8    #这个唯一就OK,一般取IP地址后面的几位

replicate-do-db = test  #这个是要同步的数据库

第三步,分别重启两个服务器的MySQL服务;

net stop mysql;

net start mysql;

两个服务器的MySQL服务都要启动起来;

第四步,主服务器授权Slave权限账号

GRANT REPLICATION SLAVE ON *.* to 'bu'@'%' identified by '123456';

8ea3b8a8207a0fe083b614e31ece1ddf.png

第五步,登录主服务器,查询master状态;

show master status;

8d54f5d15dbf229d4352fa61bfbf7a42.png

注意结果,结果里面的东西,在下一步会用到。

第六步:登录从服务器,配置从服务器的Slave

change master to master_host='192.168.0.244',master_user='bu',master_password='123456',

master_log_file='mysql-bin.000004',master_log_pos=516;

master_log_pos是上面查询出来的Position 516。

4f8336c81bfa0fb0d6e92fc93d25871d.png

第七步、启动从服务器的Slave

start slave;

830cc725359a5c6e139b14e50c54610f.png

第八步、验证从服务器的Slave服务状态

show slave status\G

以下两个状态必须为Yes。

Slave_IO_Running: Yes    //此状态必须YES

Slave_SQL_Running: Yes     //此状态必须YES

如果有一项为No都不会同步成功。

我碰到过Slave_IO_Running为Connecting的。那可能是上面的连接change master to master_host...写错了。

f9fb91f434c42918cf1179c8e0edfe56.png

第九步、随意修改下主数据库的数据,从服务器数据库立即会更新

6f4ec85a8f195227b4bb9f2278026436.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值