设为首页 加入收藏

TOP

Xtrabackup实现MySQL备份(二)
2018-11-20 22:09:27 】 浏览:212
Tags:Xtrabackup 实现 MySQL 备份
个BACKUP-DIR目录来存储备份数据。
准备(prepare)一个完全备份
一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。


[root@zha 2018-05-04_17-28-25]# innobackupex --apply-log /mysql_backup/2018-05-04_17-28-25/
180504 17:38:38 completed OK!
在实现“准备”的过程中,innobackupex通常还可以使用–use-memory选项来指定其可以使用的内存的大小,默认通常为100M。如果有足够的内存可用,可以多划分一些内存给prepare的过程,以提高其完成速度。


#复制目录到/zha下
[root@zha ~]# cp -r /mysql_backup/2018-05-04_17-28-25/ /zha (以防玩脱)



#模拟数据库故障(关闭数据库并删除数据文件)
[root@zha ~]# /etc/init.d/mysqld stop
Shutting down MySQL. [ OK ]
[root@zha ~]# cd /usr/local/mysql/data/
[root@zha data]# ls
ibdata1 mysql-bin.000001 performance_schema
ib_logfile0 mysql-bin.000002 test
ib_logfile1 mysql-bin.000003 zha
mysql mysql-bin.index zha.err
[root@zha data]# rm -rf *
[root@zha data]# ls (数据已经没有了)



#恢复
[root@zha data]# innobackupex --copy-back /mysql_backup/2018-05-04_17-28-25/
180504 18:04:14 completed OK!
如果报错Error: datadir must be specified. 意思是(在默认配置文件 /etc/my.cnf 中,没有找到 datadir 配置项)


vim /etc/my.cnf # 加入 datadir 配置项即可
datadir = /usr/local/mysql/data


#再次查看/data目录,数据已经恢复
[root@zha data]# ls
ibdata1 performance_schema
ib_logfile0 xtrabackup_info
ib_logfile1 xtrabackup_master_key_id
ibtmp1 zha
mysql



#修改权限启动mysql
[root@zha ~]# chown -R mysql:mysql /usr/local/mysql/data/
[root@zha ~]# /etc/init.d/mysqld start
Starting MySQL.. [ OK ]


mysql> create database test character set utf8;
Query OK, 1 row affected (0.00 sec)
mysql> use test;
Database changed
mysql> create table test (id int(10) not null,name varchhar(20));
Query OK, 0 rows affected (0.03 sec)


mysql> insert into test values(1,'chenjiaxin');
Query OK, 1 row affected (0.01 sec)
mysql> insert into test values(1,'陈嘉欣');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+----+------------+
| id | name |
+----+------------+
| 1 | chenjiaxin |
| 1 | 陈嘉欣 |
+----+------------+
2 rows in set (0.00 sec)
mysql> exit;
Bye



#第一次完全备份
[root@zha ~]# innobackupex --user=root --database=test --no-timestamp /mysql_backup/
180504 18:35:39 completed OK!



#第二次添加数据
mysql> use test;
Database changed
mysql> insert into test values(2,'test');
Query OK, 1 row affected (0.04 sec)


mysql> exit;
Bye



#第一次增量备份
[root@zha mysql_backup]# innobackupex --user=root --database=test --no-timestamp --incremental-basedir=/mysql_backup/ --incremental /test2
180504 18:48:24 completed OK!



# --incremental-basedir=/data/backup_db/test_incre 第一次增备指定全备路径
# --incremental 参数说明这是一次增备,并指定增备路径


[root@zha /]# du -sh /mysql_backup/
69M /mysql_backup/
[root@zha /]# du -sh /test2/
1.5M /test2/
至此增量备份已经完成!


注意: 第二次增备是在第一次增备的基础上,所以 --incremental-basedir 指定的是第一次增备目录,最后指定的第二次增备目录


[root@zha /]# cd /test2/
[root@zha test2]# cat xtrabackup_checkpoints
backup_type = incremental # backup_type 提示:这是一次增备
from_lsn = 1599830 #from_lsn 提示:从上次结束开始1599380
to_lsn = 1600863 #from_lsn 提示:到1600863结束
last_lsn = 1600863
compact = 0
recover_binlog_info = 0


首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Ubuntu 18.04下部署MongoDB复制集.. 下一篇Atlas实现MySQL主从分离

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目