设为首页 收藏本站
查看: 269|回复: 0

[经验分享] xtrabackup单库全备&增量

[复制链接]
累计签到:2 天
连续签到:1 天
发表于 2016-4-13 09:38:28 | 显示全部楼层 |阅读模式
xtrabackup 介绍:
xtrabackup有两个主要的工具:innobackupex和xtrabackup,xtrabackup只能备份InnoDB和XtraDB数据表,innobackupex封装了xtrabackup,可以备份MyISAM数据表。

第一步安装:
1.1.下载xtackbackup
地址:http://www.percona.com/downloads/XtraBackup/

1.2.安装:
1
2
3
4
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.参数选项解释
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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.创建库,创建表,插入数据
创建库:
1
2
root@localhost:(none) 02:25:07 >create database ckl default character set utf8;        
Query OK, 1 row affected (0.01 sec)




创建表
1
2
3
4
root@localhost:(none) 02:25:31 >use ckl;
Database changed
root@localhost:ckl 02:25:36 >create table customer_info (name varchar(11),age int,hobby varchar(11));
Query OK, 0 rows affected (0.06 sec)




插入数据:
1
2
3
4
root@localhost:ckl 02:28:54 >insert into customer_info values('kangge','29','read');
Query OK, 1 row affected (0.00 sec)
root@localhost:ckl 02:29:05 >insert into customer_info values('obama','29','golf');
Query OK, 1 row affected (0.00 sec)




查看数据:
1
2
3
4
5
6
7
8
root@localhost: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.全备份
1
2
3
4
5
6
--user 指定备份用户
--password 指定备份密码
--defaults-file 指定配置文件
--include 指定需要备份的数据库,多个用'|'隔开,比如'mysql|ckl'
/data/backup/ 全备份路径
/data/dela/ 增量备份路径




执行备份命令,只备份ckl库:
1
innobackupex --user=root --password=ckl893 --defaults-file=/etc/my.cnf --include='ckl' --slave-info /data/backup/




以下为备份部分内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
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
1
drop database ckl;



2.2. 停止数据库
1
/etc/init.d/mysqld stop





2.3. prepare全备份操作:
1
innobackupex --user=root --password=ckl893 --defaults-file=/etc/my.cnf --apply-log --export /data/backup/2014-10-13_02-38-30/



以下为恢复部分内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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.拷贝备份文件
1
\cp -rf /data/backup/2014-10-13_02-38-30/* /data/mysql/3306/data/




2.5.赋予权限:
1
chown -R mysql.mysql /data/mysql/3306/data/




2.6.启动数据库,查看
1
/etc/init.d/mysqld start



查看数据:
1
2
3
4
5
6
7
8
root@localhost: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.增加数据:
1
2
3
4
5
6
7
8
9
10
root@localhost:ckl 02:50:00 >insert into customer_info values('hook','40','drive');
Query OK, 1 row affected (0.01 sec)
root@localhost:ckl 02:50:30 >select * from customer_info;
+--------+------+-------+
| name   | age  | hobby |
+--------+------+-------+
| kangge |   29 | read  |
| obama  |   29 | golf  |
| hook   |   40 | drive |
+--------+------+-------+




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

单个库增量备份:
1
2
3
4
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.再次增加数据:
1
2
3
4
5
6
7
8
9
10
11
12
root@localhost:ckl 02:59:38 >insert into customer_info values('gardner','40','run');
Query OK, 1 row affected (0.00 sec)
root@localhost: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. 备份自增量备份以来的数据:

单个库增量备份
1
2
3
4
5
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.删除数据库:
1
drop database ckl;




4.2.prepare 操作:
全备份prepare:
1
innobackupex --user=root --password=ckl893 --defaults-file=/etc/my.cnf --apply-log --export /data/backup/2014-10-13_02-38-30/



第一次增量prepare:
1
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:
1
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/下有三个目录:
1
2
3
2014-10-13_02-38-30/  全备份目录
2014-10-13_02-51-52/  第一次增量备份目录
2014-10-13_03-02-45/  第二次增量备份目录




4.3.拷贝备份文件
多次增量备份特别注意:
恢复的时候,如果是多次增量备份,执行两步操作
第一步:拷贝最后一次的增量备份文件
1
\cp -rf /data/backup/2014-10-13_03-02-45/* /data/mysql/3306/data/



第二部:拷贝全备的备份文件
1
\cp -rf /data/backup/2014-10-13_02-38-30/* /data/mysql/3306/data/



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

4.4.赋予权限:
1
chown -R mysql.mysql /data/mysql/3306/data/




4.5.启动数据库,查看
1
2
3
4
5
6
7
8
9
10
11
/etc/init.d/mysqld start
root@localhost: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)






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-203352-1-1.html 上篇帖子: phpmyadmin安装 下篇帖子: 编译安装mysql5.6
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表