CentOS 上 WebLogic 备份与恢复实操
一 核心原则与准备
二 标准操作步骤
停止服务
进入域目录执行停止脚本(示例):
cd /home/weblogic/Oracle/Middleware/user_projects/domains/your_domain
./stopWebLogic.sh
提示:若使用 Node Manager,可先停受管 Server,再停 AdminServer。
备份域配置
打包整个域目录(包含 config.xml、启动脚本、安全配置 等):
tar -czvf /opt/backup_weblogic/domain_$(date +%F).tar.gz -C /home/weblogic/Oracle/Middleware/user_projects/domains your_domain
说明:域目录通常位于 /home/weblogic/Oracle/Middleware/user_projects/domains/your_domain。
备份应用与数据
备份日志(可选)
tar -czvf /opt/backup_weblogic/domain_logs_$(date +%F).tar.gz /home/weblogic/Oracle/Middleware/user_projects/domains/your_domain/servers/**/logs
压缩与异地拷贝
gzip 已足够;如需异地:
scp /opt/backup_weblogic/domain_$(date +%F).tar.gz user@remote:/backup/weblogic/
启动服务
cd /home/weblogic/Oracle/Middleware/user_projects/domains/your_domain
./startWebLogic.sh
三 自动化脚本与定时任务
#!/bin/bash
set -e
export DATE=$(date +%F_%H%M%S)
export DOMAIN_HOME=/home/weblogic/Oracle/Middleware/user_projects/domains/your_domain
export BACKUP_BASE=/opt/backup_weblogic
export LOGS=$BACKUP_BASE/backup_$DATE.log
mkdir -p $BACKUP_BASE
{
echo "[$(date)] 停止 WebLogic"
$DOMAIN_HOME/stopWebLogic.sh
echo "[$(date)] 备份域配置"
tar -czf $BACKUP_BASE/domain_$DATE.tar.gz -C $DOMAIN_HOME .
echo "[$(date)] 备份应用"
mkdir -p $BACKUP_BASE/apps_$DATE
cp $DOMAIN_HOME/autodeploy/*.war $BACKUP_BASE/apps_$DATE/ 2>/dev/null || true
cp $DOMAIN_HOME/autodeploy/*.ear $BACKUP_BASE/apps_$DATE/ 2>/dev/null || true
echo "[$(date)] 备份日志(可选)"
tar -czf $BACKUP_BASE/logs_$DATE.tar.gz -C $DOMAIN_HOME servers **/logs
echo "[$(date)] 清理 7 天前备份"
find $BACKUP_BASE -maxdepth 1 -type f -name "domain_*.tar.gz" -mtime +7 -delete
find $BACKUP_BASE -maxdepth 1 -type f -name "apps_*.tar.gz" -mtime +7 -delete
find $BACKUP_BASE -maxdepth 1 -type f -name "logs_*.tar.gz" -mtime +7 -delete
echo "[$(date)] 启动 WebLogic"
$DOMAIN_HOME/startWebLogic.sh
} >> $LOGS 2>&1
四 恢复步骤与要点
五 常见注意事项与建议