openGauss数据库设置自动备份

来源:本站原创 点击数: 发布时间:2026年08月31日

问题分析:openGauss数据库设置自动备份

处理办法:

创建openguass_backup.sh

#!/bin/bash
# ===== 配置区域 =====
DB_USER="用户名"
DB_PASSWD="密码"
DB_HOST="127.0.0.1"
DB_PORT="5432"
DB_NAME="数据库名"
BACKUP_DIR="/data/backup"
KEEP_DAYS=30  # 备份文件保留天数
# ====================
# 1. 创建备份目录(如果不存在)
mkdir -p ${BACKUP_DIR}
# 2. 定义备份文件名(带时间戳)
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_$(date +%Y%m%d_%H%M%S).sql"
# 3. 执行 gs_dump 备份
echo "$(date): 开始备份数据库 ${DB_NAME}..."
gs_dump -U ${DB_USER} -W ${DB_PASSWD} -h ${DB_HOST} -p ${DB_PORT} -F p -f ${BACKUP_FILE} ${DB_NAME}
# 4. 检查备份是否成功
if [ $? -eq 0 ]; then
    echo "$(date): 数据库备份成功,文件位于:${BACKUP_FILE}"
else
    echo "$(date): 数据库备份失败!"
    exit 1
fi
# 5. 清理过期的备份文件
echo "$(date): 开始清理 ${KEEP_DAYS} 天前的旧备份..."
find ${BACKUP_DIR} -type f -name "${DB_NAME}_*.sql" -mtime +${KEEP_DAYS} -exec rm -f {} \;
echo "$(date): 过期备份清理完成。"

需要用omm定时执行该备份脚本

# 1. 将 omm 追加写入 /etc/cron.allow 文件中

echo "omm" >> /etc/cron.allow

# 2. 切换到 omm 用户

su - omm

# 3. 编辑 omm 用户的定时任务

crontab -e

# 每天凌晨 2:00 执行 openGauss 备份脚本

0 2 * * * export GAUSSHOME=/opt/software/openGauss && export PATH=$GAUSSHOME/bin:$PATH && export LD_LIBRARY_PATH=$GAUSSHOME/lib:$LD_LIBRARY_PATH && /opt/software/openGauss/backup/openguass_backup.sh >> /opt/software/openGauss/backup/backup_cron.log 2>&1