前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MYSQL Xtrabackup 做备份的时候你忘了点什么吗?

MYSQL Xtrabackup 做备份的时候你忘了点什么吗?

作者头像
AustinDatabases
发布2019-08-27 14:36:36
9200
发布2019-08-27 14:36:36
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

众所周知Xtrabackup 是mysql 中重要的备份工具,而数据库的备份中,尤其大内存的 MYSQL 备份中,都有一个问题的存在就是 innodb_buffer_pool 的存在。备份后的MYSQL 在恢复后,一般innodb_buffer_pool 的数据都不会再恢复的数据库上出现,越大的内存和繁忙的MYSQL 在数据恢复后,就会有一个缓冲期,需要预热一段时间。一般来说我们都是希望备份的数据恢复后能带有内存中的数据。其实MYSQL 本身是有这个设置的,就是在关机和开机的时候,将 innodb buffer pool 写入文件,在开始的时候读取这些文件,装载到内存中。

但到备份就不大现实了,终不能为了这个功能,把数据库关机,在备份吧。

自从 XTRABACKUP 2.4.13后,xtrabackup 软件就可以支持将innodb_buffer_pool 的数据备份到备份中并且在恢复的时候装入到内存。

这项功能在对大内存和急需恢复后使用的MYSQL是十分有意义的,试想你恢复完一台128G的MYSQL 后,查询并没有预热,在此期间的查询会大量开始走磁盘,这当然不是一个专业的做法,并且在这段时间很可能出现一些你不想遇到的问题。

所以 XTRABACKUP 提供了再备份的时候,直接将innodb_buffer_pool 进行一个备份,并且在恢复的时候,将其恢复到MYSQL中,等恢复的MYSQL 启动后,你的innodb_buffer_pool 会和源机具有一样的 innodb_buffer_pool 来应对马上到来的大量查询。

我们使用下面的命令就可以进行相关的备份

xtrabackup --defaults-file=/etc/my.cnf --user=root --password='password' --socket=/data/mysql/mysql.sock --backup --dump-innodb-buffer-pool --target-dir=/data/backup/2019-08-31

添加了 --dump-innodb-buffer-pool 但有些同学却抱怨这是一个垃圾的无效的命令,使用这条命令恢复后的MYSQL 并没有和预想的一样,有了 innodb_buffer_pool 的数据。

到底是是命令有问题,还是.......

其实这个功能是MYSQL 5.7 后的本身提供的功能,XTRABACKUP 仅仅是将这个功能在XTRABACKUP 进行了体现而已。

到底是什么原因造成的这里卖个关子

我上面的备份怎么证明我备份了innodb_buffer_pool

SHOW STATUS LIKE 'Innodb_buffer_pool_dump_status';

通过上面的命令就可以展现你最后一次 dump buffer pool 的时间

上面可以证明我的确在我早上 6:59的时候,在备份的期间,将buffer_pool dump下来了。

所以可以证明那个参数是有效的,也可以通过查看你恢复后的数据库的bufferpooldata 来正你恢复了数据

OK 到这里为止,可以证明这个参数是有效的,到底什么原因会导致有些同学的命令无效。

你可以尝试打开下面的参数

SET GLOBAL innodb_buffer_pool_dump_now=ON;

默认此参数是关闭的状态

代码语言:javascript
复制
同时也可以设置到备份的时候要download 多少的 buffer_pool

所以如果你备份的时候不能进行innodb_buffer_pool download 的原因主要是你的那个在线download buffer_pool 的参数是否是打开的状态。

其实有些时候,某些事情的操作看似不成功莫名其妙,其实如果往深挖,往下看,大多是能找到问题的所在的。

代码语言:javascript
复制
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档