Xtrabackup备份与还原

Xtrabackup之备份与还原


Xtrabackup是percona的一个开源项目,可以热备份innodb,XtraDB,和MyISAM(会锁表),可以看做是mysql商业备份工具InnoDB Hotbackup的免费替代品。

①xtrabackup只能备份InnoDB和XtraDB两种数据库表,支持在线热备份,可以在不加锁的情况下备份Innodb数据表,不过此工具不能操作MyiSAM引擎表

②innobackupex是一个脚本封装,封装了xtrabackup,能同时处理Innodb和MyISAM,但在处理MyISAM时需要加一个读锁。


1.     准备工作

由于mysql版本号不同可能导致备份不成功,一次请尽量使用最新的版本,最新的版本会兼容旧版本。

xtrabackup版本:xtrabackup version 2.2.11 based on MySQL server 5.6.24 Linux (x86_64) (revision id: )

mysql版本:Server version: 5.5.5-10.0.15-MariaDB MariaDB Server

xtrabakcup官网下载地址:

https://www.percona.com/software/mysql-database/percona-xtrabackup

mariadb官网下载地址:

https://downloads.mariadb.org/

2.    安装xtrabakcup包


安装xtrabackup需要的依赖包:

yum install perl-DBI perl-DBD-MySQL perl-Time-HiRes perl-IO-Socket-SSL perl perl-devel

安装xtrabakcup:

rpm -ivh percona-xtrabackup-2.2.11-1.el6.x86_64.rpm

3.    全库备份命令:

innobackupex  --defaults-file=/etc/my.cnf  --user=root --password=cisco /home/mysql/     --parallel=4
[[email protected] 2016-04-21_13-59-35]# ll
total 77876
-rw-r--r-- 1 root root      358 Apr 21 13:59 backup-my.cnf
drwx------ 2 root root     4096 Apr 21 13:59 cisco1
drwx------ 2 root root     4096 Apr 21 13:59 cisco2
drwxr-xr-x 2 root root     4096 Apr 21 13:59 cisco3
drwxr-xr-x 2 root root     4096 Apr 21 13:59 cisco4
drwxr-xr-x 2 root root     4096 Apr 21 13:59 cisco5
-rw-r----- 1 root root 79691776 Apr 21 13:59 ibdata1
drwx------ 2 root root     4096 Apr 21 13:59 mysql
drwxr-xr-x 2 root root     4096 Apr 21 13:59 performance_schema
drwxr-xr-x 2 root root     4096 Apr 21 13:59 test
-rw-r--r-- 1 root root       31 Apr 21 13:59 xtrabackup_binlog_info
-rw-r----- 1 root root       89 Apr 21 13:59 xtrabackup_checkpoints
-rw-r--r-- 1 root root      644 Apr 21 13:59 xtrabackup_info
-rw-r----- 1 root root     2560 Apr 21 13:59 xtrabackup_logfile

3.    恢复数据库:

下面以mariadb-10.0.15还原为例进行说明:

mariadb数据库之前的安装目录为: /usr/local/mysql/

数据目录 /usr/local/mysql/data

进入备份文件目录:

cd /mysqlbackup/2016-04-21_13-59-35
[[email protected] 2016-04-21_13-59-35]# ll
total 129708
-rw-rw---- 1 mysql mysql    16384 Apr 21 14:41 aria_log.00000001
-rw-rw---- 1 mysql mysql       52 Apr 21 14:41 aria_log_control
-rwxr-xr-x 1 mysql mysql      402 Apr 21 14:28 backup-my.cnf
drwxr-xr-x 2 mysql mysql     4096 Apr 21 13:59 cisco1
drwxr-xr-x 2 mysql mysql     4096 Apr 21 13:59 cisco2
drwxr-xr-x 2 mysql mysql     4096 Apr 21 13:59 cisco3
drwxr-xr-x 2 mysql mysql     4096 Apr 21 13:59 cisco4
drwxr-xr-x 2 mysql mysql     4096 Apr 21 13:59 cisco5
-rwxr-xr-x 1 mysql mysql 79691776 Apr 21 14:41 ibdata1
-rw-rw---- 1 mysql mysql 50331648 Apr 21 14:29 ib_logfile1
-rwxr-xr-x 1 mysql mysql    69853 Apr 21 14:41 iZ23zynkag6Z.err
-rw-rw---- 1 mysql mysql        0 Apr 21 14:29 multi-master.info
drwxr-xr-x 2 mysql mysql     4096 Apr 21 13:59 mysql
drwxr-xr-x 2 mysql mysql     4096 Apr 21 13:59 performance_schema
drwxr-xr-x 2 mysql mysql     4096 Apr 21 13:59 test
-rwxr-xr-x 1 mysql mysql       31 Apr 21 13:59 xtrabackup_binlog_info
-rwxr-xr-x 1 mysql mysql       89 Apr 21 13:59 xtrabackup_checkpoints
-rwxr-xr-x 1 mysql mysql      644 Apr 21 13:59 xtrabackup_info
-rwxr-xr-x 1 mysql mysql  2654208 Apr 21 14:41 xtrabackup_logfile

恢复备份文件:

innobackupex  --defaults-file=./backup-my.cnf  --apply-log ./

系统显示 innobackupex: completed OK!,则数据恢复成功。

修改备份文件中的配置文件backup-my.cnf:   #innodb_page_size  #innodb_log_block_size注释,然后添加datadir为备份的文件目录:

# The MySQL server
[mysqld]
innodb_checksum_algorithm=innodb
innodb_log_checksum_algorithm=innodb
innodb_data_file_path=ibdata1:12M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=50331648
#innodb_page_size=16384
#innodb_log_block_size=512
innodb_undo_directory=.
innodb_undo_tablespaces=0
datadir=/mysqlbackup/2016-04-21_13-59-35/

修改文件属性:

chmod -R 755 /mysqlbackup/
chown -R mysql.mysql /mysqlbakcup/

重新安装mysql,指定datadir目录

./scripts/mysql_install_db  --user=mysql --datadir=/mysqlbackup/

启动mysqld服务:

/usr/local/mysql/bin/mysqld_safe --defaults-file=/mysqlbackup/2016-04-21_13_59_35/backup-my.cnf --user=mysql &

连接mysql服务,查看数据是否正常。

[[email protected] mysql]# /usr/local/mysql/bin/mysqld_safe  /mysqlbackup/2016-04-21_13_59_35/backup-my.cnf --user=mysql &
[1] 26625
[[email protected] mysql]# 160421 15:27:22 mysqld_safe Logging to ‘/home/mysql//iZ23zynkag6Z.err‘.
160421 15:27:22 mysqld_safe Starting mysqld daemon with databases from /home/mysql/

---------------------------------其他相关说明-----------------------------------------------------

增量备份待补充。。。

时间: 2024-12-18 15:44:41

Xtrabackup备份与还原的相关文章

xtrabackup备份、还原

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

使用xtrabackup备份和还原mysql的多实例(基于全备)

1)安装percona-xtrabackup Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份 工具InnoDB Hotbackup的一个很好的替代品 # 下载安装包: # cd /usr/local/src # wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.2/binary/redhat/6/x86_64/percona-xtrabac

使用xtrabackup备份和还原mysql的多实例

1.安装percona-xtrabackup # 下载安装包: # cd /usr/local/src # wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.3.2/binary/redhat/6/x86_64/percona-xtrabackup-2.3.2-1.el6.x86_64.rpm # 安装依赖库: # yum -y install perl perl-devel libaio libaio-

初识MariaDB之4——Xtrabackup备份与还原

一.基础知识 mysqldump是mysql自带的一个单线程的逻辑备份工具,当数据量很大时,使用mysqldump备份的时间会非常长,且无法做增量备份,xtrabackup是一款基于底层块复制.开源的备份工具,可以对数据库在线实现备份.xtrabackup支持对Innodb和Xtradb存储引擎的完全.增量和差异备份,对于不支持事物的MyISAM存储引擎只能完全备份. 二.备份工具 Xtrabackup工具用到的命令为xtrabackup和innobackupex,而innobackupex又是

Xtrabackup备份、还原、恢复Mysql操作大全

环境:CentOS 6.7  + Mysql 5.7.19 + Xtraback 2.4.8 innobackupex常用参数: --user=USER 指定备份用户,不指定的话为当前系统用户 --password=PASSWD 指定备份用户密码 --port=PORT 指定数据库端口 --defaults-group=GROUP-NAME 在多实例的时候使用 --host=HOST 指定备份的主机,可以为远程数据库服务器 --apply-log 回滚日志 --database 指定需要备份的数

xtrabackup备份还原MySQL数据库

原文:xtrabackup备份还原MySQL数据库 mysqldump 备份鉴于其自身的某些特性(锁表,本质上备份出来insert脚本或者文本,不支持差异备份),不太适合对实时性要求比较高的情况Xtrabackup可以解决mysqldump存在的上述的一些问题,生产环境应用的也会更多一些.本文简单测试一下Xtrabackup对MySQL数据库的备份还原操作. 本着先把功能先撸起来再深入细节的原则,粗略地实现了一个备份还原,并未深入细节. 网上有不少xtrabackup的文章,因为环境不一样,有些

MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原

大数据量备份与还原,始终是个难点.当MYSQL超10G,用mysqldump来导出就比较慢了.在这里推荐xtrabackup,这个工具比mysqldump要快很多. 本文还参考了:http://blog.chinaunix.net/uid-20682026-id-3319204.html xtrabackup备份恢复测试 一.Xtrabackup介绍 1.Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具I

mysql数据库使用xtrabackup工具 实现备份和还原

下载xtrabackup工具包 percona-xtrabackup-24-2.4.13-1.el7.x86_64.rpm 工具包可以从官网下载https://www.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0.4/binary/redhat/7/x86_64/percona-xtrabackup-80-8.0.4-1.el7.x86_64.rpm 安装xtrabackup工具包(需要启用epel源

xtrabackup备份还原mariadb数据库

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