• MySQL 主从热备份(读写分离)


    读写分离的作用

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

    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:mysqldatamysql-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';

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

    show master status;

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

    第六步:登录从服务器,配置从服务器的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。

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

    start slave;

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

    show slave statusG

    以下两个状态必须为Yes。

    Slave_IO_Running: Yes    //此状态必须YES
    Slave_SQL_Running: Yes     //此状态必须YES

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

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

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

  • 相关阅读:
    BadUSB 利用
    java 将函数作为参数传递
    odoo12 修行提升篇之 常用的高阶函数 (二)
    odoo12 修行提升篇之 异步定时任务 (一)
    odoo12 修行基础篇之 利用kanban做分析 点击跳转分析模型列表 (九)
    odoo12 修行基础篇之 kanban (八)
    odoo12 修行基础篇之 记录批处理 (七)
    odoo12 修行基础篇之 列表的筛选和分组 (六)
    odoo12 修行基础篇之 添加记录编码 (五)
    odoo12 修行基础篇之 添加工作流和操作记录 (四)
  • 原文地址:https://www.cnblogs.com/kissdodog/p/5422195.html
Copyright © 2020-2023  润新知