跳到主要内容

MySQL 定时备份方案(支持多种存储方式)

概述

本方案详细介绍了如何为 MySQL 数据库实施定时备份策略,支持多种存储方式包括本地存储、NFS 网络文件系统、远程共享目录、MinIO 对象存储以及其他云存储服务。通过该方案,可以确保 MySQL 数据在发生故障时能够快速恢复,并根据实际需求选择最适合的存储方式,实现数据的高可用性保护和灵活管理。

目录

  1. 方案优势
  2. 架构设计
  3. 前置条件
  4. 部署步骤
  5. 验证方案
  6. 恢复方案
  7. 最佳实践
  8. 监控与告警
  9. 故障排除

1. 方案优势

本 MySQL 定时备份方案支持多种存储方式,每种方式都有其独特优势:

本地存储

  1. 高性能: 直接写入本地磁盘,速度快,延迟低
  2. 简单易用: 无需额外配置,直接可用
  3. 成本低: 利用现有服务器磁盘空间

NFS 网络文件系统

  1. 集中管理: 备份文件集中存储在 NFS 服务器上
  2. 资源共享: 多台 MySQL 服务器可共享同一 NFS 存储
  3. 易于扩展: 可动态扩展 NFS 存储容量

远程共享目录

  1. 灵活性: 支持多种协议(SMB/CIFS、FTP等)
  2. 跨平台: 可与不同操作系统环境集成
  3. 访问控制: 可设置细粒度的访问权限

MinIO 对象存储

  1. 高可用性: MinIO 集群提供企业级的高可用性和数据冗余
  2. 扩展性: 可以轻松水平扩展存储容量和性能
  3. 成本效益: 使用标准硬件构建分布式存储,比传统磁带或专用备份设备更经济
  4. S3 兼容性: 完全兼容 Amazon S3 API,可与广泛的工具和应用集成
  5. 统一存储: 可以为多个应用提供对象存储服务
  6. 数据保护: 提供版本控制、生命周期管理等高级数据保护功能
  7. 远程备份: 备份数据存储在远程 MinIO 集群中,避免本地灾难影响备份数据

其他云存储

  1. 地理分布: 可将备份存储在不同地理位置的数据中心
  2. 专业服务: 享受云服务商提供的专业运维支持
  3. 按需付费: 根据实际使用量付费,成本可控

2. 架构设计

本方案支持多种存储方式,以下为不同存储方式的架构图:

MinIO 对象存储架构

NFS 网络文件系统架构

本地存储架构

远程共享目录架构

3. 前置条件

  1. 已部署 MySQL 数据库(参考 [Oracle Linux 安装Mysql](Oracle Linux 安装Mysql.md) 或 [Ubuntu 安装Mysql](Ubuntu 安装Mysql.md))
  2. 根据选择的存储方式准备相应的存储环境:
    • MinIO 存储: 已部署 MinIO 集群(参考 MinIO 集群高可用部署方案
    • NFS 存储: 已部署 NFS 服务器并配置好共享目录
    • 远程共享目录: 已配置好远程共享目录访问权限
    • 本地存储: 确保有足够的磁盘空间
  3. MySQL 服务器可以访问所选的存储系统
  4. 具备 MySQL 服务器的 root 权限
  5. 已安装基本的 Linux 工具(cron, gzip, wget, nfs-utils 等)

4. 部署步骤

根据选择的存储方式,执行相应的部署步骤:

4.1 安装必要工具

  1. 安装基础工具:
# 安装 MinIO 客户端(如使用 MinIO 存储)
wget https://dl.min.io/client/mc/release/linux-amd64/mc
chmod +x mc
sudo mv mc /usr/local/bin/

# 安装 NFS 客户端(如使用 NFS 存储)
# CentOS/RHEL
sudo yum install -y nfs-utils
# Ubuntu/Debian
sudo apt-get install -y nfs-common

# 验证安装
mc --version # 如使用 MinIO
showmount -e localhost # 如使用 NFS

4.2 配置存储环境

根据选择的存储方式配置相应环境:

MinIO 存储配置

  1. 配置 MinIO 客户端访问凭证:
# 设置 MinIO 服务器别名
mc alias set minio-backup http://192.168.192.115:9000 minioadmin minioadmin123

# 验证连接
mc admin info minio-backup
  1. 在 MinIO 中创建专用的 MySQL 备份存储桶:
# 创建存储桶
mc mb minio-backup/mysql-backups

# 设置存储桶策略(可选)
mc anonymous set download minio-backup/mysql-backups

NFS 存储配置

  1. 在 NFS 服务器上配置共享目录:
# 在 NFS 服务器上编辑 /etc/exports
sudo vim /etc/exports

# 添加以下行
/data/mysql-backups 192.168.192.0/24(rw,sync,no_root_squash,no_all_squash)

# 重启 NFS 服务
sudo systemctl restart nfs-server
  1. 在 MySQL 服务器上挂载 NFS 目录:
# 创建挂载点
sudo mkdir -p /mnt/mysql-backups

# 挂载 NFS 目录
sudo mount -t nfs 192.168.192.180:/data/mysql-backups /mnt/mysql-backups

# 设置开机自动挂载
echo "192.168.192.180:/data/mysql-backups /mnt/mysql-backups nfs defaults 0 0" >> /etc/fstab

远程共享目录配置

  1. 配置 SMB/CIFS 共享(以 SMB 为例):
# 安装 cifs-utils
sudo yum install -y cifs-utils # CentOS/RHEL
# 或
sudo apt-get install -y cifs-utils # Ubuntu/Debian

# 创建挂载点
sudo mkdir -p /mnt/mysql-backups

# 挂载远程共享目录
sudo mount -t cifs //192.168.192.190/mysql-backups /mnt/mysql-backups -o username=backupuser,password=backuppass

# 设置开机自动挂载
echo "//192.168.192.190/mysql-backups /mnt/mysql-backups cifs username=backupuser,password=backuppass 0 0" >> /etc/fstab

4.3 创建备份脚本

  1. 创建备份脚本目录:
sudo mkdir -p /opt/mysql-backup
sudo chown mysql:mysql /opt/mysql-backup
  1. 创建 MySQL 备份脚本 /opt/mysql-backup/backup-mysql.sh
#!/bin/bash

# MySQL 备份脚本(支持多种存储方式)
# 作者: 打工祥子
# 版本: 1.1

# 配置变量
MYSQL_USER="root"
MYSQL_PASSWORD="mysql@123456"
MYSQL_HOST="localhost"
MYSQL_PORT="3306"
BACKUP_DIR="/tmp/mysql-backup"
RETENTION_DAYS=7

# 存储方式配置(根据实际需求修改以下配置)
STORAGE_TYPE="minio" # 可选值: local, nfs, samba, minio, other

# MinIO 配置(如使用 MinIO 存储)
MINIO_ALIAS="minio-backup"
MINIO_BUCKET="mysql-backups"

# 本地/NFS/Samba 存储配置(如使用本地/NFS/Samba 存储)
LOCAL_BACKUP_DIR="/mnt/mysql-backups" # 本地/NFS/Samba 挂载点

# 创建临时备份目录
mkdir -p ${BACKUP_DIR}

# 获取当前时间戳
TIMESTAMP=$(date +"%Y%m%d-%H%M%S")
DATE=$(date +"%Y-%m-%d")

# 创建备份文件名
BACKUP_FILE="mysql-backup-${TIMESTAMP}.sql.gz"
BACKUP_PATH="${BACKUP_DIR}/${BACKUP_FILE}"

# 日志文件
LOG_FILE="/var/log/mysql-backup.log"

# 日志函数
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a ${LOG_FILE}
}

# 上传到 MinIO 函数
upload_to_minio() {
log "上传备份文件到 MinIO"
mc cp ${BACKUP_PATH} ${MINIO_ALIAS}/${MINIO_BUCKET}/

if [ ${?} -eq 0 ]; then
log "备份文件上传到 MinIO 成功"
return 0
else
log "备份文件上传到 MinIO 失败"
return 1
fi
}

# 复制到本地/NFS/Samba 存储函数
copy_to_local() {
log "复制备份文件到本地存储: ${LOCAL_BACKUP_DIR}"

# 创建目标目录
mkdir -p ${LOCAL_BACKUP_DIR}/${DATE}

# 复制备份文件
cp ${BACKUP_PATH} ${LOCAL_BACKUP_DIR}/${DATE}/${BACKUP_FILE}

if [ ${?} -eq 0 ]; then
log "备份文件复制到本地存储成功"
return 0
else
log "备份文件复制到本地存储失败"
return 1
fi
}

# 开始备份
log "开始备份 MySQL 数据库 (存储方式: ${STORAGE_TYPE})"

# 执行 MySQL 备份
log "执行 mysqldump 备份"
mysqldump -h${MYSQL_HOST} -P${MYSQL_PORT} -u${MYSQL_USER} -p${MYSQL_PASSWORD} \
--all-databases --single-transaction --routines --triggers --events \
| gzip > ${BACKUP_PATH}

# 检查备份是否成功
if [ ${?} -eq 0 ]; then
log "MySQL 备份成功: ${BACKUP_PATH}"

# 根据存储类型执行相应操作
case "${STORAGE_TYPE}" in
"minio")
upload_to_minio
if [ ${?} -eq 0 ]; then
# 删除临时备份文件
rm -f ${BACKUP_PATH}
log "临时备份文件已清理"
else
exit 1
fi
;;
"local"|"nfs"|"samba")
copy_to_local
if [ ${?} -eq 0 ]; then
# 删除临时备份文件
rm -f ${BACKUP_PATH}
log "临时备份文件已清理"
else
exit 1
fi
;;
"other")
log "使用其他存储方式,请手动处理备份文件: ${BACKUP_PATH}"
;;
*)
log "未知存储类型: ${STORAGE_TYPE},请检查配置"
exit 1
;;
esac
else
log "MySQL 备份失败"
exit 1
fi

log "MySQL 备份完成"
  1. 设置脚本权限:
sudo chmod +x /opt/mysql-backup/backup-mysql.sh
sudo chown mysql:mysql /opt/mysql-backup/backup-mysql.sh

4.4 配置定时任务

  1. 为 MySQL 用户添加定时任务:
# 切换到 mysql 用户
sudo -u mysql crontab -e
  1. 添加定时备份任务(每天凌晨 2 点执行):
# MySQL 定时备份任务
0 2 * * * /opt/mysql-backup/backup-mysql.sh >> /var/log/mysql-backup.log 2>&1
  1. 验证定时任务:
sudo -u mysql crontab -l

4.5 配置备份保留策略

  1. 创建清理旧备份的脚本 /opt/mysql-backup/cleanup-backups.sh
#!/bin/bash

# 清理旧备份脚本(支持多种存储方式)
# 作者: 打工祥子
# 版本: 1.1

# 配置变量
RETENTION_DAYS=7
LOG_FILE="/var/log/mysql-backup-cleanup.log"

# 存储方式配置(根据实际需求修改以下配置)
STORAGE_TYPE="minio" # 可选值: local, nfs, samba, minio, other

# MinIO 配置(如使用 MinIO 存储)
MINIO_ALIAS="minio-backup"
MINIO_BUCKET="mysql-backups"

# 本地/NFS/Samba 存储配置(如使用本地/NFS/Samba 存储)
LOCAL_BACKUP_DIR="/mnt/mysql-backups" # 本地/NFS/Samba 挂载点

# 日志函数
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a ${LOG_FILE}
}

# 清理 MinIO 中的旧备份
cleanup_minio() {
log "开始清理 MinIO 中 ${RETENTION_DAYS} 天前的备份文件"
mc rm --force --older-than ${RETENTION_DAYS}d ${MINIO_ALIAS}/${MINIO_BUCKET}/

if [ ${?} -eq 0 ]; then
log "MinIO 中旧备份文件清理成功"
return 0
else
log "MinIO 中旧备份文件清理失败"
return 1
fi
}

# 清理本地/NFS/Samba 存储中的旧备份
cleanup_local() {
log "开始清理本地存储中 ${RETENTION_DAYS} 天前的备份文件"

# 使用 find 命令查找并删除旧文件
find ${LOCAL_BACKUP_DIR} -type f -name "mysql-backup-*.sql.gz" -mtime +${RETENTION_DAYS} -delete

if [ ${?} -eq 0 ]; then
log "本地存储中旧备份文件清理成功"
return 0
else
log "本地存储中旧备份文件清理失败"
return 1
fi
}

# 开始清理
log "开始清理 ${RETENTION_DAYS} 天前的备份文件 (存储方式: ${STORAGE_TYPE})"

# 根据存储类型执行相应操作
case "${STORAGE_TYPE}" in
"minio")
cleanup_minio
;;
"local"|"nfs"|"samba")
cleanup_local
;;
"other")
log "使用其他存储方式,请手动清理旧备份文件"
;;
*)
log "未知存储类型: ${STORAGE_TYPE},请检查配置"
exit 1
;;
esac

log "备份清理完成"
  1. 设置脚本权限:
sudo chmod +x /opt/mysql-backup/cleanup-backups.sh
sudo chown mysql:mysql /opt/mysql-backup/cleanup-backups.sh
  1. 添加清理任务到定时任务(每周日凌晨 3 点执行):
# 切换到 mysql 用户
sudo -u mysql crontab -e

添加以下行:

# 清理旧备份任务
0 3 * * 0 /opt/mysql-backup/cleanup-backups.sh >> /var/log/mysql-backup-cleanup.log 2>&1

5. 验证方案

5.1 手动执行备份脚本

sudo -u mysql /opt/mysql-backup/backup-mysql.sh

5.2 检查备份文件

根据使用的存储方式,执行相应的检查命令:

MinIO 存储验证

# 查看 MinIO 存储桶中的备份文件
mc ls minio-backup/mysql-backups/

本地/NFS/Samba 存储验证

# 查看本地存储中的备份文件
ls -la /mnt/mysql-backups/

# 查看特定日期的备份文件
ls -la /mnt/mysql-backups/$(date +"%Y-%m-%d")/

通用验证

# 查看日志文件
tail -f /var/log/mysql-backup.log

5.3 验证定时任务

# 查看定时任务日志
tail -f /var/log/mysql-backup.log

# 查看系统日志中的 cron 任务执行情况
sudo grep CRON /var/log/syslog

6. 恢复方案

根据使用的存储方式,执行相应的恢复操作:

6.1 从 MinIO 恢复备份

  1. 下载备份文件:
# 列出备份文件
mc ls minio-backup/mysql-backups/

# 下载指定备份文件
mc cp minio-backup/mysql-backups/mysql-backup-20251120-020001.sql.gz /tmp/

6.2 从本地/NFS/Samba 存储恢复备份

  1. 查找并复制备份文件:
# 列出备份文件
ls -la /mnt/mysql-backups/

# 复制指定备份文件到临时目录
cp /mnt/mysql-backups/2025-11-20/mysql-backup-20251120-020001.sql.gz /tmp/

6.3 通用恢复步骤

无论使用哪种存储方式,恢复步骤都相同:

  1. 解压并恢复数据库:
# 解压备份文件
gunzip /tmp/mysql-backup-20251120-020001.sql.gz

# 恢复数据库(注意:这将覆盖现有数据)
mysql -hlocalhost -uroot -pmysql@123456 < /tmp/mysql-backup-20251120-020001.sql

6.2 部分数据库恢复

如果只需要恢复特定数据库:

# 创建临时数据库用于恢复
mysql -hlocalhost -uroot -pmysql@123456 -e "CREATE DATABASE temp_restore;"

# 恢复到临时数据库
mysql -hlocalhost -uroot -pmysql@123456 temp_restore < /tmp/mysql-backup-20251120-020001.sql

# 从临时数据库导出特定数据库
mysqldump -hlocalhost -uroot -pmysql@123456 temp_restore your_database_name > your_database_name.sql

# 恢复特定数据库
mysql -hlocalhost -uroot -pmysql@123456 your_database_name < your_database_name.sql

# 删除临时数据库
mysql -hlocalhost -uroot -pmysql@123456 -e "DROP DATABASE temp_restore;"

7. 最佳实践

7.1 备份策略建议

  1. 全量备份: 每天执行一次全量备份
  2. 增量备份: 每小时执行一次 binlog 备份(需要启用 binlog)
  3. 备份保留: 保留至少 7 天的备份,重要业务建议保留 30 天

7.2 安全配置

  1. 为备份创建专用的 MySQL 用户:
-- 创建备份专用用户
CREATE USER 'backup_user'@'localhost' IDENTIFIED BY 'backup_password123';

-- 授予必要权限
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT, TRIGGER ON *.* TO 'backup_user'@'localhost';

-- 刷新权限
FLUSH PRIVILEGES;
  1. 使用配置文件存储密码:
# 创建 MySQL 配置文件
sudo -u mysql vim /opt/mysql-backup/.my.cnf

# 添加以下内容
[client]
user=backup_user
password=backup_password123
host=localhost
  1. 设置配置文件权限:
sudo chmod 600 /opt/mysql-backup/.my.cnf
sudo chown mysql:mysql /opt/mysql-backup/.my.cnf
  1. 修改备份脚本使用配置文件:
# 在备份脚本中替换
mysqldump --defaults-file=/opt/mysql-backup/.my.cnf \
--all-databases --single-transaction --routines --triggers --events \
| gzip > ${BACKUP_PATH}

7.3 性能优化

  1. 并行备份: 对于大型数据库,可以使用并行备份工具:
# 安装 mydumper(可选)
sudo apt-get install mydumper # Ubuntu/Debian
# 或
sudo yum install mydumper # CentOS/RHEL

# 使用 mydumper 进行并行备份
mydumper -h localhost -u backup_user -p backup_password123 \
-o /tmp/mysql-backup-${TIMESTAMP} -c -t 4
  1. 压缩传输: 在上传到 MinIO 时使用压缩:
# 在上传时使用压缩
mc cp --compress ${BACKUP_PATH} ${MINIO_ALIAS}/${MINIO_BUCKET}/

8. 监控与告警

8.1 备份状态监控

  1. 创建监控脚本 /opt/mysql-backup/monitor-backup.sh
#!/bin/bash

# 备份监控脚本(支持多种存储方式)
# 作者: 打工祥子
# 版本: 1.1

# 配置变量
LOG_FILE="/var/log/mysql-backup.log"
ALERT_EMAIL="admin@example.com"

# 存储方式配置
STORAGE_TYPE="minio" # 可选值: local, nfs, samba, minio, other

# MinIO 配置(如使用 MinIO 存储)
MINIO_ALIAS="minio-backup"
MINIO_BUCKET="mysql-backups"

# 本地/NFS/Samba 存储配置(如使用本地/NFS/Samba 存储)
LOCAL_BACKUP_DIR="/mnt/mysql-backups" # 本地/NFS/Samba 挂载点

# 检查最近 24 小时内是否有备份
LAST_BACKUP=$(grep "MySQL 备份完成" ${LOG_FILE} | tail -1 | cut -d' ' -f1-2)

if [ -z "${LAST_BACKUP}" ]; then
echo "警告: 24 小时内没有检测到 MySQL 备份" | mail -s "MySQL 备份告警" ${ALERT_EMAIL}
exit 1
fi

# 根据存储类型检查备份文件是否存在
case "${STORAGE_TYPE}" in
"minio")
# 检查备份是否成功上传到 MinIO
BACKUP_COUNT=$(mc ls ${MINIO_ALIAS}/${MINIO_BUCKET}/ | wc -l)
if [ ${BACKUP_COUNT} -eq 0 ]; then
echo "警告: MinIO 中没有检测到 MySQL 备份文件" | mail -s "MySQL 备份告警" ${ALERT_EMAIL}
exit 1
fi
;;
"local"|"nfs"|"samba")
# 检查本地/NFS/Samba 存储中是否有备份文件
BACKUP_COUNT=$(find ${LOCAL_BACKUP_DIR} -type f -name "mysql-backup-*.sql.gz" -mtime -1 | wc -l)
if [ ${BACKUP_COUNT} -eq 0 ]; then
echo "警告: 本地存储中没有检测到最近的 MySQL 备份文件" | mail -s "MySQL 备份告警" ${ALERT_EMAIL}
exit 1
fi
;;
"other")
echo "使用其他存储方式,请手动检查备份状态"
;;
*)
echo "未知存储类型: ${STORAGE_TYPE},请检查配置" | mail -s "MySQL 备份告警" ${ALERT_EMAIL}
exit 1
;;
esac

echo "MySQL 备份状态正常 (存储方式: ${STORAGE_TYPE})"
  1. 添加监控任务到定时任务(每小时执行):
# 添加到 crontab
0 * * * * /opt/mysql-backup/monitor-backup.sh >> /var/log/mysql-backup-monitor.log 2>&1

8.2 Prometheus 监控集成

  1. 安装 node_exporter 的 textfile collector:
# 创建指标文件目录
sudo mkdir -p /var/lib/node_exporter/textfile_collector

# 创建 MySQL 备份指标脚本
sudo vim /opt/mysql-backup/export-metrics.sh

# 添加以下内容
#!/bin/bash

# 导出 MySQL 备份指标(支持多种存储方式)

# 配置变量
STORAGE_TYPE="minio" # 可选值: local, nfs, samba, minio, other

# MinIO 配置(如使用 MinIO 存储)
MINIO_ALIAS="minio-backup"
MINIO_BUCKET="mysql-backups"

# 本地/NFS/Samba 存储配置(如使用本地/NFS/Samba 存储)
LOCAL_BACKUP_DIR="/mnt/mysql-backups" # 本地/NFS/Samba 挂载点

# 获取备份日志最后修改时间
LAST_BACKUP_TIME=$(stat -c %Y /var/log/mysql-backup.log)
CURRENT_TIME=$(date +%s)
TIME_DIFF=$((CURRENT_TIME - LAST_BACKUP_TIME))

# 根据存储类型获取备份文件数量
case "${STORAGE_TYPE}" in
"minio")
# 获取 MinIO 中的备份文件数量
BACKUP_COUNT=$(mc ls ${MINIO_ALIAS}/${MINIO_BUCKET}/ | wc -l)
;;
"local"|"nfs"|"samba")
# 获取本地/NFS/Samba 存储中的备份文件数量
BACKUP_COUNT=$(find ${LOCAL_BACKUP_DIR} -type f -name "mysql-backup-*.sql.gz" | wc -l)
;;
"other")
BACKUP_COUNT=0 # 其他存储方式无法自动统计
;;
*)
BACKUP_COUNT=0
;;
esac

# 输出指标
echo "mysql_backup_last_timestamp ${LAST_BACKUP_TIME}" > /var/lib/node_exporter/textfile_collector/mysql_backup.prom
echo "mysql_backup_age_seconds ${TIME_DIFF}" >> /var/lib/node_exporter/textfile_collector/mysql_backup.prom
echo "mysql_backup_file_count ${BACKUP_COUNT}" >> /var/lib/node_exporter/textfile_collector/mysql_backup.prom
echo "mysql_backup_storage_type{type=\"${STORAGE_TYPE}\"} 1" >> /var/lib/node_exporter/textfile_collector/mysql_backup.prom
  1. 设置脚本权限并添加到定时任务:
sudo chmod +x /opt/mysql-backup/export-metrics.sh

# 添加到 crontab(每 5 分钟执行一次)
*/5 * * * * /opt/mysql-backup/export-metrics.sh

9. 故障排除

9.1 常见问题

  1. 备份失败

    • 检查 MySQL 用户权限
    • 验证 MySQL 服务状态
    • 检查磁盘空间是否充足
    • 检查备份脚本配置
  2. MinIO 上传失败(如使用 MinIO 存储):

    • 检查网络连接
    • 验证 MinIO 访问凭证
    • 确认存储桶是否存在
    • 检查 MinIO 服务状态
  3. NFS 挂载失败(如使用 NFS 存储):

    • 检查 NFS 服务器状态
    • 验证挂载点权限
    • 检查防火墙设置
    • 验证 NFS 服务器导出配置
  4. Samba 共享连接失败(如使用 Samba 存储):

    • 检查 Samba 服务器状态
    • 验证用户名和密码
    • 检查共享目录权限
    • 验证网络连接
  5. 本地存储空间不足(如使用本地存储):

    • 检查磁盘使用情况
    • 清理旧备份文件
    • 扩展磁盘空间
  6. 定时任务未执行

    • 检查 crontab 配置
    • 查看系统日志中的 cron 错误
    • 验证脚本执行权限
    • 检查系统时间设置

9.2 诊断命令

# 检查 MySQL 服务状态
systemctl status mysql

# 检查磁盘空间
df -h

# 检查内存使用情况
free -h

# 查看备份日志
tail -f /var/log/mysql-backup.log

# 检查定时任务
sudo -u mysql crontab -l

# 检查 MinIO 连接(如使用 MinIO 存储)
mc admin info minio-backup

# 查看 MinIO 存储桶内容(如使用 MinIO 存储)
mc ls minio-backup/mysql-backups/

# 检查 NFS 挂载状态(如使用 NFS 存储)
showmount -e 192.168.192.180
mount | grep nfs

# 检查 Samba 共享连接(如使用 Samba 存储)
smbclient -L //192.168.192.190 -U backupuser

# 检查本地存储空间使用情况(如使用本地存储)
df -h /mnt/mysql-backups

# 查看本地备份文件(如使用本地/NFS/Samba 存储)
ls -la /mnt/mysql-backups/

通过以上方案,您可以根据实际需求选择最适合的存储方式来实施 MySQL 数据库的定时备份策略,实现数据的远程备份和高可用性保护。