xtrabackup实现MySQL自动备份

本文介绍了如何使用xtrabackup工具为MySQL进行全量和增量备份,详细阐述了不同版本xtrabackup的命令差异,并提供了一种自动备份的shell脚本实现,通过Linux定时任务每天凌晨3点执行,保留一定周期内的备份数据。
摘要由CSDN通过智能技术生成

MySQL备份有多种方式,自带有冷备份工具,但是对于生产来说备份不可能停机进行,所以公认目前最好用的是xtrabackup这个工具;

 

xtrabackup目前已经更新到8.0了,在2.4.9及其之前的版本备份所用的命令和2.4.11开始后的版本所用的备份命令有所不同,

2.4.9之前的版本备份命令:

innobackupex [--defaults-file=#] +参数

简单的来说,就是启动命令是:innobackupex

2.4.11后命令是:

xtrabackup [--defaults-file=#] --backup  +参数

这里开始percona公司废除掉了innobackupex命令,换成了xtrabackup命令,这里需要注意一下,参数方式大体相通,备份和还原语法都有一定差异,如果命令报错可以--help进行查看命令格式;

 

我用的是2.4.11版本,原因在此之前我安装过2.3版本,我的数据库是5.7.24,xtrabackup工具的2.3版本报错不支持该数据库版本,后来我卸载了2.3的xtrabackup,下载安装过最新版8.0版本,也不能用,xtrabackup8.0版本在这篇文章所写的时间点,由于是新出来没多久,针对的是mysql8.0所出,所以目前还不兼容mysql以前的各个版本,目前的8.0xtrabackup仅支持MySQL8.0,所以我无法使用,大家在安装xtrabackup之前最好先调查自己的数据库并且想好用哪个版本的备份工具

 


xtrabackup备份原理不做介绍,网上一大堆可自行查询,这里主要分享下搭建和用脚本实现自动化备份

 

对于安装有很多种方式:yum 在线,tar 编译 和 rpm安装,我比较喜欢用rpm安装,

yum安装
yum list | grep percona
yum install percona-xtrabackup-24


或者上传rpm包进行rpm安装:
rpm -ql percona-xtrabackup-24-2.4.11-1.el7.x86_64

安装完后,执行help进行命令帮助查看:

[root@root full]# innobackupex --help
Open source backup tool for InnoDB and XtraDB

Copyright (C) 2009-2015 Percona LLC and/or its affiliates.
Portions Copyright (C) 2000, 2011, MySQL AB & Innobase Oy. All Rights Reserved.

This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation version 2
of the License.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You can download full text of the license on http://www.gnu.org/licenses/gpl-2.0.txt


innobackupex - Non-blocking backup tool for InnoDB, XtraDB and HailDB databases

NOTICE: 'innobackupex' is deprecated, please switch to 'xtrabackup'

SYNOPOSIS

innobackupex [--compress] [--compress-threads=NUMBER-OF-THREADS] [--compress-chunk-size=CHUNK-SIZE]
             [--encrypt=ENCRYPTION-ALGORITHM] [--encrypt-threads=NUMBER-OF-THREADS] [--encrypt-chunk-size=CHUNK-SIZE]

得到信息是,2.4.11版已经废掉了innobackupex命令,所以我们使用xtrabackup命令进行操作:

 

全量备份命令:

xtrabackup --defaults-file=/etc/my.cnf --backup --user=root --password=admin --target-dir=/data/mysqlbk/full



这里没有制定备份文件进行压缩,xtrabackup带有压缩功能,参数是:
--compress
默认是单线程进行压缩,想要提高效率可以再带上多线程压缩参数:
--compress-threads=20    这里代表开了20个线程进行压缩文件

 这里有很多参数可以自行添加,比如制定host等等,需要强调的是,制定配置文件参数如果要带上,必须放在第一个参数位,否则会报错,target_dir参数:存储备份文件到指定文件夹,建议建立一个备份角色,不要用root用户去备份。

181211 11:07:30 [00]        ...done
xtrabackup: Transaction log of lsn (10267675) to (10267684) was copied.
181211 11:07:31 completed OK!
[root@root full]# ls
backup-my.cnf  ib_buffer_pool  ibdata1  mysql  mysqlslap  performance_schema  sys  test_db  xtrabackup_checkpoints  xtrabackup_info  xtrabackup_logfile
[root@root full]# 

命令执行后,出现completed ok代表备份完成,ls查看全量备份文件夹,发现多了很多文件,都是全量备份文件,这里和innobackupex命令有所区别的是,innobackupex不加时间轴参数会默认生成一个带时间的文件夹保存备份数据,而xtrabackup不制定时间轴参数,默认不会生成一个带时间轴的文件夹保存文件;看个人喜欢自行添加参数即可。

 

参数说明:

--apply-log-only¶
此選項僅在準備備份時執行重做階段。這對增量備份非常重要。

--backup
進行備份並將其放入。請參閱 創建備份。xtrabackup --target-dir

--binlog-info
此選項控制Percona XtraBackup應如何檢索與備份對應的服務器二進制日誌坐標。可能的值是 OFF,ON,LOCKLESS和AUTO。有關 詳細信息,請參閱Percona XtraBackup無 鎖二進制日誌信息手冊頁。

--check-
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值