当前位置: 首页 > news >正文

千云物流 -低代码平台MySQL备份数据

windows备份

在这里插入图片描述

全量备份

创建备份目录

需要在安装数据库的服务器上创建备份目录,所有如果要做备份至少需要两倍的硬盘空间,

mkdir D:\mysql_backup\full_backup

准备备份脚本

创建一个windows批处理文件(例如 full_backup.bat),用来执行全量备份并使用 robocopy 将备份文件传输到远程服务器。

@echo off:: 配置部分
set MYSQL_USER=root
set MYSQL_PASSWORD=yourpassword
set MYSQL_HOST=localhost
set BACKUP_DIR=C:\mysql_backups\full
set REMOTE_DIR=\\remote-server\backup\full
set TIMESTAMP=%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%
set BACKUP_FILE=%BACKUP_DIR%\full_backup_%TIMESTAMP%.sql:: 创建本地备份目录
if not exist %BACKUP_DIR% (mkdir %BACKUP_DIR%
):: 执行全量备份
mysqlpump -u%MYSQL_USER% -p%MYSQL_PASSWORD% -h%MYSQL_HOST% --result-file=%BACKUP_FILE%:: 使用robocopy传输备份文件到远程服务器
robocopy %BACKUP_DIR% %REMOTE_DIR% %BACKUP_FILE%:: 输出备份完成信息
if %errorlevel% leq 1 (echo Full backup completed successfully and copied to remote server.
) else (echo Error during backup or file transfer.
)
pause

脚本说明:

  • BACKUP_DIR:本地存储备份文件的目录。
  • REMOTE_DIR:远程服务器的备份目录路径。
  • TIMESTAMP:生成带时间戳的备份文件名,确保每次备份文件名唯一。
  • mysqlpump:执行全量备份命令。
  • robocopy:复制备份文件到远程服务器,robocopy 会自动处理网络传输中的一些问题。

执行全量备份

编写批处理脚本

自动化备份

你可以通过Windows任务计划程序将这些脚本设置为定期执行,每两天进行全量备份,每天执行增量备份

  1. 打开“任务计划程序”。
  2. 创建基本任务,并设置触发器(如每周或每天)。
  3. 在操作中,选择“启动程序”,然后浏览并选择对应的批处理文件(full_backup.bat 或 incremental_backup.bat)。
  4. 保存任务。

增量备份

启用二进制日志

这里需要启用二进制,配置文件中的配置mysql的配置my.ini

[mysqld]
log-bin=mysql-bin
binlog-format=ROW
server-id=1

编写增量备份脚本

MySQL的增量备份一般是通过备份二进制日志(Binary Logs)来实现的。以下是一个基于 mysqlpump 备份二进制日志的增量备份脚本示例:

@echo off:: 配置部分
set MYSQL_USER=root
set MYSQL_PASSWORD=yourpassword
set MYSQL_HOST=localhost
set BINLOG_DIR=C:\mysql_binlogs
set BACKUP_DIR=C:\mysql_backups\incremental
set REMOTE_DIR=\\remote-server\backup\incremental
set TIMESTAMP=%date:~10,4%%date:~4,2%%date:~7,2%_%time:~0,2%%time:~3,2%%time:~6,2%:: 创建本地备份目录
if not exist %BACKUP_DIR% (mkdir %BACKUP_DIR%
):: 刷新二进制日志
mysqladmin -u%MYSQL_USER% -p%MYSQL_PASSWORD% -h%MYSQL_HOST% flush-logs:: 复制新的二进制日志到备份目录
robocopy %BINLOG_DIR% %BACKUP_DIR% mysql-bin.*:: 使用robocopy传输增量备份文件到远程服务器
robocopy %BACKUP_DIR% %REMOTE_DIR%:: 输出备份完成信息
if %errorlevel% leq 1 (echo Incremental backup completed successfully and copied to remote server.
) else (echo Error during incremental backup or file transfer.
)
pause
  • BINLOG_DIR:二进制日志文件的存储目录。
  • mysqladmin flush-logs:刷新二进制日志,生成新的日志文件,准备备份旧的日志文件。
  • robocopy:将本地备份文件传输到远程服务器,并处理传输中的问题。

传输二进制日志文件

@echo off
set BINLOG_DIR=C:\mysql\data
set REMOTE_SHARE=\\192.168.1.100\BackupDirectory\incremental_backupecho Transferring binary logs to remote share...
robocopy %BINLOG_DIR% %REMOTE_SHARE% mysql-bin.*if %errorlevel% geq 8 (echo Failed to transfer binary logs to the remote share.
) else (echo Binary logs successfully transferred to the remote share.
)echo Incremental backup completed.

备份计划

恢复备份

恢复全量备份

mysql -u root -p < /path/to/backup/directory/full_backup_YYYYMMDD.sql

应用增量备份

mysqlbinlog /path/to/backup/directory/incremental_backup/mysql-bin.000001 | mysql -u root -p
mysqlbinlog /path/to/backup/directory/incremental_backup/mysql-bin.000002 | mysql -u root -p

linux备份

http://www.lryc.cn/news/433826.html

相关文章:

  • MySQL:进阶巩固-视图
  • 分布式事务Seata原理及其项目使用
  • JS_分支结构
  • 决策树(Decison Tree)—有监督学习方法、概率模型、生成模型、非线性模型、非参数化模型、批量学习
  • java 自定义注解校验实体类属性
  • 光伏并网发电系统中电能质量监测与优化技术探讨
  • 网页解析的那些事
  • 从文字到世界:2024外语阅读大赛报名开启,赛氪网全程护航
  • 微信小程序知识点(二)
  • Springcould -第一个Eureka应用 --- day02
  • RedissonClient 分布式队列工具类
  • protobuf使用
  • 【微处理器系统原理与应用设计第十二讲】通用定时器设计二之PWM波实现呼吸灯的功能
  • 2025秋招NLP算法面试真题(十九)-大模型分布式训练题目
  • 线程池的应用
  • OPenCV结构分析与形状描述符(5)查找图像中的连通组件的函数connectedComponents()的使用
  • HCIA--实验十三:VLAN间通信子接口实验/双单臂路由实验
  • AIStarter市场指南:项目分享与框架优化【AI绘画、写作、对话、办公、设计】
  • 机器学习第8章 集成学习
  • 京东鸿蒙上线前瞻——使用 Taro 打造高性能原生应用
  • day2 QT
  • JS_函数声明
  • 快速排序+归并排序代码回顾
  • DBC中一种特殊的特殊的Signal—多路复用Signal
  • 前端基础面试题·第三篇——JavaScript(其三)
  • MacBook真的不能打游戏吗?Mac打游戏会损坏电脑吗?苹果电脑怎么玩游戏
  • 安卓逆向(之)真机root(红米手机)
  • 关于转行网络安全的一些建议
  • (六十五)第 10 章 内部排序(希尔排序)
  • 802.11 中 scrambler的matlab仿真