使用innobackupex基于从库搭建mysql主从架构

现有的架构是一主一从,版本为Mysql5.6.37。实施要求是:利用从库,搭建第二个从库,版本为5.7.21

主库:192.168.1.21

从库:192.168.1.22

从库2:192.168.1.23

1、备份从库1
[root@mysql02 ~]./innobackupex --user=root --password="xxxxxx" --slave-info --safe-slave-backup --parallel=3 /data/backup/

#参数slave-info 用于GTID
#复制my.cnf文件到新从库
[root@mysql02 ~]$scp /etc/my.cnf 192.168.1.23:/data/backup
2、主库授予从库2复制账户
master@MySQL> grant replication slave,replication client on *.* to repl@'192.168.1.23' identified by 'repl';
3、从库2:进行恢复
[root@mysql03 ~]$./innobackupex --user=root --password="xxxxxx" --apply-log --use-memory=2G /data/backup/2018-08-10_17-29-01

./innobackupex --defaults-file=/etc/my.cnf  --user=root --password="xxxxxx"  --socket=/data/mysql_33061/run/mysql.sock --copy-back  /data/backup/2018-08-10_17-29-01

或者:
[root@mysql03 ~]$mv /data/backup/2018-08-10_17-29-01 /data/mysql_3306

4、准备从库2配置文件my.cnf,根据需要修改相应参数,这里的修改如下,
skip-slave-start
datadir = /data/mysql_3306
port = 3306
server_id = 330623
socket = /data/mysql_3306/mysql.sock
pid-file=/data/mysql_3306/mysql3307.pid
log_error=/data/mysql_3306/mysql_error.log

5、启动从库2
# chown -R mysql:mysql /data/backup
# mysqld_safe --defaults-file=/etc/my.cnf &

6、运行mysql时,提示Table ‘performance_schema.session_variables’ doesn’t exist
./mysql_upgrade -hlocalhost -u root -p --force -P3306 --socket=/data/mysql_3306/mysql.sock
重启数据库
7、change master
mysql> system more /log/recover/xtrabackup_slave_info
CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000658', MASTER_LOG_POS=925384099
mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.22',
-> MASTER_USER='repl',
-> MASTER_PASSWORD='repl',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='mysql-bin.000658',
-> MASTER_LOG_POS=925384099;
Query OK, 0 rows affected, 2 warnings (0.31 sec)
mysql> start slave;
在从库2,start slave时报:error:
ERROR 1794 (HY000): Slave is not configured or failed to initialize properly. You must at least set --server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error log.
经分析,需要:
删除5张表,并重新导入脚本
use mysql
drop table slave_master_info;
drop table slave_relay_log_info;
drop table slave_worker_info;
drop table innodb_index_stats;
drop table innodb_table_stats;
检查表数据,为空表,重建表
source /backup/mysql_system_tables.sql

(2)重新启动数据库
mysql> start slave;
mysql> show slave status\G;

一主一从一级联,搭建完成。

未开启GTID情况下,从 一主一从一级联,调整为一主两从

1:在从库一:停掉SQL线程、IO线程,并记录下此时从库1 的master status

mysql>stop slave;

mysql> show master status;
+------------------+-----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+-----------+--------------+------------------+-------------------+
| mysql-bin.000658| 925384099| | | |
+------------------+-----------+--------------+------------------+-------------------+
1 row in set (0.00 sec)

2:在从库2,show slave status;观察Master_Log_File  Exec_Master_Log_Pos与从库1中show master status;一致时,在从库1:show slave status\G;记录下Master_Log_File  Exec_Master_Log_Pos

3:然后在从库2,即指向主库:

mysql> CHANGE MASTER TO
-> MASTER_HOST='192.168.1.21', 
-> MASTER_USER='repl', 
-> MASTER_PASSWORD='repl',
-> MASTER_PORT=3306,
-> MASTER_LOG_FILE='mysql-bin.000100',
-> MASTER_LOG_POS=384099;
Query OK, 0 rows affected, 2 warnings (0.31 sec)
mysql> start slave;

4:开启从库1的SQL线程、IO线程

此时,一主两从搭建成功;

使用innobackupex基于从库搭建级联从库及一两从的更多相关文章

  1. Percona XtraBackup不锁库搭建slave数据库-基于GTID

    Percona XtraBackup不锁库搭建slave数据库-基于GTID 1.下载安装epel源并安装 wget http://ftp.cuhk.edu.hk/pub/linux/fedora-e ...

  2. 基于腾讯Centos7云服务器搭建SVN版本控制库

    基于腾讯Centos7云服务器搭建SVN版本控制库 最近在和小伙伴组队参加一个关于人工智能的比赛,无奈不知道怎么处理好每个人的代码托管问题,于是找到了晚上免费svn托管服务器的服务,但是所给的免费空间 ...

  3. ORACLE Physical Standby 级联备库搭建

    搭建oracle 级联DG 现有架构:physical standby 一主二备,在此基础上,在主库下新建备库standby3.级联备库cascade 数据库版本 11.2.0.4 db_name=p ...

  4. 基于 Jenkins 快速搭建持续集成环境--转

    源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...

  5. postgresql从库搭建

    1 复制类型 PostgreSQL支持物理复制(流复制)及逻辑复制2种.通过流复制技术,可以从实例级复制出一个与主库一模一样的实例级的从库.流复制同步方式有同步.异步两种. 另一种复制方式为逻辑复制, ...

  6. 使用web-component搭建企业级组件库

    组件库的现状 前端目前比较主流的框架有react,vuejs,angular等. 我们通常去搭建组件库的时候都是基于某一种框架去搭建,比如ant-design是基于react搭建的UI组件库,而ele ...

  7. 基于Flask框架搭建视频网站的学习日志(一)

    ------------恢复内容开始------------ 基于Flask框架搭建视频网站的学习日志(一)2020/02/01 一.Flask环境搭建 创建虚拟环境 初次搭建虚拟环境 搭建完虚拟环境 ...

  8. Docker实战(2):主从库搭建

    入门 基于Docker的Mysql主从复制搭建 首先安装docker 拉取mysql镜像:5.7版本 启动主从数据库容器 docker run -p 3339:3306 --name Maste -e ...

  9. JSCapture – 基于 HTML5 实现的屏幕捕捉库

    JSCapture 是用纯 JavaScript 和 HTML5 实现的屏幕捕捉库.它可以让从您的浏览器中截图和记录在桌面的视频.JSCapture 使用 getUserMedia 来实现屏幕捕获.目 ...

随机推荐

  1. __init__ 和__new__的区别?

    init 在对象创建后,对对象进行初始化. new 是在对象创建之前创建一个对象,并将该对象返回给 init.

  2. Linux下RabbitMQ安装、运行与管理

    Linux下RabbitMQ安装.运行与管理 安装erlang 安装参考官网 RabbitMQ的安装需要Erlang的基础环境,必须按照RabbitMQ Erlang版本要求进行安装. 关于Erlan ...

  3. 前端播放m3u8格式视频

    一.前端播放m3u8格式视频 <!DOCTYPE html> <html lang="zh-CN"> <head> <meta chars ...

  4. PHP常用采集函数总结

    1.获取所有链接内容和地址 function getAllURL($code){ preg_match_all('/<as+href=["|']?([^>"']+)[& ...

  5. 01JAVA入门

    1 Welcome to java public class ch01Welcome { public static void main(String[] args) { System.out.pri ...

  6. Linux知识点拾遗-磁盘UUID

    查看磁盘UUID 方法1 ls -l /dev/disk/by-uuid example: [root@dplinux ~]# ll /dev/disk/by-uuid/ total 0 lrwxrw ...

  7. Insomni'hack teaser 2019 - Pwn - 1118daysober

    参考链接 https://ctftime.org/task/7459 Linux内核访问用户空间文件:get_fs()/set_fs()的使用 漏洞的patch信息 https://maltekrau ...

  8. pandas 的axis参数的理解

    # pandas的axis参数怎样理解? # axis=0 或者 "index": # 如果是单行操作,就指的是某一行 # 如果是聚合操作,指的是跨行cross rows # ax ...

  9. Flutter-Radio單選框

    Container( child: Radio<String>( value: "男", activeColor: Colors.red,//激活時的顏色 groupV ...

  10. git详细使用教程

    一:Git是什么? Git是目前世界上最先进的分布式版本控制系统. 二:SVN与Git的最主要的区别? SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而干活的时候,用的都是自己的电脑,所以 ...