(5.14)mysql高可用系列——级联复制

目录:

【0】实验需求
  级联复制,201为主库,202为从库/同时为203的主库,203为202的从库
【1】实验环境
  级联:A->B->C
  实践思路:
    (1)直接拿A的xtrabackup的全备到 B和C 还远即可
    (2)然后设置gtid_purged,最后change master 即可;
【2】操作
  【2.0】配置文件 my.cnf
  【2.1】在主库201创建复制用户
  【2.2】在主库201创建测试数据
  【2.3】备份与还原
  【2.4】构建级联主从复制
  【2.5】核验

正文:

【0】实验需求

  级联复制,201为主库,202为从库/同时为203的主库,203为202的从库

  一般建议2级级联,如上描述,不建议更多层次。

【1】实验环境

  操作系统:CentOS 7.5

  数据库版本:MySQL 5.7.24

  数据库架构:主从复制,基于主库搭建3个从库,采用Xtrabackup + GTID + 无损同步复制

  A:主库IP:192.168.1.201  port:3306

  B:主库IP:192.168.1.202  port:3306

  C:主库IP:192.168.1.203  port:3306

     级联:A->B->C

  简单思路:

    (1)B用A的全备初始化,然后B先作为从库连上主库A。

    (2)等B至少产生一个gtid事务后,停止B的 io线程,然后全备B 以初始化C。

    (3)C用B的全备来初始化后,再配置B->C的主从

  实践思路:

    (1)直接拿A的xtrabackup的全备到 B和C 还远即可

    (2)然后设置gtid_purged,最后change master 即可;

【2】操作

【2.0】配置文件 my.cnf

#replication_new
log_bin=/mysql/log/3306/mysql-bin #开启binlog
log_bin_index=/mysql/log/3306/mysql-bin.index
binlog_format=row
binlog_rows_query_log_events=on
max_binlog_size=2048

bind-address=0.0.0.0
server_id=2013306   #务必记得修改
expire_logs_days=7    #超过7天的binlog清理
innodb_support_xa=1
binlog_cache_size=1M
log_bin_trust_function_creators=1    #同步存储过程、函数、触发器
innodb_flush_log_at_trx_commit=1
sync_binlog=1
transaction-isolation=read-committed

#slave parameter 如果是从库,务必放开
#relay_log=/mysql/log/3306/relaylog/mysql-relay.log
#read_only=1  
#slave-parallel-type=LOGICAL_CLOCK
#slave-parallel-workers=4
#master_info_repository=table #master_info 会记录到 mysql.slave_master_info
#relay_log_info_repository=table #relay_log 会记录到,mysql.slave_relay_log_info
#relay_log_recovery=1
#slave_skip_errors=ddl_exist_errors
#slave_preserve_commit_order=1

#5.7的增强半同步
#如果是5.7,参数前面加上loose_,如下列,如果是5.6 则直接使用 rpl_semi_sync_master_enabled=1 之类的就好了。
#我这里是5.7就直接做增强半同步了(loseless Semisynchronous )

plugin_dir=/mysql/app/mysql/lib/plugin/
plugin_load=rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so
loose_rpl_semi_sync_master_enabled=1 #MySQL开启主的半同步复制(rpl_semi_sync_master_enabled)
loose_rpl_semi_sync_slave_enabled=1 #MySQL5.6开启从的半同步复制
loose_rpl_semi_sync_master_timeout=5000 #超时5秒,切回异步
rpl_semi_sync_master_wait_for_slave_count=1 #至少收到1个slave发会的ack
rpl_semi_sync_master_wait_point=AFTER_SYNC #MySQL 5.7的方法,AFTER_SYNC(default value,增强半同步) & AFTER_COMMIT(传统半同步)
#GTID mode
gtid_mode=on
enforce_gtid_consistency=1
log-slave-updates=1

【2.1】在主库201创建复制用户

create user ‘rpl‘@‘192.168.1.%‘ identified by ‘123456‘;
grant replication slave on *.* to ‘rpl‘@‘192.168.1.%‘;
flush privileges;
select user,host from mysql.user;

【2.2】在主库201创建测试数据

-- 【2.2.1】构造test库和test库下的test1,test2,test3表。test4表用于模拟业务一直在运行
create database test;
use test;
create table test1(id int);
insert into test1 values(1);
create table test2(id int);
insert into test2 values(2);
create table test3(id int);
insert into test3 values(3);
commit;
create table test4(id int);
insert into test4 values(4);
commit;

-- 【2.2.2】构造存储过程sp_test4来循环插入test4表,模拟业务运行
use test;
drop procedure if exists sp_test4;
delimiter $$
create procedure sp_test4()
begin
declare n int;
set n=11;
while(n<=20)
do
insert into test.test4 values(n);
commit;
set n=n+1;
end while;
end $$
delimiter ;

-- 【2.2.3】构造事件,来调度sp_test4过程
use test;
set global event_scheduler=1;

delimiter $$
create event if not exists event_test4
on schedule every 5 second
on completion preserve
enable
do
begin
call sp_test4();
end $$
delimiter ;

-- 为了防止测试数据量累计导致卡顿,我这里5小时做一次truncate
delimiter $$
create event if not exists event_truncate_test4
on schedule every 5 hour
on completion preserve
enable
do
begin
truncate table test.test4;
end $$
delimiter ;

【2.3】备份与还原

#在主库A:201
innobackupex --defaults-file=/etc/my.cnf -uroot -p123456 --no-timestamp /mysql/backup/full.bak

#在从库B/C:202,203scp -r [email protected]:/mysql/backup/full.bak /mysql/backup/innobackupex --apply-log --user-memory=800M /mysql/backup/full.bak   #应用redo/undomv data data1mkdir datainnobackupex --defaults-file=/etc/my.cnf --copy-back /mysql/backup/full.bak/  #复制还原chown -R mysql:mysql /mysqlchmod -R 755 /mysql

【2.4】构建级联主从复制

#从xtrabackup备份中的,info文件 or binlog_info文件中找到 gtid;  
stop slave;reset master;reset slave all;set session sql_log_bin=0;
set global gtid_purged=‘de853101-b165-11e9-900a-000c291f4171:1-1697‘;
set session sql_log_bin=1;
change master to
master_host=‘192.168.1.202‘,
master_user=‘rpl‘,
master_password=‘123456‘,
master_auto_position=1;

#核验主从,在从库执行show slave status\Gshow processlist;select count(1) from test.test4;

【2.5】核验

#在主库A:201  执行create database test1;create table test1.test1(id int);insert into test1.test1 values(1);commit;select * from test1.test1;

#核验三个库select * from test1.test1;

原文地址:https://www.cnblogs.com/gered/p/11613961.html

时间: 2024-10-27 07:37:18

(5.14)mysql高可用系列——级联复制的相关文章

MySQL高可用系列之MHA(一)

MHA,即Master High Availability Manager and Tools for MySQL,是日本的一位MySQL专家采用Perl语言编写的一个脚本管理工具,该工具仅适用于MySQL Replication(二层)环境,目的在于维持Master主库的高可用性. 一.简介 学习一个高可用小软件,不但要熟悉其功能,还要了解其架构及工作原理. 1.  架构 从架构上来说,MHA分为如下两大部分: (1) Node 我们知道,MHA是基于MySQL Replication环境的,

MySQL高可用系列之MHA(二)

一.参数说明 MHA提供了一系列配置参数,深入理解每个参数的具体含义,对优化配置.合理使用MHA非常重要,很多高可用性也都是通过合理配置一些参数而实现的. MHA包括如下配置参数,分别说明如下: hostname/ip/port (Local Only) hostname为MySQL Server的IP地址或主机名: ip为MySQL Server的IP地址,缺省从$hostname中获取:port为MySQL Server的端口号,缺省为3306 ssh_host/ssh_ip/ssh_por

(5.8)mysql高可用系列——MySQL中的GTID复制(实践篇)

目录: [0]概念 一.基于GTID的异步复制(一主一从)无数据/少数据搭建 [1]环境 [2]安装 mysql utilities(本文借助该工具进行安装) [3]开始配置 #[3.1]在主库上 准备复制账户 #[3.2]参数配置(主从都配)#[3.3]重启两台mysql#[3.4]主库上查看binlog#[3.5.1]使用mysqlreplicate(mysql utilities工具)命令配置#[3.5.2]使用传统方式配置#[3.6]主从数据测试(在主库上跑) [4]我的其他文章 [4.

(5.4)mysql高可用系列——MySQL异步复制

关键词:mysql复制,mysql异步复制,mysql传统异步复制 [1]实验环境 操作系统:CentOS linux 7.5 数据库版本:5.7.24 数据库架构:主从复制,主库用于生产,从库用于数据容灾和主库备机,采用默认传统的异步复制. 主库IP:192.168.1.201 端口:3306 从库IP:192.168.1.202 端口:3306 [2]配置启动主从复制 #[2.1]配置my.cnf配置文件 #主库参数 # 主库增加参数 [mysqld]log-error_verbosity=

(5.5)mysql高可用系列——MySQL半同步复制(实践)

[1]配置my.cnf [1.1]通用复制配置 #replication_new log_bin=/mysql/log/3306/mysql-bin #开启binlog log_bin_index=/mysql/log/3306/mysql-bin.index binlog_format=row binlog_rows_query_log_events=on max_binlog_size=2048 bind-address=0.0.0.0 server_id=2013306 expire_lo

(5.6)mysql高可用系列——MySQL中的GTID异步复制

[1]实验环境 操作系统:CentOS linux 7.5 数据库版本:5.7.24 数据库架构:主从复制,主库用于生产,从库用于数据容灾和主库备机,采用默认传统的异步复制. 主库IP:192.168.1.201 端口:3306 从库IP:192.168.1.202 端口:3306 原文地址:https://www.cnblogs.com/gered/p/11405864.html

(5.2)mysql高可用系列——测试环境部署

关键词环境部署: [1]策划[1.1]数据库服务器A组 8台 192.168.1.200~192.168.1.207,主机名db,db1~db7[1.2]负载均衡服务器 2台 192.168.1.211~192.168.1.212,主机名,fz1,fz2[1.3]中间件 192.168.1.221~192.168.1.222,主机名,xm1,xm2 [2]虚拟机,样板机centos7#IP地址 IP地址,192.168.1.200#修改主机名 hostname db1#直接修改本地主机名 vi

(5.9)mysql高可用系列——正常主从切换测试

[0]实验环境 操作系统:CentOS linux 7.5 数据库版本:5.7.24 数据库架构:主从复制,主库用于生产,从库用于数据容灾和主库备机,采用默认传统的异步复制. 主库IP:192.168.1.201 端口:3306 从库IP:192.168.1.202 端口:3306 [1]主从切换 [1.1]主从都需要开二进制日志,切换的时候,确认从库的数据时最新的-- 主库:192.168.1.201 set global read_only=1; -- 主库设置全局只读模式.flush lo

第22章 mysql 高可用MMM、MHA

2015-10-25 目录 参考资料 [1] 唐汉明.深入浅出MySQL 数据库开发.优化与管理维护(第2版)[M].北京:人民邮电出版社,2014 [2] Schwartz.高性能MySQL(第3版)[M].北京:电子工业出版社,2013 [3] 分享MYSQL中的各种高可用技术(源自姜承尧大牛) [4] MHA工作原理 [5] 技术实战:基于 MHA 方式实现 MySQL 的高可用(1) [6] mysql HA方案: MHA [7] mysql高可用方案MHA介绍 [8] Mysql5.5