全网独一份之MySQL物理备份加binlog增备恢复数据

提示:此处不展开具体的应用场景描述。直接上干货,如想详细了解恢复过程可以关注下本博主进行私信,热心答疑解惑。

1、下载要恢复的物理备份库文件+表结构文件+xtrabackup.tar.gz文件到测试服务器
2、解压pigz 压缩文件和.qp后缀压缩文件

tar xf $file.tar.gz; cd /data1/export; time for f in `find ./ -iname "*\.qp"`; do qpress -dT2 $f $(dirname $f) && rm -f $f; done
  • 1.

3、导入要恢复的表结构文件到测试库,然后拼接生成禁用表空间和导入表空间sql
4、测试库禁用要恢复的库表表空间
5、apply-log export 导出要恢复的库表的表空间文件,授权mysql权限
6、利用备份文件恢复出来的表空间导入到测试库中
7、获取到全备份文件xtrabackup_binlog_info中的binlog文件名称和pos位置点
举例:

[root@testdb ~]# cat /data2/export/xtrabackup_binlog_info
mysql-bin.010248 50698605
  • 1.
  • 2.

8、下载binlog文件到测试服务器的mysql的数据data目录下 /data1/3307/mysql/data/
9、rename mysql-bin 前缀文件名称为relay-bin 前缀文件
举例:

cd /data1/3307/mysql/data
rename mysql-bin relay-bin mysql-bin.*
ls -l relay-bin.0* |awk '{print "./" $NF}' >> db-relay-bin.index;cat db-relay-bin.index
chown -R mysql.mysql *
  • 1.
  • 2.
  • 3.
  • 4.

10、确定要恢复备份数据到 哪个binlog文件和对应的pos位置点
举例:

##提取binlog文件 relay-bin.010272 到零点的pos位置点548202203

mysqlbinlog --base64-output=decode-rows -v -v --start-datetime='2022-03-06 23:59:59' --stop-datetime='2022-03-07 00:00:02' relay-bin.010272 > 03-07.sql
  • 1.

11、测试服务器 模拟从库复制线程
举例:

##在恢复的测试库上模拟从库sql_thread 复制线程 应用relay-log文件到测试从库
##MASTER_HOST的IP地址随便指定就行
##RELAY_LOG_FILE和RELAY_LOG_POS 填写 /data1/export/xtrabackup_binlog_info 文件中对应的值就行

CHANGE MASTER TO MASTER_HOST="192.168.1.10",RELAY_LOG_FILE='relay-bin.010248', RELAY_LOG_POS=50698605;
  • 1.

12、应用relay-log 文件和位置点到指定要恢复的binlog文件和pos位置点
举例:

##开启sql_thread复制线程 应用relay-log 文件和位置点到 relay-bin.010272 548202203

START SLAVE SQL_THREAD UNTIL RELAY_LOG_FILE = 'relay-bin.010272', RELAY_LOG_POS =548202203;
  • 1.

13、到此处数据恢复完成。

posted @   勤奋的蓝猫  阅读(3)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤
点击右上角即可分享
微信分享提示