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

1、下载安装epel源并安装

wget http://ftp.cuhk.edu.hk/pub/linux/fedora-epel//6/x86_64/epel-release-6-8.noarch.rpm

rpm -ivh epel-release-6-8.noarch.rpm

yum clean all

2、下载并安装XtraBackup

wget http://www.percona.com/downloads/XtraBackup/XtraBackup-2.2.7/binary/redhat/6/x86_64/Percona-XtraBackup-2.2.7-r5050-el6-x86_64-bundle.tar

tar xf  Percona-XtraBackup-2.2.7-r5050-el6-x86_64-bundle.tar

yum install percona-xtrabackup-* -y

[root@ip ~]# which xtrabackup 
/usr/bin/xtrabackup

现在xtrabackup已经安装完成,

3、在主库上创建复制账号

mysql>grant replication slave on *.* to 'name'@'IP' identified by 'password';

4、接下来就使用xtrabackup做数据库全备

mkdir /data/backup -p

innobackupex --user=root --password='password' --defaults-file=/etc/my.cnf /data/backup/ > /root/back.log 2>&1

注:将执行过程重定向到back.log文件中,待执行完成后可查看是否有报错,如果没有报错并在文件最后结尾处有如下提示测表示备份成功。

141225 08:18:41 innobackupex: Connection to database server closed
141225 08:18:41 innobackupex: completed OK!

备份好的文件保存在 /data/backup目录中,比如:

[root@ip ~]# ls /data/backup/
2014-12-25_08-17-23
[root@ip ~]# ls /data/backup/2014-12-25_08-17-23/
backup-my.cnf ibdata2 ib_logfile1 mysql performance_schema xtrabackup_binlog_pos_innodb xtrabackup_info
ibdata1 ib_logfile0 lost+found oneplus_account xtrabackup_binlog_info xtrabackup_checkpoints xtrabackup_logfile
[root@ip ~]#

备份日志:

刚刚备份好的数据文件,并不是直接可用的。现在要将其恢复:

innobackupex --apply-log /data/backup/2014-12-25_08-17-23/  > /root/bb.log 2>&1

这个过程与数据库挂掉之后重启mysqld时的自动修复过程差不多。

scp -r  /data/backup/2014-12-25_08-17-23 root@xxxxxx:/data/backup/

关闭从服务器并切换数据:

/etc/init.d/mysql stop

将原来的数据做一下备份

mkdir -p /data/backup/mysql_old

mv /var/lib/mysql/* /data/backup/mysql_old

mv  /data/backup/2014-12-25_08-17-23/* /var/lib/mysql/

chown -R mysql.mysql  /var/lib/mysql

修改my.cnf, 给它一个独一无二的server_id。

再将从库原来的my.cnf备份

cp /etc/my.cnf /etc/my.cnf.bak

cd /var/lib/mysql/

/bin/cp backup-my.cnf /etc/my.cnf

再将原来my.cnf.bak中的一些参数添加到my.cnf中并启动mysql

/etc/init.d/mysql start

最后change master。

与mysqldump备份的步骤比起来,这次我们没有flush tables with read lock,

也没有show master status来获取日志文件名和座标。

因为xtrabackup完成备份之后,自动保存了这些信息。

采用GTID建立主从关系

可查看在主库上备份时执行过程25.log.查看到UUID和tran_id

[root@ip ~]# cat /var/lib/mysql/xtrabackup_binlog_info 
50937877-8987-11e4-88fe-005056a30e51:1-7605

这个时候,登录到服务器,执行如下操作:

reset master;

清楚binlog和tran_id信息.

之所以这样做,是因为原来的mysql实例有自己相应的"uuid+tran_id",如果不清除,就不能完成下面这一步.

同时这里运行reset master.并不会清除其他mysql实例的信息,他只会清除他自身的GTID信息!

SET GLOBAL gtid_purged="50937877-8987-11e4-88fe-005056a30e51:1-7605";

GTID从7606开始传输

最后,开始同步

CHANGE MASTER TO

MASTER_HOST='<master_host>',

MASTER_USER='<slave_username>',

MASTER_PASSWORD='<slave_password>',

MASTER_AUTO_POSITION = 1;

start slave;

通过show slave status\G;可以查看到 Slave_IO_Running和 Slave_SQL_Running状态都为YES,并且Exec_Master_Log_Pos和 Relay_Log_Space数据不断在变化。

至此通过XtraBackup不锁库搭建slave数据库已经完成。

注意:

1.采取这种方式进行mysql数据库主从建立,在传输同步文件的时间上有要求,尽量快速完成,防止gtid 事务号过期

Percona XtraBackup不锁库搭建slave数据库-基于GTID的更多相关文章

  1. Percona备份mysql全库及指定数据库(完整备份与增量备份)

    Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份) Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对I ...

  2. 5.7 并行复制配置 基于GTID 搭建中从 基于GTID的备份与恢复,同步中断处理

    5.7 并行复制配置 基于GTID 搭建中从 基于GTID的备份与恢复,同步中断处理 这个文章包含三个部分 1:gtid的多线程复制2:同步中断处理3:GTID的备份与恢复 下面文字相关的东西 大部分 ...

  3. xtrabackup在线备份主库,搭建slave,使用gtid模式

    mysql:5.6.29xtrabackup:2.2.10master:192.168.166.129slave:192.168.166.131mysql数据目录:/data/mysqlmysql备份 ...

  4. Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

    原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对In ...

  5. Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)

    Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)     文章目录 [隐藏] Xtrabackup简介 Xtrabackup安装 Xtrabackup工具介绍 inno ...

  6. 每天进步一点点——mysql——Percona XtraBackup(innobackupex)

    一.  简单介绍 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非堵塞地备份(对于MyISAM的备份相同须要加表锁).Xt ...

  7. Percona Xtrabackup备份mysql(转)

    add by zhj:另外,参考了Xtrabackup之innobackupex备份恢复详解,我用的是Xtrabackup2.2.6版本, 可以成功备份和恢复指定的数据库. 原文:http://www ...

  8. 使用Percona Xtrabackup创建MySQL slave库

    一.使用Percona Xtrabackup创建MySQL slave库 MySQL Server 版本: Server version: 5.7.10-log MySQL Community Ser ...

  9. 通过 XtraBackup 实现不停机不锁表搭建主从同步

    简介 Xtrabackup是由 Percona 开发的一个开源软件,可实现对 InnoDB 的数据备份,支持在线热备份(备份时不影响数据读写).备份时,Xtrabackup 会将 Master 的 b ...

随机推荐

  1. Mysql架构、复制类型、复制功能介绍

    1.1 常见的几种主从架构 一主一从 一主多从 多主一从 双主互备 1.2 主从复制功能 1)实时灾备 2)读写分离 3)高可用 4)从库数据统计 5)从库数据备份 6)平滑升级 1.3 三种复制方式 ...

  2. 「luogu3380」【模板】二逼平衡树(树套树)

    「luogu3380」[模板]二逼平衡树(树套树) 传送门 我写的树套树--线段树套平衡树. 线段树上的每一个节点都是一棵 \(\text{FHQ Treap}\) ,然后我们就可以根据平衡树的基本操 ...

  3. LNMP环境搭建(PHP7.4.0)

    目录 准备工作 安装wget 安装net-tools 安装vim 配置显示行号 关闭防火墙 安装Nginx 安装依赖 编译安装Nginx 配置环境变量 Systemd管理 安装MySQL 安装依赖 下 ...

  4. Springboot学习:介绍与HelloWorld

    1. 什么是 Spring boot Spring Boot来简化Spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用 整个Spring技术栈的一个大整合 ...

  5. 忘记linux下的mysql密码,需要重新创建密码123456

    你必须要有操作系统的root权限了. # mysqld_safe --skip-grant-tables & &,表示在后台运行,不再后台运行的话,就再打开一个终端咯. # mysql ...

  6. java模板字符串功能的简单实现

    package com.Interface.util; import lombok.extern.slf4j.Slf4j; /** * 测试类 * * @author 华文 * @date 2019年 ...

  7. python搭建后台服务

    后端 # coding:utf-8 # 2019/10/22 16:01 # huihui # ref: from flask import Flask, abort, request, jsonif ...

  8. #P4770 [NOI2018]你的名字 的题解

    题目背景 实力强大的小A 被选为了ION2018 的出题人,现在他需要解决题目的命名问题. 题目描述 小A 被选为了ION2018 的出题人,他精心准备了一道质量十分高的题目,且已经把除了题目命名以外 ...

  9. ThinkPHP6源码分析之应用初始化

    ThinkPHP6 源码分析之应用初始化 官方群点击此处. App Construct 先来看看在 __construct 中做了什么,基本任何框架都会在这里做一些基本的操作,也就是从这里开始延伸出去 ...

  10. missing required architecture x86_64 in file

    ios错误ignoring file xxx missing required architecture x86_64 in file   错误ignoring file xxx missing re ...