利用XtraBackup实现MySQL物理备份恢复

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具。特点:

(1)备份过程快速、可靠;

(2)备份过程不会打断正在执行的事务;

(3)能够基于压缩等功能节约磁盘空间和流量;

(4)自动实现备份检验;

(5)还原速度快;

Xtrabackup中主要包含两个工具:

xtrabackup:是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构;

innobackupex:是将xtrabackup进行封装的perl脚本,可以备份和恢复MyISAM表以及数据表结构。

Xtrabackup下载地址:

http://www.percona.com/downloads/XtraBackup/XtraBackup-2.1.9/binary/Linux/i686/

[[email protected] MySQL]# mkdir /usr/local/xtrabackup
[[email protected] MySQL]# tar -xvf percona-xtrabackup-2.1.9-744-Linux-i686.tar.gz -C /usr/local/xtrabackup
[[email protected] ~]# cd /usr/local/xtrabackup/ percona-xtrabackup-2.1.9-Linux-i686
[[email protected] percona-xtrabackup-2.1.9-Linux-i686]# mv bin/ ..
[[email protected] percona-xtrabackup-2.1.9-Linux-i686]# mv share/ ..
[[email protected] percona-xtrabackup-2.1.9-Linux-i686]# cd /usr/local/xtrabackup/
[[email protected] xtrabackup]# rmdir percona-xtrabackup-2.1.9-Linux-i686/
[[email protected] xtrabackup]# ls
bin share
[[email protected] xtrabackup]# cd bin/
[[email protected] bin]# ll
total 95804
-rwxr-xr-x. 1 root root 168821 May 2 17:42 innobackupex
lrwxrwxrwx. 1 root root 12 May 15 20:15 innobackupex-1.5.1 -> innobackupex
-rwxr-xr-x. 1 root root 2004765 May 2 17:42 xbcrypt
-rwxr-xr-x. 1 root root 2064576 May 2 17:42 xbstream
-rwxr-xr-x. 1 root root 10341667 May 2 17:42 xtrabackup
-rwxr-xr-x. 1 root root 13483602 May 2 17:36 xtrabackup_55
-rwxr-xr-x. 1 root root 70026286 May 2 17:40 xtrabackup_56
[[email protected] xtrabackup]# echo "export PATH=$PATH:/usr/local/xtrabackup/bin" >> /etc/profile
[[email protected] xtrabackup]# source /etc/profile

到此XtraBackup安装完毕了。

1.用XtraBackup实现完全备份

[[email protected] ~]# innobackupex --user=root --password=asdfgh /backup

这时会出现错误:xtrabackup: Error: Please set parameter ‘datadir‘

解决方法:在/etc/my.cnf里加入datadir参数

[[email protected] ~]# vim /etc/my.cnf

[mysqld]

datadir=/usr/local/mysql/data

[[email protected] ~]# innobackupex --user=root --password=asdfgh /backup/
[[email protected] ~]# cd /backup/
[[email protected] backup]# ls
2014-05-15_22-33-56
[[email protected] backup]# cd 2014-05-15_22-33-56/
[[email protected] 2014-05-15_22-33-56]# ll
total 321592
-rw-r--r--. 1 root root 260 May 15 22:33 backup-my.cnf
drwxr-xr-x. 2 root root 4096 May 15 22:34 employees
-rw-r-----. 1 root root 329252864 May 15 22:34 ibdata1
drwxr-xr-x. 2 root root 4096 May 15 22:34 imkh
drwxr-xr-x. 2 root root 4096 May 15 22:34 mysql
drwxr-xr-x. 2 root root 4096 May 15 22:34 performance_schema
drwxr-xr-x. 2 root root 4096 May 15 22:34 sakila
drwxr-xr-x. 2 root root 4096 May 15 22:34 test
drwxr-xr-x. 2 root root 4096 May 15 22:34 test1
drwxr-xr-x. 2 root root 4096 May 15 22:34 world
drwxr-xr-x. 2 root root 4096 May 15 22:34 world_innodb
-rw-r--r--. 1 root root 13 May 15 22:34 xtrabackup_binary
-rw-r--r--. 1 root root 23 May 15 22:34 xtrabackup_binlog_info
-rw-r-----. 1 root root 93 May 15 22:34 xtrabackup_checkpoints
-rw-r-----. 1 root root 2560 May 15 22:34 xtrabackup_logfile

(1) backup-my.cnf —— 备份命令用到的配置选项信息;

[[email protected] 2014-05-15_22-33-56]# cat backup-my.cnf
# This MySQL options file was generated by innobackupex.
# The MySQL server
[mysqld]
innodb_data_file_path=ibdata1:10M:autoextend
innodb_log_files_in_group=2
innodb_log_file_size=5242880
innodb_fast_checksum=0
innodb_page_size=16384
innodb_log_block_size=512

(2) ibdata —— 备份的表空间文件;

(3) xtrabackup_binary —— 备份中用到的xtrabackup的可执行文件;

[[email protected] 2014-05-15_22-33-56]# more xtrabackup_binary
xtrabackup_55

(4) xtrabackup_binlog_info —— mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止二进制日志事件的位置;

[[email protected] 2014-05-15_22-33-56]# more xtrabackup_binlog_info
mysql-bin.000017    107

(5) xtrabackup_checkpoints —— 备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;

[[email protected] 2014-05-15_22-33-56]# more xtrabackup_checkpoints
backup_type = full-backuped
from_lsn = 0
to_lsn = 836446404
last_lsn = 836446404
compact = 0

(6) xtrabackup_logfile —— 备份的重做日志文件。

在使用innobackupex进行备份时,还可以使用-no-timestamp选项来阻止命令自动创建一个以时间命名的目录;如此一来,innobackupex命令将会创建一个BACKUP-DIR目录来存储备份数据。

[[email protected] ~]# innobackupex --user=root --password=asdfgh --no-timestamp /backup1    //不用先创建/backup1

(7)准备(prepare)一个完全备份

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备(prepare)”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

innobakupex命令的-apply-log选项可用于实现上述功能。

[[email protected] backup]# innobackupex --apply-log 2014-05-15_22-33-56/

在实现“准备”的过程中,innobackupex通常还可以使用–use-memory选项来指定其可以使用的内存的大小,默认通常为100M。如果有足够的内存可用,可以多划分一些内存给prepare的过程,以提高其完成速度。

2.使用XtraBackup实现完全备份的恢复

1)模拟数据库损坏

直接使用删除数据目录文件来模拟损坏:

[[email protected] ~]# cd /usr/local/mysql/data/
[[email protected] data]# rm -rf *
[[email protected] data]# mysql -uroot -p
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)

(2)还原完全备份:

innobackupex命令的–copy-back选项用于执行恢复操作,其通过复制所有数据相关的文件至mysql服务器DATADIR目录中来执行恢复过程。innobackupex通过backup-my.cnf来获取DATADIR目录的相关信息。

[[email protected] ~]# innobackupex --copy-back /backup/2014-05-15_22-33-56/
[[email protected] ~]# cd /usr/local/mysql/data/
[[email protected] data]# ll
total 331820
drwxr-xr-x. 2 root root 4096 May 15 23:11 employees
-rw-r--r--. 1 root root 329252864 May 15 23:11 ibdata1
-rw-r--r--. 1 root root 5242880 May 15 23:11 ib_logfile0
-rw-r--r--. 1 root root 5242880 May 15 23:11 ib_logfile1
drwxr-xr-x. 2 root root 4096 May 15 23:11 imkh
drwxr-xr-x. 2 root root 4096 May 15 23:11 mysql
drwxr-xr-x. 2 root root 4096 May 15 23:11 performance_schema
drwxr-xr-x. 2 root root 4096 May 15 23:11 sakila
drwxr-xr-x. 2 root root 4096 May 15 23:11 test
drwxr-xr-x. 2 root root 4096 May 15 23:11 test1
drwxr-xr-x. 2 root root 4096 May 15 23:11 world
drwxr-xr-x. 2 root root 4096 May 15 23:11 world_innodb
-rw-r--r--. 1 root root 29 May 15 23:11 xtrabackup_binlog_pos_innodb

(3)修改还原后的数据目录权限:

[[email protected] data]# chown -R mysql:mysql .
[[email protected] data]# ll
total 331820
drwxr-xr-x. 2 mysql mysql 4096 May 15 23:11 employees
-rw-r--r--. 1 mysql mysql 329252864 May 15 23:11 ibdata1
-rw-r--r--. 1 mysql mysql 5242880 May 15 23:11 ib_logfile0
-rw-r--r--. 1 mysql mysql 5242880 May 15 23:11 ib_logfile1
drwxr-xr-x. 2 mysql mysql 4096 May 15 23:11 imkh
drwxr-xr-x. 2 mysql mysql 4096 May 15 23:11 mysql
drwxr-xr-x. 2 mysql mysql 4096 May 15 23:11 performance_schema
drwxr-xr-x. 2 mysql mysql 4096 May 15 23:11 sakila
drwxr-xr-x. 2 mysql mysql 4096 May 15 23:11 test
drwxr-xr-x. 2 mysql mysql 4096 May 15 23:11 test1
drwxr-xr-x. 2 mysql mysql 4096 May 15 23:11 world
drwxr-xr-x. 2 mysql mysql 4096 May 15 23:11 world_innodb
-rw-r--r--. 1 mysql mysql 29 May 15 23:11 xtrabackup_binlog_pos_innodb

利用XtraBackup实现MySQL物理备份恢复,布布扣,bubuko.com

时间: 2024-10-12 17:07:22

利用XtraBackup实现MySQL物理备份恢复的相关文章

mysql物理备份工具Xtrabackup安装配置

mysql物理备份工具Xtrabackup安装配置 1????Xtrabackup工具介绍 Xtrabackup是一个对InnoDB做物理数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具:xtrabackup.innobackupex (1)xtrabackup只能备份InnoDB和XtraDB两种数据表,而不能备份MyISAM数据表. (2)innobackupex是用来备份非Inn

Xtrabackup原理及使用innobackupex进行MySQL数据库备份恢复

Xtrabackup是由percona提供的mysql数据库备份工具,据官方介绍,这也是世界上惟一一款开源的能够对innodb和xtradb数据库进行热备的工具. Xtrabackup中主要包含两个工具: xtrabackup:是用于热备份innodb, xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构: innobackupex:是将xtrabackup进行封装的perl脚本,可以备份和恢复MyISAM表以及数据表结构. 一段官方文档的说明: http://www.per

专职DBA-Xtrabackup物理备份恢复

专职DBA-Xtrabackup物理备份恢复 Xtrabackup是Percona公司专门针对MySQL数据库开发的一款开源免费的物理热备工具. 可以对InnoDB和XtraDB事物引擎的数据库实现非阻塞(即不锁表)方式备份. 可以对MyISAM非事物引擎实现锁表方式备份. 1.Xtrabackup的主要特点: 直接复制物理文件,备份恢复数据速度快,安全可靠. 备份期间执行的事物不会间断,备份InnoDB数据不会影响业务. 备份期间不会增加太多数据库的性能压力. 支持对备份的数据进行自动校验.

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

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

使用xtrabackup进行MySQL数据库备份

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

利用XtraBackup给MYSQL热备(基于数据文件)

利用XtraBackup给MYSQL热备(基于数据文件) By JRoBot on 2013 年 11 月 26 日 | Leave a response 利用XtraBackup给MYSQL热备(基于数据文件)利用 XtraBackup 快速配置主从服务器这XtraBackup 个主要包含2个命令 xtrabackup 和 innobackupex 第一个是他的主程序 另外个他自己封装的脚本一般用脚本来完成备份这是工作笔记 比较凌乱 凑合着看吧 获取XtraBackup 获取XtraBacku

mysql用户管理、常用sql语句、mysql数据库备份恢复

mysql用户管理 1.新增用户user1,并设置密码为123456 mysql> grant all on *.* to 'user1'@'127.0.0.1' identified by '123456'; #创建user1用户并授予其所有权限"*.*"(通配符) #第一个*:表示所有的数据库 #第二个*:表示所有的表 #127.0.0.1表示来源IP,指的只有这个IP可以连接:'%':代表所有的ip #identified by 设置密码 2.对user1用户进行授权管理

13.4 mysql用户管理 13.5 常用sql语句 13.6 mysql数据库备份恢复

13.4 mysql用户管理 grant all on . to 'user1' identified by 'passwd';mysql> grant all on . to 'user1' identified by 'passwd';Query OK, 0 rows affected (0.01 sec) grant SELECT,UPDATE,INSERT on db1. to 'user2'@'192.168.15.132' identified by 'passwd';mysql>

mysql用户管理, 常用sql语句,mysql数据库备份恢复

mysql用户管理 新创建一个指定IP的用户,可以访问mysql的某些库某些表. 所有库的所有表,如果想指定访问某个库某些表,只需要修改名称user1 指定用户名br/>@后面的ip是指定ip,%表示所有的ipindentified by 后面是用户的密码验证用用户user1登录也可以指定localhost,登录时不输入本机ip地址即可访问查看授权,用于授权给新用户,新权限: 常用sql 语句 查看库表的行数搜索:select count() from mysql.user;搜索:select