y23335793 发表于 2018-9-28 12:27:22

MySQL[3] 在线热备工具Xtrabackup

1、实验前的准备工作  
# service mysqld stop
  
# rm -rf /mydata/data/*   //删除原来的备份文件
  
# rm -rf /backup/*
  
# /usr/local/mysql/scripts/mysql_install_db --user=mysql --datadir=/mydata/data/ --basedir=/usr/local/mysql/
  
# service mysqld start
  
# mysqladmin -uroot -p password 123456
  
# mysql -uroot -p123456
  
mysql> create database jiaowu;
  
mysql> use jiaowu;
  
mysql> set sql_log_bin = 0;
  
mysql> source /root/tutor.sql;   //导入tutor数据表
  
mysql> set sql_log_bin = 1;
  
mysql> select * from tutor;
  
+------+---------------+--------+------+
  
| TID| Tname         | Gender | Age|
  
+------+---------------+--------+------+
  
|    1 | ZhengYansheng | M      |   25 |
  
|    2 | LiJian      | M      |   26 |
  
|    3 | OuYangyu      | M      |   27 |
  
|    4 | LuoChenghui   | M      |   25 |
  
|    5 | LiuYunbo      | M      |   25 |
  
|    6 | FuJian      | M      |   24 |
  
|    7 | LiMenglu      | F      |   23 |
  
|    8 | BaoYintu      | M      |   28 |
  
|    9 | WangYana      | F      |   25 |
  
+------+---------------+--------+------+
  
9 rows in set (0.00 sec)
  

  
2、innobackupex对DB进行完全备份
  
# innobackupex --user=root --password=123456 /backup/
  
如果执行正确,其最后输出的几行信息通常如下:
  
innobackupex: Backup created in directory '/backup/2015-03-18_21-14-49'
  
innobackupex: MySQL binlog position: filename 'mysql-bin.000003', position 332
  
150318 21:14:54innobackupex: Connection to database server closed
  
150318 21:14:54innobackupex: completed OK!
  

  
3、仅查看备份目录
  
# ls /backup/
  
2015-03-18_21-14-49
  

  
4、操作数据库并插入数据
  
# mysql jiaowu;
  
mysql> insert into tutor(TID) values(11);
  
mysql> insert into tutor(TID) values(12);
  
mysql> insert into tutor(TID) values(13);
  
mysql> select * from tutor;
  
+------+---------------+--------+------+
  
| TID| Tname         | Gender | Age|
  
+------+---------------+--------+------+
  
|    1 | ZhengYansheng | M      |   25 |
  
|    2 | LiJian      | M      |   26 |
  
|    3 | OuYangyu      | M      |   27 |
  
|    4 | LuoChenghui   | M      |   25 |
  
|    5 | LiuYunbo      | M      |   25 |
  
|    6 | FuJian      | M      |   24 |
  
|    7 | LiMenglu      | F      |   23 |
  
|    8 | BaoYintu      | M      |   28 |
  
|    9 | WangYana      | F      |   25 |
  
|   11 | NULL          | NULL   | NULL |
  
|   12 | NULL          | NULL   | NULL |
  
|   13 | NULL          | NULL   | NULL |
  
+------+---------------+--------+------+
  
12 rows in set (0.00 sec)
  

  
5、执行第一次增量备份并查看备份目录
  
# innobackupex --user=root --password=123456 --incremental /backup/ --incremental-basedir=/backup/2015-03-18_21-14-49/
  
# ls /backup/
  
2015-03-18_21-14-492015-03-18_21-18-45
  

  
6、再次操作数据库并插入多条数据
  
# mysql jiaowu;
  
mysql> insert into tutor(TID) values(21);
  
mysql> insert into tutor(TID) values(22);
  
mysql> insert into tutor(TID) values(23);
  
mysql> select * from tutor;
  
+------+---------------+--------+------+
  
| TID| Tname         | Gender | Age|
  
+------+---------------+--------+------+
  
|    1 | ZhengYansheng | M      |   25 |
  
|    2 | LiJian      | M      |   26 |
  
|    3 | OuYangyu      | M      |   27 |
  
|    4 | LuoChenghui   | M      |   25 |
  
|    5 | LiuYunbo      | M      |   25 |
  
|    6 | FuJian      | M      |   24 |
  
|    7 | LiMenglu      | F      |   23 |
  
|    8 | BaoYintu      | M      |   28 |
  
|    9 | WangYana      | F      |   25 |
  
|   11 | NULL          | NULL   | NULL |
  
|   12 | NULL          | NULL   | NULL |
  
|   13 | NULL          | NULL   | NULL |
  
|   21 | NULL          | NULL   | NULL |
  
|   22 | NULL          | NULL   | NULL |
  
|   23 | NULL          | NULL   | NULL |
  
+------+---------------+--------+------+
  
15 rows in set (0.00 sec)
  

  
7、执行第二次增量备份并查看备份文件
  
# innobackupex --user=root --password=123456 --incremental /backup/ --incremental-basedir=/backup/2015-03-18_21-18-45/
  
# ls /backup/
  
2015-03-18_21-14-492015-03-18_21-18-452015-03-18_21-22-31
  

  
解释:
  
2015-03-18_21-14-49:为innobackupex的完全备份目录
  
2015-03-18_21-18-45:为innobackupex的第一次增量备份目录
  
2015-03-18_21-22-31:为innobackupex的第二次增量备份目录
  

  
8、开始准备innobackupex
  
首先执行完全备份redo-only
  
# innobackupex --user=root --password=123456 --apply-log --redo-only /backup/2015-03-18_21-14-49/
  
执行第一个增量备份redo-only
  
# innobackupex --user=root --password=123456 --apply-log --redo-only /backup/2015-03-18_21-14-49/ --incremental-dir=/backup/2015-03-18_21-18-45/
  
执行第二个增量备份redo-only
  
# innobackupex --user=root --password=123456 --apply-log --redo-only /backup/2015-03-18_21-14-49/ --incremental-dir=/backup/2015-03-18_21-22-31/
  

  
#####模拟数据库故障#####
  
9、这里还是采用老方法直接删除所有的数据文件
  
# service mysqld stop
  
# rm -rf /mydata/data/*
  

  
10、从完全备份中恢复数据库
  
# innobackupex --user=root --password=123456 --copy-back /backup/2015-03-18_21-14-49/
  

  
11、修改数据目录权限
  
# chown -R mysql.mysql /mydata/data/
  

  
12、启动mysqld服务
  
# service mysqld start
  

  
13、登陆mysql查看是否是否一致
  
# mysql -e 'use jiaowu;select * from tutor;'
  
+------+---------------+--------+------+
  
| TID| Tname         | Gender | Age|
  
+------+---------------+--------+------+
  
|    1 | ZhengYansheng | M      |   25 |
  
|    2 | LiJian      | M      |   26 |
  
|    3 | OuYangyu      | M      |   27 |
  
|    4 | LuoChenghui   | M      |   25 |
  
|    5 | LiuYunbo      | M      |   25 |
  
|    6 | FuJian      | M      |   24 |
  
|    7 | LiMenglu      | F      |   23 |
  
|    8 | BaoYintu      | M      |   28 |
  
|    9 | WangYana      | F      |   25 |
  
|   11 | NULL          | NULL   | NULL |
  
|   12 | NULL          | NULL   | NULL |
  
|   13 | NULL          | NULL   | NULL |
  
|   21 | NULL          | NULL   | NULL |
  
|   22 | NULL          | NULL   | NULL |
  
|   23 | NULL          | NULL   | NULL |
  
+------+---------------+--------+------+
  

  
#两次增量添加的数据也已经成功添加到数据库当中。恢复成功


页: [1]
查看完整版本: MySQL[3] 在线热备工具Xtrabackup