xtrabackup单库全备&增量

xtrabackup 介绍:

xtrabackup有两个主要的工具:innobackupex和xtrabackup,xtrabackup只能备份InnoDB和XtraDB数据表,innobackupex封装了xtrabackup,可以备份MyISAM数据表。

第一步安装:

1.1.下载xtackbackup

地址:http://www.percona.com/downloads/XtraBackup/

1.2.安装:

tar -zxf percona-xtrabackup-2.0.8-587.tar.gz
cd /tmp/soft/percona-xtrabackup-2.0.8/bin
cp innobackupex /usr/bin/
cp xtrabackup_55 /usr/bin/

xtrabackup_55 取决于安装数据库的版本,此处为5.5

1.3.参数选项解释

Innobackupex 参数解释:
--defaults-file=[MY.CNF]该选项传递给xtrabackup子进程,从指定文件读取缺省选项
--apply-log 从备份恢复。
--redo-only 该选项强制跳过rollback阶段,只进行redo。这是有必要使用的,如果备份后,要使用增量改变的。
--copy-back 从备份目录拷贝数据和索引文件到datadir目录
--remote-host=HOSTNAME备份到远程主机上,使用ssh
--stream=[tar|cpio(notimplemented)] 指定备份标准输出格式
--tmpdir=DIRECTORY默认与tmpdir相同。使用—remote-host或—stream参数后,传输日志文件将存放在临时目录下
--use-memory=MB选项传递给xtrabackup子进程。恢复使用内存大小
--parallel=NUMBER-OF-THREADS选项传递给xtrabackup子进程,指定数据传输线程总数。默认为1
--throttle=IOS选项传递给xtrabackup子进程,限制IO线程数量
--sleep=MS 选项传递给xtrabackup子进程。每拷贝1MB数据暂停多少MS时间
--compress[=LEVEL]选项传递给xtrabackup子进程。压缩级别在0-9.1快速压缩,9最佳压缩,0不压缩。默认为1.
--include=REGEXP选项传递给xtrabackup子进程。使用正则进行匹配
--databases=LIST指定备份数据库
--tables-file=FILE
--uncompress选项传递给xtrabackup子进程。对压缩过的InnoDB数据文件不进行压缩
--export 仅使用于prepare选项。选项传递给xtrabackup子进程。
--user=NAME
--password=WORD
--host=HOST
--port=PORT
--slave-info 备份复制从服务端,主从信息记录在ibbackup_slave_info文件中
--socket=SOCKET
--no-timestamp不在备份根目录下创建以当前时间戳为名称的新的备份目录
--ibbackup=IBBACKUP-BINARYibbackup二进制路径
--no-lock 禁止表级锁。全部是InnoDB引擎表和不关系二进制日志位置下使用
--scpopt=SCP-OPTIONS指定scp参数

第二步骤,备份及恢复测试

1.使用innobackupex全备份测试

1.1.创建库,创建表,插入数据

创建库:

[email protected]:(none) 02:25:07 >create database ckl default character set utf8;        
Query OK, 1 row affected (0.01 sec)

创建表

[email protected]:(none) 02:25:31 >use ckl;
Database changed
[email protected]:ckl 02:25:36 >create table customer_info (name varchar(11),age int,hobby varchar(11)); 
Query OK, 0 rows affected (0.06 sec)

插入数据:

[email protected]:ckl 02:28:54 >insert into customer_info values(‘kangge‘,‘29‘,‘read‘);
Query OK, 1 row affected (0.00 sec)
[email protected]:ckl 02:29:05 >insert into customer_info values(‘obama‘,‘29‘,‘golf‘); 
Query OK, 1 row affected (0.00 sec)

查看数据:

[email protected]:ckl 02:30:11 >select * from customer_info;
+--------+------+-------+
| name   | age  | hobby |
+--------+------+-------+
| kangge |   29 | read  |
| obama  |   29 | golf  |
+--------+------+-------+
2 rows in set (0.00 sec)

1.2.全备份

--user 指定备份用户
--password 指定备份密码
--defaults-file 指定配置文件
--include 指定需要备份的数据库,多个用‘|‘隔开,比如‘mysql|ckl‘
/data/backup/ 全备份路径
/data/dela/ 增量备份路径

执行备份命令,只备份ckl库:

innobackupex --user=root --password=ckl893 --defaults-file=/etc/my.cnf --include=‘ckl‘ --slave-info /data/backup/

以下为备份部分内容:

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona LLC and/or its affiliates 2009-2013.  All Rights Reserved.
This software is published under
the GNU GENERAL PUBLIC LICENSE Version 2, June 1991.
141013 02:38:24  innobackupex: Starting mysql with options:  --defaults-file=‘/etc/my.cnf‘ --password=xxxxxxxx --user=‘root‘ --unbuffered --
141013 02:38:24  innobackupex: Connected to database with mysql child process (pid=61476)
141013 02:38:30  innobackupex: Connection to database server closed
IMPORTANT: Please check that the backup run completes successfully.
           At the end of a successful backup run innobackupex
           prints "completed OK!".   
innobackupex: Using mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1
innobackupex: Using mysql server version Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
xtrabackup_55 version 2.0.8 for Percona Server 5.5.16 Linux (x86_64) (revision id: 587)
xtrabackup: uses posix_fadvise().
xtrabackup: cd to /data/mysql/3306/data
xtrabackup: Target instance is assumed as followings.
xtrabackup:   innodb_data_home_dir = /data/mysql/3306/data
xtrabackup:   innodb_data_file_path = ibdata1:1024M:autoextend
xtrabackup:   innodb_log_group_home_dir = /data/mysql/3306/data
xtrabackup:   innodb_log_files_in_group = 2
xtrabackup:   innodb_log_file_size = 268435456
xtrabackup: using O_DIRECT
>> log scanned up to (954367302)
141013  2:38:32  InnoDB: Warning: allocated tablespace 1547, old maximum was 9
[01] Copying /data/mysql/3306/data/ibdata1 to /data/backup/2014-10-13_02-38-30/ibdata1
>> log scanned up to (954367302)
>> log scanned up to (954367302)
......
141013 02:39:16  innobackupex: completed OK!

备份完成

2.全备份恢复

2.1.删除数据库ckl

drop database ckl;

2.2. 停止数据库

/etc/init.d/mysqld stop

2.3. prepare全备份操作:

innobackupex --user=root --password=ckl893 --defaults-file=/etc/my.cnf --apply-log --export /data/backup/2014-10-13_02-38-30/

以下为恢复部分内容:

InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona LLC and/or its affiliates 2009-2013.  All Rights Reserved.
141013 02:41:43  innobackupex: Starting ibbackup with command: xtrabackup_55  --defaults-file="/etc/my.cnf"  --defaults-group="mysqld" --prepare --target-dir=/data/backup/2014-10-13_02-38-30 --export --tmpdir=/tmp
xtrabackup_55 version 2.0.8 for Percona Server 5.5.16 Linux (x86_64) (revision id: 587)
xtrabackup: cd to /data/backup/2014-10-13_02-38-30
xtrabackup: This target seems to be not prepared yet.
xtrabackup: xtrabackup_logfile detected: size=2097152, start_lsn=(954367302)
xtrabackup: Temporary instance for recovery is set as followings.
xtrabackup:   innodb_data_home_dir = ./
xtrabackup:   innodb_data_file_path = ibdata1:1024M:autoextend
xtrabackup:   innodb_log_group_home_dir = ./
xtrabackup:   innodb_log_files_in_group = 1
xtrabackup:   innodb_log_file_size = 2097152
xtrabackup: Temporary instance for recovery is set as followings.
....
141013 02:42:02  innobackupex: completed OK!

完成

2.4.拷贝备份文件

\cp -rf /data/backup/2014-10-13_02-38-30/* /data/mysql/3306/data/

2.5.赋予权限:

chown -R mysql.mysql /data/mysql/3306/data/

2.6.启动数据库,查看

/etc/init.d/mysqld start

查看数据:

[email protected]:ckl 02:47:29 >select * from customer_info;
+--------+------+-------+
| name   | age  | hobby |
+--------+------+-------+
| kangge |   29 | read  |
| obama  |   29 | golf  |
+--------+------+-------+
2 rows in set (0.00 sec)

3.增量备份及恢复:

3.1.增加数据:

[email protected]:ckl 02:50:00 >insert into customer_info values(‘hook‘,‘40‘,‘drive‘);
Query OK, 1 row affected (0.01 sec)
[email protected]:ckl 02:50:30 >select * from customer_info;
+--------+------+-------+
| name   | age  | hobby |
+--------+------+-------+
| kangge |   29 | read  |
| obama  |   29 | golf  |
| hook   |   40 | drive |
+--------+------+-------+

3.2. 备份全备份以来的增量备份

单个库增量备份:

Innobackupex --user=root --password=ckl893 --include=‘ckl‘ --defaults-file=/etc/my.cnf --incremental-basedir=/data/backup/2014-10-13_02-38-30/ --incremental /data/dela/
InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
....
141013 02:52:19  innobackupex: completed OK!

3.3.再次增加数据:

[email protected]:ckl 02:59:38 >insert into customer_info values(‘gardner‘,‘40‘,‘run‘); 
Query OK, 1 row affected (0.00 sec)
[email protected]:ckl 03:00:55 >select * from customer_info;                          
+---------+------+-------+
| name    | age  | hobby |
+---------+------+-------+
| kangge  |   29 | read  |
| obama   |   29 | golf  |
| hook    |   40 | drive |
| gardner |   40 | run   |
+---------+------+-------+
4 rows in set (0.00 sec)

3.4. 备份自增量备份以来的数据:

单个库增量备份

innobackupex --user=root --password=ckl893 --include=‘ckl‘ --defaults-file=/etc/my.cnf --incremental-basedir=/data/dela/2014-10-13_02-51-52/ --incremental /data/dela/
InnoDB Backup Utility v1.5.1-xtrabackup; Copyright 2003, 2009 Innobase Oy
and Percona LLC and/or its affiliates 2009-2013.  All Rights Reserved.
.....
141013 03:03:12  innobackupex: completed OK!

4.删除数据库,测试恢复

4.1.删除数据库:

drop database ckl;

4.2.prepare 操作:

全备份prepare:

innobackupex --user=root --password=ckl893 --defaults-file=/etc/my.cnf --apply-log --export /data/backup/2014-10-13_02-38-30/

第一次增量prepare:

innobackupex --user=root --password=ckl893 --defaults-file=/etc/my.cnf --apply-log --redo-only /data/backup/2014-10-13_02-38-30/ --incremental-dir=/data/dela/2014-10-13_02-51-52/

第二次增量prepare:

innobackupex --user=root --password=ckl893 --defaults-file=/etc/my.cnf --apply-log /data/backup/2014-10-13_02-38-30/ --incremental-dir=/data/dela/2014-10-13_03-02-45/

备份目录分析

在/data/dela/下有三个目录:

2014-10-13_02-38-30/  全备份目录
2014-10-13_02-51-52/  第一次增量备份目录
2014-10-13_03-02-45/  第二次增量备份目录

4.3.拷贝备份文件

多次增量备份特别注意:

恢复的时候,如果是多次增量备份,执行两步操作

第一步:拷贝最后一次的增量备份文件

\cp -rf /data/backup/2014-10-13_03-02-45/* /data/mysql/3306/data/

第二部:拷贝全备的备份文件

\cp -rf /data/backup/2014-10-13_02-38-30/* /data/mysql/3306/data/

因为多次增量备份期间可能会有新的表创建,而全备则没有相应的表文件,所有必需要拷贝最后一次的增量备份文件

4.4.赋予权限:

chown -R mysql.mysql /data/mysql/3306/data/

4.5.启动数据库,查看

/etc/init.d/mysqld start
[email protected]:ckl 03:13:19 >select * from customer_info;
+---------+------+-------+
| name    | age  | hobby |
+---------+------+-------+
| kangge  |   29 | read  |
| obama   |   29 | golf  |
| hook    |   40 | drive |
| gardner |   40 | run   |
+---------+------+-------+
4 rows in set (0.00 sec)

xtrabackup单库全备&增量

时间: 2024-08-07 00:15:32

xtrabackup单库全备&增量的相关文章

Xtrabackup安装+(全备+增量+二进制日志)备份,你值得拥有。

本文以简单直接给力为目的. 1.配置网络yum源(保证虚拟机联网) rm -rf /etc/yum.repos.d/* wget –P /home/backup/  http://mirrors.163.com/.help/CentOS6-Base-163.repo mv CentOS6-Base-163.repo  /etc/yum.repos.d/CentOS-Base.repo cd /etc/yum.repos.d/ mv CentOS6-Base-163.repo  CentOS6-B

xtrabackup备份工具两种命令单库增量备份还原

Innobackupex 参数解释: --defaults-file=[MY.CNF]该选项传递给xtrabackup子进程,从指定文件读取缺省选项 --apply-log 从备份恢复. --redo-only 该选项强制跳过rollback阶段,只进行redo.这是有必要使用的,如果备份后,要使用增量改变的. --copy-back 从备份目录拷贝数据和索引文件到datadir目录 --remote-host=HOSTNAME备份到远程主机上,使用ssh --stream=[tar|cpio(

MYSQLDUMP全备只恢复单库或是单表

一.发现问题 平时使用mysqldump备份时有人喜欢用-A –B参数进行全备,这样备份的时候会简单一点,但是恢复的时候如果直接恢复会把所有库都会恢复,这不是我们想要的结果. 二.分析问题 恢复单库或是单表我们可以通过shell命令从全库备份的SQL文件中截取出我们想要的部分.另外针对单库的恢复MySQL也有一个参数来解决这个问题. 三.解决问题 1.通过MySQL自带的参数恢复单库. # 全备的数据库 mysql> show databases; +--------------------+

Innobackupex(全备+增量)备份恢复

MySQL的热备(物理备份)可以采取全备加增量备份的方式来减轻数据库I/O压力及系统资源的占用.增量备份主要是以全备或增量备份为基础,备份那些变更过的页面.其备份的原理是基于一个不断增长的LSN序列,这个LSN与Oracle的SCN类似.在恢复期间,我们需要将已提交的事务前滚,未提交的事务回滚.本文主要描述了增量备份及增量恢复. 1.增备的相关知识点    As not all information changes between each backup, the incremental ba

InfoPath与SharePoint之(六)在表单库里引用InfoPath Form Content Type

在表单库里引用InfoPath Form Content Type 在上一篇,介绍了如何把InfoPath Form类型的Content Type发布到SiteCollection,发布完之后,就可以在已经存在的表单库里引用了. 打开一个已经存在的表单库,点击Ribbon上的Library Settings: 在Settings页面,点击Advanced Settings: 默认情况下,添加Content Type功能是关闭的,在这里开启: 再回到Library Settings页面,就可以添加

[运维笔记] Mysql单库备份脚本

工作中用到的Mysql单库备份Shell脚本,压缩备份,并在Crontab中添加计划任务,最多保存60天的备份 #!/bin/bash . /etc/profile USERNAME=zabbix PASSWORD=xxxxx DBHOST=127.0.0.1 DATABASES=zabbix BACKUPDIR=/data/mysqlback/zabbix/fulldb DATE=`date +%Y-%m-%d_%H_%M` rm -fv ${BACKUPDIR}/*$(date +%Y-%m

Sharding-JDBC实现水平拆分-单库分表

参考资料:猿天地   https://mp.weixin.qq.com/s/901rNhc4WhLCQ023zujRVQ 作者:尹吉欢 当单表的数量急剧上升,超过了1千万以上,这个时候就要对表进行水平拆分. 表的水平拆分是什么? 就是将一个表拆分成N个表,就像一块大石头,搬不动,然后切割成10块,这样就能搬的动了.原理是一样的. 除了能够分担数量的压力,同时也能分散读写请求的压力,当然这个得看你的分片算法了,合理的算法才能够让数据分配均匀并提升性能. 今天我们主要讲单库中进行表的拆分,也就是不分

xtrabackup安装及全备,增量备份,及恢复

xtrabackup特性: 1.支持热备份 2.支持对InnoDB.MyISAM,xtradb存储引擎的备份 3.备份过程快速.可靠 4.备份过程不会打断正在执行的事务 5.能够基于压缩等功能节约磁盘空间和流量 6.自动实现备份检验 7.还原速度快 (一)安装: 官网:https://www.percona.com/doc/percona-xtrabackup/LATEST/installation/yum_repo.html ubuntu: wget https://repo.percona.

xtrabackup 全备份,增量备份,恢复 mysql数据库

Xtrabackup使用指南 InnoDB数据备份工具 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写,也就是不加锁),是商业备份工具InnoDB Hotbackup的一个很好的替代品 一.Xtrabackup介绍  A.Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具