使用 Xtrabackup 部署 MySQL 从库

数据库备份和恢复是数据库管理工作中非常重要的一个部分。

笔者常用的两个备份工具是mysqldump (逻辑备份)和 Xtrabackup (物理备份)。

对于前者一般是用在凌晨的业务低峰期的定时任务中对数据库进行全备份;这样做的好处是导出的数据是全SQL 文本,通过管道GZIP 压缩后能够大大的节省磁盘空间(当然备份一般会上传异地服务器存储)。mysqldumpd 缺点是比较耗费时间,笔者建议数据量在50GB以内的可以使用该工具,耗时尚可接受;但是数据量超过70GB时,不建议使用该工具。

对于后者使用不太频繁,该工具也可以生成一致性备份,用于搭建主从环境。针对数据量较大的(100GB以上,甚至数百GB)数据库,备份时间上Xtrabackup的优势非常明显,并且不会影响线上业务。

下面以搭建主从环境为例,简单介绍 下 Xtrabackup  的安装和使用。演示版本为  percona-xtrabackup-2.1.9 ,支持 MySQL 5.5 5.6。

1.安装依赖软件包

yum -y install perl perl-devel libaio libaio-devel perl-DBI perl-DBD-MySQL perl-TermReadKey  perl-Time-HiRes

2.安装xtrabackup
解压tar包到安装目录,
tar -zxvf percona-xtrabackup-2.1.9-744-Linux-x86_64.tar.gz  -C  /usr/local/

重命名目录

cd /usr/local/
mv percona-xtrabackup-2.1.9-744-Linux-x86_64  xtrabackup

3.执行备份之前,先配置环境变量,否则报错

export PATH=$PATH:/usr/local/xtrabackup/bin

其中配置文件的路径和密码请根据自己的实际环境设置

备份数据文件

/usr/local/xtrabackup/bin/innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --password=A2sW13  /ptbak/

将binlog 应用到数据文件,这是恢复数据前必须完成的步骤

/usr/local/xtrabackup/bin/innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --password=A2sW13 --apply-log /ptbak/2016-08-09_03-49-02/

拷贝备份数据到目标数据库

scp -r  /ptbak/  192.168.80.12:/root/

3.恢复数据钱准备工作
先在目标库上停掉mysql进程
service mysqld stop

备份或者删原数据目录 (以 /usr/local/mysql/data 为示例)
mv /usr/local/mysql/data/ /usr/local/mysql/data.bak/

或者 rm -rf  /usr/local/mysql/data

(删除数据之前请三思,线上环境不建议这么干)

建立新的数据目录

mkdir -p  /usr/local/mysql/data

4.恢复数据,--copy-back 选项的作用是从备份目录拷贝数据,日志到my.cnf文件里规定的目录下
/usr/local/xtrabackup/bin/innobackupex --defaults-file=/etc/my.cnf --user=root --copy-back /root/2016-08-09_03-49-02/

修改数据目录权限
chown -R mysql:mysql  /usr/local/mysql/data

5.删除ib_logfile文件,否则mysql启动报错

cd  /usr/local/mysql/data
rm -rf ib_logfile*

启动mysql
service mysql start

6.目标数据库启动后,将拥有和源数据库相同的root密码;建议修改root密码
SET PASSWORD FOR ‘root‘@‘localhost‘ = PASSWORD(‘xxxxxx‘);

7.查看备份的一致性信息
cat /root/2016-08-09_03-49-02/xtrabackup_binlog_info
mysql-bin.000969 307486338

master_log_file=‘mysql-bin.000969‘,
master_log_pos=307486338;

8.设置启用主从复制

主库上建立复制用户和权限

GRANT REPLICATION SLAVE ON *.* TO ‘repl‘@‘192.168.80.12‘ identified by ‘123456‘;

在从库上启动复制进程
change master to
master_host=‘192.168.80.11‘,
master_port=3306,
master_user=‘rpel‘,
master_password=‘123456‘,
master_log_file=‘mysql-bin.000969‘,
master_log_pos=307486338;

>start slave;

不妥之处,敬请指教!

时间: 2024-10-11 09:57:31

使用 Xtrabackup 部署 MySQL 从库的相关文章

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

原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份 同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热备 2.增量备份MySQL 3.流

使用Percona Xtrabackup创建MySQL slave库

MySQL Server 版本: Server version: 5.7.10-log MySQL Community Server (GPL) Percona Xtrabackup 版本: innobackupex version 2.4.2 Linux (x86_64) (revision id: 8e86a84) 说明: [master]:表示在master库上执行的语句 [slave]:表示在slave库上执行的语句 --执行master库的全备[master]innobackupex

Percona Xtrabackup备份mysql全库及指定数据库(转)

原文:http://www.drupal001.com/2014/02/percona-xtrabackup-mysql/ Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热

如何用Percona XtraBackup进行MySQL从库的单表备份和恢复【转】

前提 应该确定采用的是单表一个表空间,否则不支持单表的备份与恢复. 在配置文件里边的mysqld段加上 innodb_file_per_table = 1 环境说明: 主库:192.168.0.1 从库1:192.168.0.2 从库2:192.168.0.3 备份工具 : Percona xtrabackup version 2.4.8 based on MySQL server 5.7.13 Linux (x86_64) (revision id: 97330f7) 在主库上创建chenfe

xtrabackup进行MySQL数据库备份/还原

http://hongge.blog.51cto.com/ 使用xtrabackup进行MySQL数据库备份 前面介绍mysqldump备份方式是采用逻辑备份,其最大的缺陷就是备份和恢复速度都慢,对于一个小于50G的数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了. 这时就需要一种好用又高效的工具,xtrabackup就是其中一款,号称免费版的InnoDB HotBackup. Xtrabackup实现是物理备份,而且是物理热备 目前主流的有两个工

在 CentOS7 上部署 MySQL 主从

在 CentOS7 上部署 MySQL 主从 1 通过 SecureCRT 连接至 MySQL 主服务器: 2 找到 my.cnf 文件所在的目录: mysql --help | grep my.cnf 一般情况 my.cnf 都会位于 /etc/ 目录下: 3 用 vim 打开 MySQL 的配置文件 my.cnf: vim /etc/my.cnf 4 找到 [mysqld] 并在其后添加如下配置: # 唯一标识此 MySQL 服务器,默认值为 1,一般采用所属 IP 的末端值 server-

MYSQL-MMM主从同步部署mysql高用集群

使用mysql-mmm和mysql主从同步部署mysql高用集群 公共配置: 关闭iptables 禁用selinux 配置好yum源 固定ip 彼此间能通信 都运行数据库服务 都只有默认初始的四个库 1配置主主结构 2配置一主多从结构 3安装mysql-mmm软件 4配置mysql-mmm实现mysql高可用集群

使用xtrabackup进行MySQL数据库备份

使用xtrabackup进行MySQL数据库备份 一.简介 MySQL自带的mysqldump备份方式是采用逻辑备份,但是它最大的缺陷就是备份和恢复速度慢对于一个小于50G的数据库而言,这个速度还是能接受的,但如果数据库非常大,那再使用mysqldump备份就不太适合了. 目前主流的有两个工具可以实现物理热备:ibbackup和xtrabackup:ibbackup是商业软件,需要授权,非常昂贵.而xtrabackup功能比ibbackup还要强大,但却是开源的.号称免费版的InnoDB Hot

使用XtraBackup 备份MySQL数据库

本次测试使用XtraBackup备份MySQL数据库 版本:XtraBackup2.4.5+MySQL5.7.16 下载地址:https://www.percona.com/downloads/XtraBackup/ 1.安装XtraBackup 本次为了方便,使用解压版本进行安装,直接解压就可以用了. 使用过程中可能会遇到缺少perl依赖包的问题,我的方法是直接操作把镜像包里的perl都安装了,yum install -y perl* 2.简介 XtraBackup主要包括两个备份工具xtra