mysql双主热备,也称主主互备,目的是mysql数据库高可用,只支持双机,原因是mysql的复制是一主多从,但一个从服务器只能有一个主服务器。
双机热备的条件是双机mysql版本必须一致。
服务器分别为A(172.16.9.212)、B(172.16.9.213),配置步骤如下:
一、A->B主从备份
1、在主服务器A上创建从服务器备份的用户,IP地址为B的IP
grant replication slave on *.* to 'wuwei'@'172.16.9.213' identified by '123456';
2、打开主服务器A的二进制日志binarylog
vim /etc/my.cnf
新增配置如下:
要同步的数据库为smartmon
配置好保存后需重启mysql
3、如果初态不同,则要同步初态
先锁定 smartmon数据库:
FLUSH TABLES WITH READ LOCK;
  
然后导出smartmon数据:
mysqldump --master-data -uroot -p smartmon > /root/smartmon.sql
解除锁定:
UNLOCK TABLES;
  
 
4、查看主服务器A的binary日志位置,配置从服务器需要用到:
show master status\G
  
 
5、打开从服务器B的中继日志relay_log
新增配置如下:
  
 
设置要备份的数据库为smartmon
保存,重启mysql
6、导入主服务器A的数据库初态
拷贝A生成的smartmon.sql到B服务器,再导入
mysql -uroot -p smartmon < smartmon.sql
然后可以在mysql环境中查看到数据库的数据是一样的
7、在从服务器B上开启主从同步,host为A的IP,用户密码是在主服务器A上设置备份用户,log_file和log_pos是主服务器master的binary看到的信息。
MariaDB [smartmon]> change master to
    -> master_host='172.16.9.212',
    -> master_user='wuwei',
    -> master_password='123456',
    -> master_log_file='mysql-bin.000001',
    -> master_log_pos=2338575;
  
 
8、在从服务器B上查看slave状态
show slave status\G
 
  
 
图中的红框, 两个都是Yes, 说明开启成功。
从A到B的主从复制就完成了,所有在A中的修改都能自动同步到B,但是对B的修改却不能同步到A。因为是单向的,如果需要双向同步的话,需要再做一次从B到A的复制。
 
二、B->A主从备份
实际就是步骤一的逆向操作。将B(172.16.9.213)作为主服务器,A(172.16.9.212)作为从服务器。步骤基本和上面一样:
1、在B中创建备份用户
grant replication slave on *.* to 'wuwei'@'172.16.9.212' identified by '123456';
2、打开 /etc/my.cnf , 开启B的binarylog:
新增配置如下:
  
 
3、不需要导出B的初态同步到A上了,因为A和B的初态是一样的(步骤一实现的),查看master日志状态。
show master status\G
  
 
4、登录到A服务器开启中继relay_log
  
 
5、在A服务器上开启同步:
MariaDB [smartmon]> change master to
    -> master_host='172.16.9.213',
    -> master_user='wuwei',
    -> master_password='123456',
    -> master_log_file='mysql-bin.000003',
    -> master_log_pos=2394;
host为B的IP地址,user、password是在B上创建的备份用户,log_file、log_pos是在B上看到的master状态信息。
6、在A上查看slave status.
  
 
如果IO进程和SQL进程都为YES,说明从B到A的同步成功。
 
如果为NO或者执行步骤5失败的,则需要查看mysql日志文件/var/lib/mysql/主机名.err文件查找错误
  
 
图中的error信息是说找不到中继日志文件。
这是因为我们在配置A的中继文件时改了中继文件名,但是mysql没有同步。解决办法:
先停掉mysql服务,然后删掉/var/lib/mysql下的relay-log.info、主机名-relay-bin.000001、主机名-relay-bin.index,再启动mysql查看slave status就变为YES了。
 
配置完成。

Mysql双机热备实现数据库高可用的更多相关文章

  1. Centos7 Mysql 双机热备实现数据库高可用

    mysql双主热备,也称主主互备,目的是mysql数据库高可用,只支持双机,原因是mysql的复制是一主多从,但一个从服务器只能有一个主服务器. 双机热备的条件是双机mysql版本必须一致. 服务器分 ...

  2. 使用Docker-compose搭建nginx-keepalived双机热备来实现高可用nginx集群

    原文转载自「刘悦的技术博客」https://v3u.cn/a_id_117 最近同学出去面试经常会被问到一个问题. 面试官:你说你们公司使用nginx反向代理tornado,部署了多少多少台机器,好像 ...

  3. Mysql双机热备配置(超详细多图版)

    一.双击热备介绍 1.基本概念 双机热备特指基于高可用系统中的两台服务器的热备(或高可用),双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active- ...

  4. 基于主主复制的mysql双机热备+keepalived实现高可用性

  5. Mysql双机热备--预备知识

    1.双机热备 对于双机热备这一概念,我搜索了很多资料,最后,还是按照大多数资料所讲分成广义与狭义两种意义来说. 从广义上讲,就是对于重要的服务,使用两台服务器,互相备份,共同执行同一服务.当一台服务器 ...

  6. mysql双机热备的实现

    转:http://blog.csdn.net/qq394829044/article/details/53203645 Mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题.还好 ...

  7. (转)mysql双机热备的实现

    mysql双机热备的实现 原文:http://www.zjian.me/web/php/mysql%E5%8F%8C%E6%9C%BA%E7%83%AD%E5%A4%87%E7%9A%84%E5%AE ...

  8. mysql 主从复制(mysql双机热备的实现)

    转:http://blog.csdn.net/qq394829044/article/details/53203645 Mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题.还好 ...

  9. MySQL双机热备环境搭建

    一.    前期准备 准备两台服务器(电脑),接入到同一局域网中,能够使双方可以ping通: 安装MySQL数据库,具体安装方法网上很全面,但是安装的版本需保持一致: 服务器IP地址设置. l  A服 ...

随机推荐

  1. 字符编码:ASCII,Unicode和UTF-8

    字符编码是计算机技术的基石,想要熟练使用计算机,就必须懂得一点字符编码的知识. 1. ASCII码 我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串.每一个二进制位(bit)有0和1两 ...

  2. vs2013 + python3.52 + boost1.61, 编译C++库失败

    使用vs2013  + python3.52 + boost1.61,  编译C++库,  失败!  提示如下": boost::python::detail::init_module(st ...

  3. smarty 模板编译和变量调节器 模板引入

    <?php require './smarty/Smarty.class.php'; $sm = new Smarty; //$sm->force_compile = true; $sm- ...

  4. 可以方便配合 Git 的现代编辑器

    可以方便配合 Git 的现代编辑器 虽然有些人说编辑器不重要,有人用记事本来编辑 PHP(我是不推荐的),但学是要推荐一些现在编辑器. 可以很方便的配合 Git,比如有冲突时不会看得晕乎乎,使用鼠标点 ...

  5. bzoj 4815 [Cqoi2017]小Q的表格——反演+分块

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=4815 大概就是推式子的时候注意有两个边界都是 n ,考虑变成 2*... 之类的. 分块维护 ...

  6. winform Textbox模糊搜索实现下拉显示+提示文字

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  7. 基于Spring Boot和Spring Cloud实现微服务架构

    官网的技术导读真的描述的很详细,虽然对于我们看英文很费劲,但如果英文不是很差,请选择沉下心去读,你一定能收获好多.我的学习是先从Spring boot开始的,然后接触到微服务架构,当然,这一切最大的启 ...

  8. 黄聪:如何使用Add-on SDK开发一个自己的火狐扩展

    火狐开放了扩展的开发权限给程序员们,相信很多人都会希望自己做一些扩展来方便一些使用. 我最近做一些项目也需要开发一个火狐扩展,方便收集自己需要的数据,因此研究了几天怎么开发,现在已经差不多完成了,就顺 ...

  9. css怎么设置2个div同行,第一个固定宽度,第二个占满剩余的部分

    <!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. SPUtils

    public class SPUtils { /** * 保存在手机里的SP文件名 */ public static final String FILE_NAME = "my_sp" ...