CentOS 环境下 WebLogic 数据备份与恢复
一 备份范围与准备
- 备份范围建议包含:
- 域目录 domain(含 config.xml 等关键配置);2) 部署的应用(如 WAR/EAR,若通过控制台/管理脚本部署,也可直接复制域下的部署目录);3) 外部数据库(生产环境优先采用数据库自带工具导出,如 Oracle Data Pump expdp);4) 日志文件(便于排障,非必须纳入恢复项)。
- 准备与约定:
- 以具备权限的 WebLogic 运行用户 执行(不建议直接用 root 操作域目录)。
- 明确域根路径,例如:/home/weblogic/Oracle/Middleware/user_projects/domains/<domain_name>。
- 备份前尽量将服务置于 维护/停止 状态,减少配置与应用不一致风险。
- 归档命名建议包含日期,如:weblogic_backup_20251209.tar.gz。
二 手动备份步骤
- 停止服务(管理服务器或节点管理器管理的整个域):
- 管理服务器:在域目录执行 ./stopWebLogic.sh;
- 受管服务器:建议通过控制台/脚本统一停机,避免集群状态不一致。
- 备份域配置与部署内容:
- 打包域目录:
- 示例:tar -zcvf /backup/weblogic_domain_$(date +%Y%m%d).tar.gz /home/weblogic/Oracle/Middleware/user_projects/domains/<domain_name>
- 仅备份关键配置子集(可选):
- 示例:tar -zcvf /backup/weblogic_config_$(date +%Y%m%d).tar.gz /home/weblogic/Oracle/Middleware/user_projects/domains/<domain_name>/config /home/weblogic/Oracle/Middleware/user_projects/domains/<domain_name>/bin
- 备份应用(若不在域目录内或需单独归档):
- 示例:tar -zcvf /backup/weblogic_apps_$(date +%Y%m%d).tar.gz /path/to/applications/.war /path/to/applications/.ear
- 备份数据库(外部库优先):
- Oracle Data Pump 示例:
- 导出:expdp system/@ directory=DATA_PUMP_DIR dumpfile=weblogic_db_$(date +%Y%m%d).dmp logfile=expdp_$(date +%Y%m%d).log
- 备份日志(可选):
- 示例:tar -zcvf /backup/weblogic_logs_$(date +%Y%m%d).tar.gz /home/weblogic/Oracle/Middleware/user_projects/domains/<domain_name>/servers//logs**
- 传输与异地存放:
- 示例:scp /backup/weblogic_*.tar.gz user@remote:/backup/
- 说明:如无停机窗口,至少确保数据库与关键配置有可用备份;域目录备份建议安排在维护时段执行。
三 自动化备份脚本与定时任务
- 示例脚本(全量打包域与日志,保留 7 天,含可选数据库导出):
#!/bin/bash
WL_USER="weblogic"
DOMAIN_HOME="/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain"
BACKUP_BASE="/opt/backup_weblogic"
DATE=$(date +%Y%m%d_%H%M%S)
RETENTION_DAYS=7
mkdir -p "$BACKUP_BASE"
tar -zcvf "$BACKUP_BASE/weblogic_domain_${DATE}.tar.gz" -C "$(dirname "$DOMAIN_HOME")" "$(basename "$DOMAIN_HOME")"
tar -zcvf "$BACKUP_BASE/weblogic_logs_${DATE}.tar.gz" -C "$DOMAIN_HOME" servers
find "$BACKUP_BASE" -type f -mtime +${RETENTION_DAYS} -name "weblogic_*.tar.gz" -delete
- 赋权与定时(每天 02:00 执行):
- 赋权:chmod +x /opt/backup_weblogic/backup_weblogic.sh
- 定时:crontab -e 添加行:0 2 * * * /opt/backup_weblogic/backup_weblogic.sh >/var/log/backup_weblogic.log 2>&1
- 建议将脚本输出重定向到日志文件,便于审计与告警。
四 恢复步骤
- 停止服务:在域目录执行 ./stopWebLogic.sh。
- 恢复域配置与部署内容:
- 示例:tar -xzvf /backup/weblogic_domain_20251209.tar.gz -C /home/weblogic/Oracle/Middleware/user_projects/domains/
- 恢复应用(若单独备份):
- 示例:cp /backup/*.war /path/to/applications/ 或通过控制台重新部署。
- 恢复数据库(如已导出):
- Oracle Data Pump 示例:
- 导入:impdp system/@ directory=DATA_PUMP_DIR dumpfile=weblogic_db_20251209.dmp logfile=impdp_20251209.log
- 启动服务:在域目录执行 ./startWebLogic.sh。
- 验证:登录 WebLogic Admin Console 检查 域配置、部署应用、数据源连通性 与 节点状态。
五 备份策略与注意事项
- 策略建议:
- 采用 全量 + 增量 思路:域配置与应用建议每日全量;数据库使用 RMAN/Data Pump 按策略增量;日志按需归档。
- 明确 RPO/RTO 目标,定期演练恢复流程。
- 关键注意:
- 停机一致性:配置/域目录备份尽量在停机窗口进行;数据库备份与生产变更窗口对齐。
- 权限与安全:备份文件属主与权限要可控,传输与存放位置加密,避免明文口令出现在脚本或命令历史。
- 校验与留痕:定期做 恢复演练 与 校验和/还原测试,保留操作与结果日志。
- 目录取舍:通常无需备份 cache/tmp 等运行时临时目录,减少体积与恢复干扰。