在生产环境中,数据库备份是保障数据安全的最后一道防线。本文将深入讲解MySQL、Oracle和PostgreSQL三大数据库的自动化备份方案与恢复实践,并提供可直接部署的Shell脚本。
一、MySQL数据库异地容灾方案
📝 优化版备份脚本要点解析
#!/bin/bash
# Author: DBA_Expert
# Description: MySQL数据库全量备份脚本(带异地容灾)
# Version: 2.1
# ✨ 添加错误处理机制和日志审计功能
# 配置区(根据实际情况修改)
MYSQL_USER="backup_user"
MYSQL_PASSWORD="S3cureP@ssw0rd"
MYSQL_HOST="192.168.1.100"
BACKUP_DIR="/data/mysql_backups"
REMOTE_HOST="backup-server"
REMOTE_DIR="/mnt/backup_nas/mysql"
RETENTION_DAYS=7
LOG_FILE="/var/log/mysql_backup.log"
# ✨ 初始化日志记录
exec 3>&1 4>&2
trap 'exec 2>&4 1>&3' 0 1 2 3
exec 1>>$LOG_FILE 2>&1
echo "====== $(date +'%F %T') 备份开始 ======"
# 创建当日备份目录
BACKUP_DATE=$(date +%Y%m%d)
mkdir -p ${BACKUP_DIR}/${BACKUP_DATE} || exit 1
# ✨ 获取数据库列表(排除系统库)
DATABASES=$(mysql -h${
MYSQL_HOST} -u${
MYSQL_USER} -p${
MYSQL_PASSWORD} -e "SHOW DATABASES;" | grep -Ev "(Database|information_schema|performance_schema|mysql)")
# 全库备份
for DB