当前位置: 首页 > 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.mrgr.cn/news/20345.html

相关文章:

  • 上门家政系统小程序开发产品类目分析
  • 嵌入式软件--代码复习
  • python读取excel数据
  • Linux操作系统下的一些常用命令分享(ubuntu16.04)
  • 来聊聊C++中的vector
  • 【Pandas】数据分析预备
  • 怎么将webp格式转换成jpg?这几种图片转换方法超级好用!
  • 华为OD机试真题-导师请吃火锅-2024年OD统一考试(E卷)
  • 如何在算家云搭建ChatGLM3(智能对话)
  • 若依库存管理 ruoyi-wms V2.0发布:升级到jdk17和vue3,支持一物一码
  • 一文带你读懂场外个股期权!什么是场外个股期权?
  • linux splice pip CVE-2022-0847
  • 佳明运动相机SD存储卡被格式化?教你有效恢复数据的方法
  • 2024年【危险化学品生产单位主要负责人】考试及危险化学品生产单位主要负责人证考试
  • List
  • 人工智能帮你支付孩子大学学费的5种方法
  • 2517.礼盒的最大甜蜜度
  • 快速上手yolov8项目
  • 基于SpringBoot的高校BBS在线互动论坛系统
  • ELK在Linux上部署教程