温馨提示×

Ubuntu上WebLogic的备份与恢复

小樊
39
2025-12-20 16:10:46
栏目: 智能运维

Ubuntu上WebLogic的备份与恢复

一 备份策略与范围

  • 备份对象与路径
    • 域目录:通常为 $DOMAIN_HOME(如:/home/weblogic/user_projects/domains/base_domain),包含配置、应用、安全等子目录。
    • 关键子目录与文件:
      • 配置:$DOMAIN_HOME/config(含 config.xml 等)
      • 数据:$DOMAIN_HOME/data
      • 日志:$DOMAIN_HOME/logs
      • 安全与启动凭据:$DOMAIN_HOME/security/DefaultAuthenticatorInit.ldift$DOMAIN_HOME/servers/AdminServer/security/boot.properties
  • 备份方式
    • 离线一致性备份:在域停止状态下对 $DOMAIN_HOME 做打包归档,适合完整迁移与灾备。
    • 在线配置导出:使用 WLST 导出域配置,便于快速恢复或跨环境迁移(不含已部署应用字节码与运行时数据)。
  • 建议频率与保留
    • 每日增量或每周全量,保留至少 7–30 天;关键环境建议异地/离线副本。
  • 前置检查
    • 确认 $DOMAIN_HOME$JAVA_HOMEWLST 脚本路径;准备备份清单与校验方式(如 sha256sum)。

二 备份步骤

  • 步骤1 停止域
    • 进入域目录执行停止脚本:
      • $DOMAIN_HOME/bin/stopWebLogic.sh
      • 或按系统服务方式停止(如使用 systemd 管理的自定义服务)。
  • 步骤2 离线打包备份(推荐)
    • 使用 tar 归档整个域目录,包含权限与时间戳:
      • tar -czvf weblogic_domain_$(date +%F).tar.gz -C /home/weblogic/user_projects/domains/base_domain .
  • 步骤3 备份关键安全与凭据文件(可选但强烈建议)
    • 单独拷贝用于灾难恢复与账号修复:
      • cp -a $DOMAIN_HOME/security/DefaultAuthenticatorInit.ldift $BACKUP_DIR/security/
      • cp -a $DOMAIN_HOME/servers/AdminServer/security/boot.properties $BACKUP_DIR/security/
  • 步骤4 使用 WLST 导出域配置(可选)
    • 连接管理服务器并导出配置(示例):
      • $DOMAIN_HOME/bin/wlst.sh
      • 在 WLST 交互中:
        • connect(‘weblogic’,‘密码’,‘t3://管理地址:7001’)
        • exportDomain(‘/path/to/backup/domain_config_export’, includeApplications=False, includeLibraryBinaries=False)
  • 步骤5 校验与异地拷贝
    • 生成校验值:sha256sum weblogic_domain_*.tar.gz
    • 使用 rsync 或 scp 同步至备份存储/异地:
      • rsync -avz weblogic_domain_*.tar.gz user@backup:/backup/weblogic/

三 恢复步骤

  • 场景A 从离线归档恢复
    • 步骤1 停止域:执行 $DOMAIN_HOME/bin/stopWebLogic.sh
    • 步骤2 备份当前目录(若存在):mv $DOMAIN_HOME $DOMAIN_HOME.bak_$(date +%F_%T)
    • 步骤3 解压备份到目标父目录:
      • tar -xzvf weblogic_domain_YYYY-MM-DD.tar.gz -C /home/weblogic/user_projects/domains/
    • 步骤4 还原安全与凭据(若之前单独备份):
      • cp -a $BACKUP_DIR/security/DefaultAuthenticatorInit.ldift $DOMAIN_HOME/security/
      • cp -a $BACKUP_DIR/security/boot.properties $DOMAIN_HOME/servers/AdminServer/security/
    • 步骤5 启动域:
      • $DOMAIN_HOME/bin/startWebLogic.sh
  • 场景B 从 WLST 配置导入恢复
    • 步骤1 准备目标域(可为一个空域骨架)
    • 步骤2 使用 WLST 导入:
      • $DOMAIN_HOME/bin/wlst.sh
      • connect(‘weblogic’,‘密码’,‘t3://管理地址:7001’)
      • importDomain(‘/path/to/backup/domain_config_export’, overwrite=True)
    • 步骤3 启动域并验证
  • 场景C 忘记控制台密码的紧急恢复
    • 步骤1 停止域
    • 步骤2 备份并重建认证文件:
      • 备份:$DOMAIN_HOME/security/DefaultAuthenticatorInit.ldift
      • 生成新文件(注意命令最后有一个空格和一个点):
        • java -cp $WL_HOME/server/lib/weblogic.jar weblogic.security.utils.AdminAccount 新用户名 新密码 .
    • 步骤3 清理管理服务器运行时数据并重置凭据文件:
      • rm -rf $DOMAIN_HOME/servers/AdminServer/data
      • 编辑或创建 $DOMAIN_HOME/servers/AdminServer/security/boot.properties,写入:
        • username=新用户名
        • password=新密码
    • 步骤4 启动域后用新凭据登录控制台
  • 验证要点
    • 管理控制台可登录、集群/数据源/应用状态正常
    • 业务功能自检通过;必要时抽样比对关键配置与部署包

四 自动化与日志管理

  • 自动化备份脚本示例
    • 示例脚本 backup_weblogic.sh(按实际路径修改):
      • #!/bin/bash
        • set -e
        • export DOMAIN_HOME=/home/weblogic/user_projects/domains/base_domain
        • export WL_HOME=/home/weblogic/Oracle/Middleware/wlserver
        • BACKUP_DIR=/backup/weblogic/$(date +%F)
        • mkdir -p $BACKUP_DIR
        • echo “[$(date)] 停止域…”
        • $DOMAIN_HOME/bin/stopWebLogic.sh || true
        • echo “[$(date)] 打包域目录…”
        • tar -czvf $BACKUP_DIR/domain_$(date +%F_%H%M%S).tar.gz -C $DOMAIN_HOME .
        • echo “[$(date)] 备份安全与凭据…”
        • mkdir -p $BACKUP_DIR/security
        • cp -a $DOMAIN_HOME/security/DefaultAuthenticatorInit.ldift $BACKUP_DIR/security/ 2>/dev/null || true
        • cp -a $DOMAIN_HOME/servers/AdminServer/security/boot.properties $BACKUP_DIR/security/ 2>/dev/null || true
        • echo “[$(date)] 生成校验值…”
        • sha256sum $BACKUP_DIR/*.tar.gz > $BACKUP_DIR/checksums.sha256
        • echo “[$(date)] 启动域…”
        • $DOMAIN_HOME/bin/startWebLogic.sh
        • echo “[$(date)] 备份完成:$BACKUP_DIR”
    • 定时任务(每日 02:00 执行):
      • 0 2 * * * /opt/scripts/backup_weblogic.sh >> /var/log/weblogic_backup.log 2>&1
  • 日志轮转与清理
    • 使用 logrotate 管理域与应用日志(创建 /etc/logrotate.d/weblogic):
      • /home/weblogic/user_projects/domains/base_domain/logs/*.log {
        • daily
        • rotate 30
        • compress
        • missingok
        • copytruncate
        • dateext
        • }
    • 如需在不停止服务的情况下清理正在写入的日志(如 nohup.out),可先拷贝再清空:
      • 0 0 * * * cp /var/log/weblogic/nohup.out /backup/weblogic/nohup_$(date -d yesterday +%Y%m%d).log; cat /dev/null > /var/log/weblogic/nohup.out
    • 注意:清空日志前务必先备份,避免审计与排障数据丢失

五 注意事项与最佳实践

  • 一致性优先:配置/应用变更窗口内执行离线备份;对包含数据库的域,确保数据库有独立备份与恢复策略,域备份不包含业务数据一致性保证。
  • 凭据与权限:备份与恢复全程注意 boot.propertiesDefaultAuthenticatorInit.ldift 的保密与权限(仅限 weblogic 用户读写)。
  • 校验与演练:定期做恢复演练与校验(校验和、抽样启动、关键业务冒烟测试),确保备份可用。
  • 版本与路径:跨小版本/跨平台恢复需评估 JDKWebLogic 版本兼容性;保持目录结构与用户/权限一致。
  • 远程与离线:关键备份至少保留一份异地/离线副本;对归档与校验文件设置访问控制与定期复核。

0