如何备份Linux WebLogic域
导读:Linux WebLogic域备份实操指南 一 备份策略与准备 明确范围:WebLogic域的核心配置与运行时数据主要集中在**$DOMAIN_HOME**(含config与data等),外部数据库通常独立备份,日志用于审计与排障。 选择...
Linux WebLogic域备份实操指南
一 备份策略与准备
- 明确范围:WebLogic域的核心配置与运行时数据主要集中在**$DOMAIN_HOME**(含config与data等),外部数据库通常独立备份,日志用于审计与排障。
- 选择方式:
- 冷备份:停机一致性最好,适合关键变更前或小型域。
- 热备份:业务不停机,依赖应用对文件一致性的容忍度,建议先评估或演练。
- 准备要点:
- 确认**$DOMAIN_HOME路径与管理服务器URL/端口**,准备具有Admin权限的账号。
- 规划备份保留周期与异地/离线副本,确保可恢复性。
- 统一备份命名与存储目录,便于追溯与清理。
二 标准备份步骤
- 冷备份(停机一致性优先)
- 停止服务(任一方式)
- 管理节点执行:$DOMAIN_HOME/bin/stopWebLogic.sh
- 或使用WLST:connect(‘weblogic’,‘密码’,‘t3://管理地址:端口’); shutdown()
- 打包域目录
- tar -czvf /backup/weblogic_domain_$(date +%F).tar.gz -C $DOMAIN_HOME .
- 备份外部数据库(示例)
- Oracle Data Pump:expdp 用户名/口令@SID DIRECTORY=DATA_PUMP_DIR DUMPFILE=domain_$(date +%F).dmp LOGFILE=expdp_$(date +%F).log
- 备份日志(可选)
- tar -czvf /backup/weblogic_logs_$(date +%F).tar.gz $DOMAIN_HOME/logs
- 启动服务
- $DOMAIN_HOME/bin/startWebLogic.sh
- 停止服务(任一方式)
- 热备份(不停机,尽量在维护窗口)
- 仅打包配置与数据目录(避免运行时临时文件)
- tar -czvf /backup/weblogic_domain_hot_$(date +%F).tar.gz $DOMAIN_HOME/config $DOMAIN_HOME/data
- 备份外部数据库(按RPO要求执行)
- 备份日志(可选)
- 校验备份可用性(见第四部分)
- 仅打包配置与数据目录(避免运行时临时文件)
- 自动化与增量
- 定时任务(crontab)示例(每日02:00冷备):
- 0 2 * * * /opt/scripts/backup_wls.sh > > /var/log/wls_backup.log 2> & 1
- 增量同步(rsync,适合频繁备份与快速回滚)
- rsync -avz --delete $DOMAIN_HOME/ /backup/weblogic_domain_incremental/
- 说明:WebLogic官方并无通用的“一键WLBackup.sh”工具,常见做法为脚本化打包与WLST配合。
- 定时任务(crontab)示例(每日02:00冷备):
三 备份脚本示例
#!/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"
- 使用方式:
- chmod +x backup_wls.sh
- 0 2 * * * /opt/scripts/backup_wls.sh > > /var/log/wls_backup.log 2> & 1
- 提示:数据库段可按需替换为mysqldump、pg_dump等;如无停机窗口,请移除停止/启动步骤,仅备份config与data。
四 恢复与验证
- 冷备份恢复
- 停止服务:$DOMAIN_HOME/bin/stopWebLogic.sh
- 清理或重命名现有域目录(谨慎)
- 解压备份:tar -xzvf /backup/weblogic_domain_YYYY-MM-DD.tar.gz -C /目标父目录
- 恢复数据库:impdp 用户名/口令@SID DIRECTORY=DATA_PUMP_DIR DUMPFILE=wls_backup_YYYY-MM-DD.dmp LOGFILE=impdp_YYYY-MM-DD.log
- 启动服务:$DOMAIN_HOME/bin/startWebLogic.sh
- 登录Admin Console核对数据源、部署、JMS、安全领域等关键配置
- 热备份恢复
- 解压覆盖config/data后,优先重启受影响Managed Server,再重启Admin Server,以减少业务中断
- 验证要点
- 校验备份文件完整性(如tar tvf、gzip -t)
- 核对关键配置与最近变更是否生效
- 抽样验证应用可访问性与数据库连接
- 记录恢复演练结果与恢复时间目标(RTO/RPO)
五 注意事项与最佳实践
- 一致性优先:涉及JDBC持久化、JMS存储、嵌入式LDAP等状态数据时,优先选择停机窗口进行冷备;热备务必评估文件一致性影响。
- 目录取舍:避免备份cache、tmp等运行时临时目录,减少备份体积与恢复干扰。
- 权限与账号:备份与恢复使用最小权限账号;数据库导出账号仅授予必要权限。
- 多地/离线副本:至少保留一份异地或离线副本,定期演练恢复流程。
- 监控与告警:对备份任务加日志与告警,失败及时通知;保留变更前后成对备份,便于回滚。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何备份Linux WebLogic域
本文地址: https://pptw.com/jishu/771041.html
