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了。
 
配置完成。

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

  1. 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. VA插件突然不能使用,彈出“the security key for....”

    昨天打開VS莫名其妙地彈出下面的錯誤框: "the security key for this program currently stored on your system does no ...

  2. Codeforces.566F.Clique in the Divisibility Graph(DP)

    题目链接 \(Description\) 给定集合\(S=\{a_1,a_2,\ldots,a_n\}\),集合中两点之间有边当且仅当\(a_i|a_j\)或\(a_j|a_i\). 求\(S\)最大 ...

  3. 【转载】gdi+ 内存泄漏

    [转载]http://issf.blog.163.com/blog/static/1941290822009111894413472/ 最近用GDI+实现了几个自定义控件,但是发现存在内存泄露问题 B ...

  4. (67)Wangdao.com第十一天_JavaScript 数组的遍历

    for 普通方式遍历 var arr = [0,1,2,3,4,5,6]; for(i=0; i<arr.length; i++){ document.write("["+i ...

  5. CentOS下的apache配置支持php

    修改Apache的配置文件httpd.conf(vi /etc/httpd/conf/httpd.conf) DirectoryIndex index.html index.php #添加index. ...

  6. JDK7新特性<八>异步io/AIO

    概述 JDK7引入了Asynchronous I/O.I/O编程中,常用到两种模式:Reactor 和 Proactor.Reactor就是Java的NIO.当有事件触发时,我们得到通知,进行相应的处 ...

  7. [原创]浅谈H5页面性能测试

    [原创]浅谈H5页面性能测试 H5页面我想各位都不陌生,随着移动互联网兴起,不管是App,还是H5都火起来了,最突出的2个表现是ios/android/前端等工程师薪水大涨,尤其是资深前端工程师40W ...

  8. Bootstrap datetimepicker “dp.change” 时间/日期 选择事件

    $('#<!--{$inputId}-->').datetimepicker({ todayHighlight: true, format: "YYYY-MM-DD<!-- ...

  9. linux 内核开发环境搭建

    http://blog.csdn.net/jemmy858585/article/details/46710299

  10. DXT 图片压缩(DXTC/DirectX Texture Compression Overview)

    这两天在写 DDS 格式的解码程序.DDS 是微软为 DirectX 开发的一种图片格式,MSDN 上可以查到其文件格式说明: http://msdn2.microsoft.com/en-us/lib ...