在Win或者Linux中, 用mysqldump进行一键备份

推荐组合命令(带进度提示 + 日志)

# 先安装 pv(如未安装)
# Ubuntu/Debian: apt install pv
# CentOS/RHEL: yum install pv
------------------------------------------------------------------
# 保存为xx.sh文件

#!/bin/bash

# 统一日期变量,确保所有文件名一致
DATE=$(date +%F)
BACKUP_DIR="/data/backsql"
SQL_FILE="${BACKUP_DIR}/full_backup_${DATE}.sql"
LOG_FILE="${BACKUP_DIR}/backup_${DATE}.log"

# 创建目录(可选,防错)
mkdir -p "$BACKUP_DIR"

echo "开始备份,输出表名进度和数据流..."

# 正确方式:让 mysqldump 的 stdout 流经 pv,stderr 单独记录
mysqldump \
  -h 192.168.90.102 \
  -u root \
  -p'数据库密码' \
  --all-databases \
  --single-transaction \
  --routines \
  --triggers \
  --events \
  --set-gtid-purged=OFF \
  --hex-blob \
  --opt \
  --verbose \
  2>"$LOG_FILE" | pv > "$SQL_FILE"

# 检查命令是否成功
if [ ${PIPESTATUS[0]} -eq 0 ] && [ ${PIPESTATUS[1]} -eq 0 ]; then
  echo "备份完成!"
  echo "SQL 文件: $SQL_FILE"
  echo "详细日志: $LOG_FILE"
else
  echo "备份失败!请检查日志:$LOG_FILE"
  exit 1
fi


白俊遥博客
请先登录后发表评论
  • 最新评论
  • 总共0条评论