Ubuntu上备份WebLogic的可执行方案
一、备份前准备
二、推荐的备份方法
DOMAIN_HOME=/home/weblogic/user_projects/domains/base_domain
BACKUP_DIR=/opt/backup_weblogic
DATE=$(date +%F_%H%M%S)
mkdir -p $BACKUP_DIR
tar -czf $BACKUP_DIR/domain_bak_$DATE.tar.gz \
--exclude=$DOMAIN_HOME/servers/*/cache \
--exclude=$DOMAIN_HOME/servers/*/tmp \
-C $(dirname $DOMAIN_HOME) $(basename $DOMAIN_HOME)
WL_HOME=/home/weblogic/Oracle/Middleware
tar -czf $BACKUP_DIR/middleware_bak_$DATE.tar.gz -C $(dirname $WL_HOME) $(basename $WL_HOME)
BSU_DIR=$WL_HOME/utils/bsu
[ -d $BSU_DIR/cache_dir ] && tar -czf $BACKUP_DIR/bsu_cache_$DATE.tar.gz -C $BSU_DIR cache_dir
$WL_HOME/common/bin/wlst.sh <<'EOF'
connect('weblogic','YourPassword','t3://localhost:7001')
exportDomain('/opt/backup_weblogic/domain_config_$(date +%F).xml', includeAuditInfo=false)
exit()
EOF
$WL_HOME/common/bin/wlst.sh <<'EOF'
connect('weblogic','YourPassword','t3://localhost:7001')
readDomain('/home/weblogic/user_projects/domains/base_domain')
importDomain('/opt/backup_weblogic/domain_config_YYYY-MM-DD.xml')
updateDomain()
closeDomain()
exit()
EOF
三、自动化与保留策略
#!/usr/bin/env bash
set -Eeuo pipefail
DOMAIN_HOME=/home/weblogic/user_projects/domains/base_domain
WL_HOME=/home/weblogic/Oracle/Middleware
BACKUP_DIR=/opt/backup_weblogic
DATE=$(date +%F_%H%M%S)
KEEP_DAYS=7
mkdir -p "$BACKUP_DIR"
# 1) 停域
"$DOMAIN_HOME/bin/stopWebLogic.sh" >/dev/null 2>&1 || true
# 2) 打包域(排除缓存与临时)
tar -czf "$BACKUP_DIR/domain_bak_$DATE.tar.gz" \
--exclude="$DOMAIN_HOME/servers/*/cache" \
--exclude="$DOMAIN_HOME/servers/*/tmp" \
-C "$(dirname "$DOMAIN_HOME")" "$(basename "$DOMAIN_HOME")"
# 3) 可选:打包补丁
if [ -d "$WL_HOME/utils/bsu/cache_dir" ]; then
tar -czf "$BACKUP_DIR/bsu_cache_$DATE.tar.gz" -C "$WL_HOME/utils/bsu" cache_dir
fi
# 4) 启动域
nohup "$DOMAIN_HOME/bin/startWebLogic.sh" >/dev/null 2>&1 &
# 5) 清理旧备份
find "$BACKUP_DIR" -name "domain_bak_*.tar.gz" -mtime +$KEEP_DAYS -delete
find "$BACKUP_DIR" -name "bsu_cache_*.tar.gz" -mtime +$KEEP_DAYS -delete
chmod +x /opt/scripts/backup_weblogic.sh
echo "0 2 * * * /opt/scripts/backup_weblogic.sh >> /var/log/backup_weblogic.log 2>&1" | sudo tee -a /etc/crontab
四、恢复步骤与注意事项
tar -xzf /opt/backup_weblogic/domain_bak_YYYY-MM-DD_HHMMSS.tar.gz -C /
tar -xzf /opt/backup_weblogic/middleware_bak_YYYY-MM-DD_HHMMSS.tar.gz -C /
tail -f $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log