博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
my13_mysql xtrabackup备份的时间点
阅读量:7142 次
发布时间:2019-06-29

本文共 2286 字,大约阅读时间需要 7 分钟。

备份原理

xtrabackup的备份时间点是备份结束时刻,记录在xtrabackup_binlog_info 文件中;如果后续需要通过binlog追加操作,则该时间点是起点。

备份开始后,xtrabckup就开始复制数据库中的文件,不锁表,同时监控日志变化;

在复制完所有的database后,立即将此时数据库master status的位置写入xtrabackup_binlog_info 文件,所以从时间上来看,xtrabackup_binlog_info文件在数据库目录文件的下面,在其他文件的上面。

如果这个时间点有未提交的事务,则最终会回退,此操作为crash-recovery(崩溃恢复)--应用所有已提交和未提交的事务,并回滚未提交的事务。

 

备份前时刻

个人测试库环境,除非手工执行SQL语句,否则不会有其他事务产生,备份前

mysql> show master status\G;*************************** 1. row ***************************             File: mysql-bin.000038         Position: 19842     Binlog_Do_DB:  Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)ERROR: No query specified
# rpm -qa | grep xtrabackuppercona-xtrabackup-24-2.4.12-1.el7.x86_64

 

开始备份

innobackupex  --defaults-file=/etc/my_bakdb.cnf --no-timestamp --user automng --host=192.168.56.82 --port=3319 --password ***** /data0/backup/dbbak_20180813

刚开始备份时备份目录的文件,此时并没有xtrabackup_binlog_info 文件

[root@red4 dbbak_20180813]# ls -ltrh

total 2.0G
-rw-r-----. 1 root root 2.0K Aug 13 16:40 xtrabackup_logfile
-rw-r-----. 1 root root 1.0G Aug 13 16:40 ibdata1

 

手工执行DML语句,让数据库产生事务变化

mysql> delete from sbtest9 limit 10;Query OK, 10 rows affected (0.63 sec)

备份完成后,文件目录中,有xtrabackup_binlog_info 文件但要比相应的数据库的备份目录时间上靠后

[root@red4 dbbak_20180813]# ls -ltrhtotal 1.1G-rw-r-----. 1 root root 1.0G Aug 13 16:40 ibdata1drwxr-x---. 2 root root 4.0K Aug 13 16:42 mysqldrwxr-x---. 2 root root 8.0K Aug 13 16:42 sysdrwxr-x---. 2 root root 4.0K Aug 13 16:42 txdbdrwxr-x---. 2 root root 8.0K Aug 13 16:42 performance_schema-rw-r-----. 1 root root   23 Aug 13 16:42 xtrabackup_binlog_info-rw-r-----. 1 root root  30K Aug 13 16:42 xtrabackup_logfile-rw-r-----. 1 root root  119 Aug 13 16:42 xtrabackup_checkpoints-rw-r-----. 1 root root 3.5K Aug 13 16:42 ib_buffer_pool-rw-r-----. 1 root root  493 Aug 13 16:42 backup-my.cnf-rw-r-----. 1 root root  588 Aug 13 16:42 xtrabackup_info

可以看到xtrabackup_binlog_info文件中记录并不是刚开始的19842这个位置,而是事务变化后的24218位置,

# cat xtrabackup_binlog_info mysql-bin.000038    24218
mysql> show master status\G;*************************** 1. row ***************************             File: mysql-bin.000038         Position: 24218     Binlog_Do_DB:  Binlog_Ignore_DB: Executed_Gtid_Set: 1 row in set (0.00 sec)ERROR: No query specified

 

转载于:https://www.cnblogs.com/perfei/p/9469282.html

你可能感兴趣的文章
Log4j日志输出详解
查看>>
@property浅析
查看>>
网络相关命令
查看>>
Android平台框架学习
查看>>
netty的零拷贝机制
查看>>
AOP 面向切面 代理@Aspect
查看>>
【更新】浏览器控件JxBrowser V6.14.2发布 | 修复多个重大bug
查看>>
仅仅一天,5大巨头公司市值增近2000亿美元!
查看>>
Ubuntu 12.04.1 下搭建 Python3.4.2 + Qt5.3.2 + PyQt5.11.3 + Eric6.0 开发平台
查看>>
个人--一辈子受用的十二条人生经验
查看>>
AMD规范
查看>>
跨域登陆zabbix系统
查看>>
MySQL5.7 添加用户、删除用户与授权
查看>>
GO 安装包
查看>>
垃圾收集器与内存分配策略
查看>>
在CentOS 7 mini版中使用ifconfig
查看>>
未来Linux Kernel 将不支持可变长数组VLA
查看>>
关于 try - catch - finally
查看>>
Linux NFS服务器的安装与配置
查看>>
NFS服务搭建与配置(二)exportfs命令,FTP服务搭建
查看>>