目录
目录X
openGauss数据库设置自动备份
AI摘要(BLUF)
问题分析: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_……
问题分析: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
