mydumper
https://www.518cn.com 发布时间:2025-03-18 22:19 作者:网络
摘要:mydumper 是一款社区开源的逻辑备份工具。 该工具主要由 C 语言编写,目前由 MySQL 、Facebook 等公司人员开发维护。 https://blog.csdn.net/qq_43692950/article/details/136711943 一、安装mydumper 备份没问
mydumper 是一款社区开源的逻辑备份工具。
该工具主要由 C 语言编写,目前由 MySQL 、Facebook 等公司人员开发维护。
https://blog.csdn.net/qq_43692950/article/details/136711943
一、安装mydumper
备份没问题,还挺稳妥的,就是费时间;测了一下,10个G的数据备份大概10分钟,还原大概30分钟
直接安装rpm包即可;如果后续不能用了,再百度吧
下载地址:https://github.com/mydumper/mydumper/releases/tag/
包名:mydumper-0.14.3-1.el7.x86_64.rpm
安装:`rpm -ivh mydumper-0.14.3-1.el7.x86_64.rpm`
Ubuntu22.04安装:
先装依赖:
下载地址:https://mirrors.aliyun.com/ubuntu/pool/main/g/gcc-12/
包名:libatomic1_12.1.0-2ubuntu1~22.04_amd64.deb;如果系统更新过就安装:libatomic1_12.3.0-1ubuntu1~22.04_amd64.deb
再装软件:
下载地址:https://github.com/mydumper/mydumper/releases/tag/
包名:mydumper_0.14.5-2.jammy_amd64.deb
// 先装依赖
`dpkg -i libatomic1_12.1.0-2ubuntu1~22.04_amd64.deb`
// 再装软件
`dpkg -i mydumper_0.14.5-2.jammy_amd64.deb`
// 查看版本
mydumper -V
二、备份脚本
Tip:建议把【mydumper】安装到目标服务器,非常建议
不需要提前创建数据库
2.1、指定数据表备份
vim mns.sh
#!/bin/bash
echo `date " %Y-%m-%d %H:%M:%S"`"[copydate开始]"
## 备份源库数据
copydata() {
mydumper -u root -p '123456' -h 192.168.0.172 -P 3306 --regex '^(mns_db_back.security_role$|mns_db_back.system_app_page$)' -C -c -o /mnt/backup/data -v 2 --logfile /mnt/backup/mydumper.log
}
# 还原到目标库
restore() {
myloader -u root -p '123456' -h 127.0.0.1 -P 3306 --regex '^(mns_db_back.security_role$|mns_db_back.system_app_page$)' -C -d /mnt/backup/data -v 2 --logfile /mnt/backup/myloader.log
}
# 由于我的mydumper安装在目标库上,所有目标库IP 使用 127.0.0.1
copydata
echo `date " %Y-%m-%d %H:%M:%S"`"[copydata完成]"
restore
echo `date " %Y-%m-%d %H:%M:%S"`"[restore完成]"
2.1、全量备份
全量备份/还原脚本#!/bin/bash
echo `date " %Y-%m-%d %H:%M:%S"`"[copydate开始]"
## 备份源库数据
copydata() {
mydumper -u root -p '123456' -h 192.168.0.172 -P 3306 -B mns_db_back -C -c -o /mnt/backup/data -v 2 --logfile /mnt/backup/mydumper.log
}
# 还原到目标库
restore() {
myloader -u root -p '123456' -h 127.0.0.1 -P 3306 -B mns_db_back -C -d /mnt/backup/data -v 2 --logfile /mnt/backup/myloader.log
}
# 由于我的mydumper安装在目标库上,所有目标库IP 使用 127.0.0.1
copydata
echo `date " %Y-%m-%d %H:%M:%S"`"[copydata完成]"
restore
echo `date " %Y-%m-%d %H:%M:%S"`"[restore完成]"
三、备份实测
每天凌晨5点,自动全量备份一次,拷贝到备份目录,带日期// 第一步,先编写全量备份脚本,备份完成的data需要加日期,方便移动到history目录
vim /dump/dump.sh
#!/bin/bash
echo `date " %Y-%m-%d %H:%M:%S"`"[copydate开始]"
## 备份源库数据
copydata() {
mydumper -u root -p 'Iyungu@2023' -h 192.168.0.186 -P 3306 -B mns_db -C -c -o /dump/data_$(date %Y%m%d) -v 2 --logfile /dump/mydumper.log
}
copydata
echo `date " %Y-%m-%d %H:%M:%S"`"[copydata完成]"
// 因为下次备份会覆盖【/dump/data】的内容,所以备份成功之后需要把【/dump/data】的文件迁移到别的目录,以便下次备份
echo `date " %Y-%m-%d %H:%M:%S"`"[mv开始]"
mv /dump/data_$(date %Y%m%d) /dump/data_history/
echo `date " %Y-%m-%d %H:%M:%S"`"[mv完成]"
// 第二步,添加定时任务
vim /etc/crontab
// 每天凌晨5点执行一次
00 05 * * * root /bin/bash /dump/dump.sh > /dump/logs/mydump_$(date %Y%m%d).log 2>&1
// 重启定时任务
service crond restart
这里有个小小的逻辑问题,就比如说,今天是20240402,备份的时候输出的时间就是20240402,但mydumper备份的数据其实是【20240401-20240402】4月1号5点-4月2号5点之间的数据,如果要恢复4月1号的数据,就需要用4月2号的备份还原,自己绕一下
相关文章
- 优化GreatSQL日志文件空间占用 GreatSQL对于日志文件磁盘空间占用,做了一些优化,对于binlog、...03-18
- "数据约束条件" date: 2022-11-24T21:24:31 08:00 draft: false MySQL字段约束条件 无符号, 零填充...03-18
【GreatSQL优化器-16】INDEX_SKIP_SCAN
【GreatSQL优化器-16】INDEX_SKIP_SCAN 一、INDEX_SKIP_SCAN介绍 GreatSQL 优化器的索引跳跃扫描(Index Ski...03-18- MySQL 是一个非常流行的开源关系数据库管理系统,在各种应用场景中都得到了广泛的应用。随...03-18
- 🤖 DB-GPT 是一个开源的 AI 原生数据应用程序开发框架,具有 AWEL(代理工作流表达式语...03-18
GreatSQL 8.0.32-27 GA (2025-3-10)
GreatSQL 8.0.32-27 GA (2025-3-10) 版本信息 发布时间:2025年3月10日 版本号:8.0.32-27, Revision aa66a38591...03-18- 6. MySQL 索引的数据结构(详细说明) @目录6. MySQL 索引的数据结构(详细说明)1. 为什么使用索引2...03-18
- @Override @Transactional(rollbackFor = Exception.class) public void batchInsertDeviceData(IotMsgNotifyData iotMsgNotifyDa...03-18
- 个人Qt项目总结——数据库查询断言问题 问题: 当我使用MySQL数据库的查询操作时, 如果查询...03-18
- MySQL 是一种广泛使用的关系数据库管理系统,MySQL 8 是其最新的主要版本,结合了出色的性能和...03-18
最新评论