mysql系统搭建互备DB(双主)记录

背景:所负责的自动化持续交付平台业务量逐渐增长,以防不测,需要搭建备份系统,经过多方考量;

选择采取mysql的主从系统进行备份;互为主从(即所谓双主);

PS:

三种备份方式:

a、脚本通过mysqldump备份 ----------- 数据量少时可以采取

b、第三方工具备份 ----------- 大多数工具都是windows端的。一旦出现问题,恢复起来步骤稍多(本人比较懒,能自动化的最好都自动化)

c、mysql的主从同步机制 ------------ 推荐,实时增量热备,切换时可以直接启用DB。

下列为搭建记录,以备查:

一、mysql主主同步配置流程

1、两个服务器建立同步账号

GRANT REPLICATION SLAVE,FILE ON *.* TO ‘replication‘@‘192.168.%.%‘ IDENTIFIED BY ‘123456‘;

FLUSH PRIVILEGES;

--------------- 用户名 ‘replication‘ 密码 ‘123456‘ 权限  SLAVE,FILE

2、修改服务器配置文件 ------------------ 根据服务器变量名的不同,以及部署位置的不同,具体的变量赋值需要调整

主服务器A:

#replicate confi

server-id = 14550

log-bin=mysql-bin

log-bin-index=master-bin.index

binlog_format="ROW"

innodb_file_per_table=1

replicate_do_db    =jats

relay_log          =/var/lib/mysql/mysql-relay-bin.log

主服务器B:

server-id = 14542

replicate_do_db    =jats

relay_log          =/var/log/mysql/mysql-relay-bin.log

slave-net-timeout=60

3、从服务器A的jats 使用 load或mysqldump导入到B服务器;

4、重启A/B服务器

5、从服务器启动同步进程

stop slave;

reset slave;

change master to master_host=‘192.168.145.45‘,master_port=3306,master_user=‘replication‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=6663;

------------------其中的 master_log_file/master_log_pos 都是主服务器的log文件(主服务器使用 show master status可以看到)

b、start slave;

6、至此主服务器jats的任何数据变化都会被同步到从服务器

7、此时双方服务器的所有操作都会互相同步;

二、mysql同步方式和原理

http://www.cnblogs.com/carterzhang/articles/4633540.html

1、同步方式:

模式:主从(1主多从)

复制方式:同步复制、单向同步、异步复制

2、同步原理

原理:

a、一个服务器充当主服务,而一个或多个服务器充当从服务器。

b、主服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。这些日志可以记录发送到从服务器的更新。

c、从服务器连接主服务器时,它通知主服务器此从服务器在日志中读取的最后一次成功更新的位置。

d、从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知新的更新。 ------------- 此过程一直持续,知道关闭同步功能;

步流程:(接到主服务器通知更新后)(主要是通过执行和结果返回分离来实现):

a、主服务器开启1个线程m用于将二进制日志内容发送给从服务器(即s1线程执行语句后的结果)

b、从服务器开启2个进程,

1) 线程s1:创建一个I/O线程,以连接主服务器并让它发送记录在其二进制日志中的语句。

2) 线程s2:从relaylog中读取更新

c、主服务器将二进制文件更新推送给从服务器

e、从服务器将更新写入同步日志(relay log)

f、从服务器mysql主进程从relay log读取更新并执行;

二、日常维护注意事项

1、binary log 以及 relay log的大小控制

三、关键参数配置含义

log_bin       二进制文件位置

relay_log    中继文件位置

relay_log_index中级日志索引

replicate_do_db 只同步某个DB

slave-net-timeout 同步超时设置(秒)

server-id  服务器ID,不同服务器不重复

四、同步相关命令

stop slave ------------停止同步线程

reset slave ------------- 清空同步配置

change master to master_host=‘192.168.145.45‘,master_port=3306,master_user=‘replication‘,master_password=‘123456‘,master_log_file=‘mysql-bin.000002‘,master_log_pos=6663; -------- 设置主服务器

------------------其中的 master_log_file/master_log_pos 都是主服务器的log文件(主服务器使用 show master status可以看到)

start slave --------------  开启同步线程

show master status ----------- 作为主服务器时,查看配置

show slave status ----------- 作为从服务器时查看同步配置

时间: 2024-10-26 07:16:55

mysql系统搭建互备DB(双主)记录的相关文章

基于heartbeat v1配置mysql和httpd的高可用双主模型

一.配置高可用集群的前提:(以两节点的heartbeat为例) ⑴时间必须保持同步 ⑵节点之间必须用名称互相通信 建议使用/etc/hosts,而不要用DNS 集群中使用的主机名为`uname -n`表示的主机名: ⑶ping node(仅偶数节点才需要) ⑷ssh密钥认证进行无障碍通信: 二.heartbeat v1的配置 程序主配置文件:ha.cf 认证密钥:authkeys, 其权限必须为组和其它无权访问: 资源配置文件:haresources /usr/share/doc/heartbe

MySQL(二):主从复制结构、双主复制结构、利用SSL实现安全的MySQL主从复制

主从复制结构.双主复制结构.利用SSL实现安全的MySQL主从复制 一.主从复制结构实验 1.主服务器配置 可以先更改server_id 在/etc/my.cnf文件中,添加 server_id=11 重启服务,在mysql命令行查看 MariaDB [(none)]> select @@server_id; +-------------+ | @@server_id | +-------------+ |        11 | +-------------+ 1 row in set (0.

haproxy+keepalived主备与双主模式配置

Haproxy+Keepalived主备模式 主备节点设置 主备节点上各安装配置haproxy,配置内容且要相同 global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy.pid maxconn 4000 user haproxy group haproxy daemon defaults #defaults段默认值对frontend和backend和listen段生效 mode http #运行模式

MySQL高可用基础之keepalived+双主复制【转】

环境:MySQL-VIP:192.168.1.3MySQL-master1:192.168.1.1MySQL-master2:192.168.1.2 OS版本:CentOS release 6.4 (Final) Linux 2.6.32-358.el6.x86_64MySQL版本:5.6.14Keepalived版本:1.2.13 一.MySQL master-master配置 1.修改MySQL配置文件/etc/my.cnf   # Server1配置[mysqld]basedir = /u

keepAlived主备及双主

nginx用默认配置即可 1.主备配置 1.主keepAlived配置 vrrp_instance VI_1 { state MASTER #主备区分 interface eth0 virtual_router_id 51 #主备一致 priority 100 #主备区分 advert_int 1 authentication { auth_type PASS auth_pass 1111 } virtual_ipaddress { 192.168.244.200 } track_script

MySQL双主.md

MySQL 双主配置 环境说明 系统 IP 主机名 mysql版本 CentOS 6.8 192.168.197.61 C6-node1 5.6.36 CentOS 6.8 192.168.197.62 C6-node2 5.6.36 MySQL安装这里不做介绍,下面是其配置文件.这里测试使用的是没有数据的纯净数据库. node1节点配置 配置文件 [mysqld] datadir=/data/mysql port=3306 socket=/tmp/mysql.sock pid=/data/my

通过KeepAlived搭建MySQL双主模式的高可用集群系统

企业级MySQL集群具备高可用.可扩展.易管理.低成本的特点.下面将介绍企业环境中经常应用的一个解决方案,即MySQL的双主互备架构,主要设计思路是通过MySQL Replication技术将两台MySQL Server互相将对方作为自己的Master,自己又同时作为对方的Slave来进行复制.这样就实现了高可用构架中的数据同步功能,同时,将采用KeepAlived来实现Mysql的自动failover.在这个构架中,虽然两台MySQL Server互为主从,但同一时刻只有一个MySQL Ser

[Mysql高可用]——双主互备+keepalived

实验架构图    实验环境 主机名 操作系统 Mysql版本 keepalived版本 主机IP VIP lyj1(Master/Slave) Red Hat release 6.5 Mysql5.6.31 keepalived-1.2.12 10.0.100.201 10.0.100.220 lyj2(Slave/Master) Red Hat release 6.5 Mysql5.6.31 keepalived-1.2.12 10.0.100.202 构建双主互备 1. 分别修改DB1和DB

mysql双主互备

一.安装mysql 各种方式太多了 二.摘录自:https://linux.cn/thread-14135-1-1.html 1)首先在DB1上my.cnf 中[mysqld] 字段中添加如下内容:server-id = 1 //数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值;log-bin=mysql-bin //启用二进制日志: relay-log=mysql-relay-bin  //用来定义relay-log日志文件命名格式repl