linux

如何备份Linux WebLogic域

小樊
45
2025-12-12 12:46:10
栏目: 智能运维

Linux WebLogic域备份实操指南

一 备份策略与准备

二 标准备份步骤

三 备份脚本示例

#!/usr/bin/env bash
# 文件名:backup_wls.sh
# 功能:WebLogic域冷备份 + 数据库导出 + 日志归档 + 保留策略

set -Eeuo pipefail
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

# 参数
DOMAIN_HOME="/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain"
BACKUP_ROOT="/backup/weblogic"
DATE_TAG=$(date +%F)
RETENTION_DAYS=7

# 数据库(Oracle示例,按实际修改)
DB_USER="system"
DB_PWD="YourDBPass"
DB_SID="orcl"
DUMP_DIR="DATA_PUMP_DIR"
DMP_FILE="wls_backup_${DATE_TAG}.dmp"
LOG_FILE="expdp_${DATE_TAG}.log"

# 工具检查
for cmd in tar gzip; do
  command -v "$cmd" >/dev/null 2>&1 || { echo "缺少命令: $cmd"; exit 1; }
done

# 创建备份目录
mkdir -p "$BACKUP_ROOT"

# 1) 停止WebLogic
echo "[$(date)] 停止WebLogic..."
"$DOMAIN_HOME/bin/stopWebLogic.sh" || { echo "停止失败"; exit 1; }

# 2) 打包域目录
echo "[$(date)] 打包域目录 $DOMAIN_HOME ..."
tar -czvf "$BACKUP_ROOT/wls_domain_${DATE_TAG}.tar.gz" -C "$DOMAIN_HOME" .

# 3) 备份数据库(示例:Oracle Data Pump)
echo "[$(date)] 导出数据库 $DB_SID ..."
expdp "$DB_USER/$DB_PWD@$DB_SID" \
  DIRECTORY="$DUMP_DIR" \
  DUMPFILE="$DMP_FILE" \
  LOGFILE="$LOG_FILE" \
  PARALLEL=2 \
  COMPRESSION=ALL || { echo "数据库导出失败"; exit 1; }

# 4) 归档日志(可选)
echo "[$(date)] 归档日志..."
tar -czvf "$BACKUP_ROOT/wls_logs_${DATE_TAG}.tar.gz" -C "$DOMAIN_HOME" logs

# 5) 启动WebLogic
echo "[$(date)] 启动WebLogic..."
"$DOMAIN_HOME/bin/startWebLogic.sh" &

# 6) 清理旧备份
echo "[$(date)] 清理 $RETENTION_DAYS 天前备份..."
find "$BACKUP_ROOT" -type f -name "wls_*_*.tar.gz" -mtime +$RETENTION_DAYS -delete

echo "[$(date)] 备份完成:$BACKUP_ROOT"

四 恢复与验证

五 注意事项与最佳实践

0
看了该问题的人还看了