温馨提示×

centos环境下如何备份weblogic数据

小樊
32
2025-12-09 21:37:42
栏目: 智能运维

CentOS 环境下 WebLogic 数据备份与恢复

一 备份范围与准备

  • 备份范围建议包含:
    1. 域目录 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"

# 1) 备份域目录
tar -zcvf "$BACKUP_BASE/weblogic_domain_${DATE}.tar.gz" -C "$(dirname "$DOMAIN_HOME")" "$(basename "$DOMAIN_HOME")"

# 2) 备份日志(可选)
tar -zcvf "$BACKUP_BASE/weblogic_logs_${DATE}.tar.gz" -C "$DOMAIN_HOME" servers

# 3) 备份数据库(可选,示例 Oracle Data Pump)
# 需提前创建 Oracle directory 对象并授予权限
# DB_USER="system"
# DB_PWD="******"
# SID="orcl"
# DUMP_DIR="DATA_PUMP_DIR"
# expdp ${DB_USER}/${DB_PWD}@${SID} directory=${DUMP_DIR} \
#   dumpfile=weblogic_db_${DATE}.dmp logfile=expdp_${DATE}.log

# 4) 清理旧备份
find "$BACKUP_BASE" -type f -mtime +${RETENTION_DAYS} -name "weblogic_*.tar.gz" -delete

# 5) 异地拷贝(可选)
# scp "$BACKUP_BASE/weblogic_domain_${DATE}.tar.gz" user@remote:/backup/
  • 赋权与定时(每天 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 等运行时临时目录,减少体积与恢复干扰。

0