MySQL--使用xtrabackup进行备份还原

使用rpm包安装xtrabackup

## 安装依赖包
yum -y install perl perl-devel libaio libaio-devel perl-Time-HiRes perl-DBD-MySQL rsync

## 安装libev4包
rpm -ivh libev4-4.15-7.1.x86_64.rpm

## 安装percona-xtrabackup
rpm -ivh percona-xtrabackup-24-2.4.4-1.el6.x86_64.rpm

为备份操作创建MySQL账户。

## xtrabackup备份创建备份用户
CREATE USER ‘backuper‘@‘localhost‘ IDENTIFIED BY ‘[email protected]‘;
GRANT SELECT, RELOAD, PROCESS, SHOW DATABASES, SUPER, LOCK TABLES, REPLICATION CLIENT, SHOW VIEW, EVENT ON *.* TO ‘backuper‘@‘localhost‘;
FLUSH PRIVILEGES;

创建备份文件目录

mkdir /export/mysql_backup

对数据库进行完整备份,如果在从库上进行备份,请添加--slave_info –safe-slave-backup参数来获取复制主库的binlog信息。默认备份会将当前库的binlog信息保存到xtrabackup_binlog_info文件中,而--slave_info参数将复制主库的binlog信息保存到xtrabackup_slave_info中,如果使用备份来添加复制,请注意选取正确的binlog信息。

## 进行完整备份并压缩
innobackupex --defaults-file="/export/servers/mysql/etc/my.cnf" --host="localhost" --port=3358 --user="backuper" --password="[email protected]" --socket="/export/data/mysql/tmp/mysql.sock" --stream=tar "/export/mysql_backup/" | gzip -> "/export/mysql_backup/mysql_full_backup.tar.gz"

注意检查命令是否成功执行,使用tar备份能有效降低备份文件的大小,但是压缩和加压缩都会严重消耗cpu资源。

============================================================

假设进行完上面操作,将备份文件拷贝到新的服务器上,同样放到/export/mysql_backup/下

解压备份文件

## 切换到备份压缩文件所在目录
## 强烈建议创建一个空的目录来存放备份文件,以避免解压后的文件与其他文件冲突
cd /export/mysql_backup/

##加压备份
tar xvf mysql_full_backup.tar.gz

使用xtrabackup备份得到的数据是备份结束时间点的数据,备份期间所产生的事务日志被保存到备份文件xtrabackup_logfile中,因此需要先对备份文件进行日志重做和回滚未提交事务。--apply-log还会根据backup-my.cnf来生成新的事务日志文件。

#使用apply-log参数来处理事务日志innobackupex --apply-log /export/mysql_backup/

由于在还原时要求目标目录为空,而即使新安装的MySQL服务器也会存在一些如系统数据库的数据文件,因此在将备份还原到MySQL之前,需要将当前MySQL数据目录下的文件进行情况,为保险期间,建议先使用mv命令来改名。

#备份当前MySQL的数据目录mv /export/data/mysql /export/data/mysql_bak

xtrbackup备份操作只备份数据相关的文件,并不会备份如错误日志/慢日志等文件或目录,而上一步操作mv可能移除掉部分文件目录,因此需要手动再创建一遍。

## 创建MySQL数据目录
mkdir -p /export/data/mysql/tmp /export/data/mysql/data /export/data/mysql/dumps /export/data/mysql/log

使用move-back参数来将数据移动到MySQL数据目录下,同样也可以使用--copy-back参数来只拷贝而不复制。

innobackupex --defaults-file="/export/servers/mysql/etc/my.cnf" --move-back /export/mysql_backup/

数据复制到MySQL数据目录后,需要修改这些数据文件的所有者,保证MySQL服务有权限操纵。

#修改MySQL数据目录的权限chown -R mysql:mysql /export/data/mysql

最终启动MySQL服务,检查数据是否正常

##==================================================##

时间: 2024-10-12 01:47:14

MySQL--使用xtrabackup进行备份还原的相关文章

mysql 备份文件.xb 数据库备份还原

今天一位老友跟我说他的mysql备份文件后缀.xb无法还原,或者还原出来只有表格没有数据, 于是我决定尝试进行一下备份还原, 在网上搜了一下 有一个腾讯云的文档, 按照腾讯云的来吧 首先 解包备份文件 由于备份文件先经过 qpress 压缩,后经过 xbstream 打包(xbstream 为 Percona 的一种打包/解包工具),所以下载备份文件后,应该先用 xbstream 将其解包.xbstream 工具可以通过 Percona XtraBackup 官网下载或者直接下载二进制包. Pe

MYSQL的日志与备份还原

一.错误日志 当数据库出现任何故障导致无法使用时,第一时间先去查看该日志 1.服务器启动关闭过程中的信息 2.服务器运行过程中的错误信息 日志存放路径,可以通过命令查看: 日志文件命名格式:host_name.err 二.二进制日志 又称BINLOG,记录所有的DDL语句和DML语句,不包括查询语句.这个日志不仅非常重要,而且作为开发人员也非常喜欢这个日志.从它的定义可以看出,这个日志记录了所有会改变表结构和表数据的事件,所以一旦数据被误删除或者因为其他原因导致数据丢失,我们可以通过这个日志将数

xtrabackup在线备份还原(不锁表)

安装配置xtrabackuptar zxvf percona-xtrabackup-2.0.7.tar.gzcd percona-xtrabackup-2.0.7AUTO_DOWNLOAD="yes" ./utils/build.sh 5.5 #5.5表示为数据库5.5版本,如果是5.6版本这里修改成5.6安装完之后,建立软链接# cp /root/soft/percona-xtrabackup-2.0.7/innobackupex /usr/local/mysql_p/bin/inn

mysql笔记之常用备份还原

备份: mysqldump -u user -p pwd -h host dbname[tbname,[tbname...]]>filename.sql    ---(逻辑备份) -q or -quick    ----不占用内存 -w "WHERE Clause" or -where = "Where clause "   ----条件 --all-databases -----所有数据库 --databases    ------多个数据库,数据库之间用空

Mysql表复制及备份还原

1.复制表结构 1.1 含有主键等信息的完整表结构 CREATE table 新表名 LIKE book; 1.2 只有表结构,没有主键等信息 create table 新表名 select * from books; 或 create table  新表名 as (select * from book); 或 create table 新表名 select * from books where 1=2; 2.将旧表中的数据灌入新表 INSERT INTO 新表 SELECT * FROM 旧表

MySQL 利用binlog增量备份+还原实例

一,什么是增量备份 增量备份,就是将新增加的数据进行备份.假如你一个数据库,有10G的数据,每天会增加10M的数据,数据库每天都要备份一次,这么多数据是不是都要备份呢?还是只要备份增加的数据呢,很显然,我只要备份增加的数据.这样减少服务器的负担. 二,启用binlog vi my.cnf log-bin=/var/lib/mysql/mysql-bin.log,如果是这样的话log-bin=mysql-bin.log默认在datadir目录下面 [[email protected] mysql]

基于逻辑卷LVM的MySQL、mariadb数据库备份还原详细实现

前提是数据库的数据是放在逻辑卷上的: 数据库数据和日志分开存放:正常情况下数据和日志是放在两个独立的磁盘上,如果是raid的话,那么就无所谓了. 创建分区:         [[email protected] ~]$fdisk /dev/sda         Command (m for help): n         All primary partitions are in use         Adding logical partition 6         First sec

xtrabackup备份还原mariadb数据库

一.xtrabackup 简介 xtrabackup 是由percona公司开源免费的数据库热备软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份,对于myisam的备份同样需要加表锁.mysqldump备份方式是通过用户名密码连接到数据库,将其要备份的数据库用SQL语句的形式输出到标准输出,这种逻辑备份的方式最大的缺点是备份和恢复的速度较慢,如果数据库过大,mysqldump备份就显得力不从心了.这时选择用xtrabackup来备份就能很好解决数据库过大而导致备份过慢的问

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

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