温馨提示×

如何在ubuntu上备份weblogic

小樊
35
2025-11-23 01:28:52
栏目: 智能运维

Ubuntu上备份WebLogic的可执行方案

一、备份前准备

  • 确认关键目录与版本信息:记录DOMAIN_HOME(如:/home/weblogic/user_projects/domains/base_domain)、WL_HOME(如:/home/weblogic/Oracle/Middleware/wlserver_10.3)、控制台版本与已安装补丁列表(便于恢复时对齐版本)。
  • 选择备份窗口并通知业务方:在低峰时段执行,避免影响线上。
  • 准备存储与权限:确保备份目录(如:/opt/backup_weblogic)有足够空间,备份用户具备对域目录与备份目录的读写权限
  • 规划保留策略:例如保留7–30天的历史备份,按日期命名归档。
  • 如涉及数据库:数据库需单独备份(与WebLogic域备份分开),恢复时先恢复数据库,再启动WebLogic。

二、推荐的备份方法

  • 方法A 手动打包域目录(通用、快速)
    1. 停止WebLogic(任一Server或整个域):
      • 进入域目录执行:
        • ./bin/stopWebLogic.sh(后台日志可重定向到nohup.out)
        • 或仅停管理端:
          ./bin/stopManagedWebLogic.sh <managed_server_name> http://<admin_host>:<admin_port>
    2. 打包域目录(强烈建议排除缓存与临时目录):
      DOMAIN_HOME=/home/weblogic/user_projects/domains/base_domain
      BACKUP_DIR=/opt/backup_weblogic
      DATE=$(date +%F_%H%M%S)
      mkdir -p $BACKUP_DIR
      
      tar -czf $BACKUP_DIR/domain_bak_$DATE.tar.gz \
          --exclude=$DOMAIN_HOME/servers/*/cache \
          --exclude=$DOMAIN_HOME/servers/*/tmp \
          -C $(dirname $DOMAIN_HOME) $(basename $DOMAIN_HOME)
      
    3. 如需连同安装主目录一起备份(体积大,适合迁移/大版本变更前):
      WL_HOME=/home/weblogic/Oracle/Middleware
      tar -czf $BACKUP_DIR/middleware_bak_$DATE.tar.gz -C $(dirname $WL_HOME) $(basename $WL_HOME)
      
    4. 可选:备份补丁目录(如存在):
      BSU_DIR=$WL_HOME/utils/bsu
      [ -d $BSU_DIR/cache_dir ] && tar -czf $BACKUP_DIR/bsu_cache_$DATE.tar.gz -C $BSU_DIR cache_dir
      
    5. 启动WebLogic:
      • 管理端:
        nohup ./startWebLogic.sh &
      • 受管端:
        nohup ./startManagedWebLogic.sh <managed_server_name> http://<admin_host>:<admin_port> &
  • 方法B 使用WLST导出/导入域配置(更“干净”,便于迁移)
    1. 导出配置(在WL_HOME/common/bin下执行):
      $WL_HOME/common/bin/wlst.sh <<'EOF'
      connect('weblogic','YourPassword','t3://localhost:7001')
      exportDomain('/opt/backup_weblogic/domain_config_$(date +%F).xml', includeAuditInfo=false)
      exit()
      EOF
      
    2. 恢复配置(到新环境或同版本域):
      $WL_HOME/common/bin/wlst.sh <<'EOF'
      connect('weblogic','YourPassword','t3://localhost:7001')
      readDomain('/home/weblogic/user_projects/domains/base_domain')
      importDomain('/opt/backup_weblogic/domain_config_YYYY-MM-DD.xml')
      updateDomain()
      closeDomain()
      exit()
      EOF
      
    说明:WLST方式以配置为主,通常仍需配合应用归档与数据库备份完成完整恢复。

三、自动化与保留策略

  • 备份脚本示例(含校验与清理):
    #!/usr/bin/env bash
    set -Eeuo pipefail
    
    DOMAIN_HOME=/home/weblogic/user_projects/domains/base_domain
    WL_HOME=/home/weblogic/Oracle/Middleware
    BACKUP_DIR=/opt/backup_weblogic
    DATE=$(date +%F_%H%M%S)
    KEEP_DAYS=7
    
    mkdir -p "$BACKUP_DIR"
    
    # 1) 停域
    "$DOMAIN_HOME/bin/stopWebLogic.sh" >/dev/null 2>&1 || true
    
    # 2) 打包域(排除缓存与临时)
    tar -czf "$BACKUP_DIR/domain_bak_$DATE.tar.gz" \
        --exclude="$DOMAIN_HOME/servers/*/cache" \
        --exclude="$DOMAIN_HOME/servers/*/tmp" \
        -C "$(dirname "$DOMAIN_HOME")" "$(basename "$DOMAIN_HOME")"
    
    # 3) 可选:打包补丁
    if [ -d "$WL_HOME/utils/bsu/cache_dir" ]; then
      tar -czf "$BACKUP_DIR/bsu_cache_$DATE.tar.gz" -C "$WL_HOME/utils/bsu" cache_dir
    fi
    
    # 4) 启动域
    nohup "$DOMAIN_HOME/bin/startWebLogic.sh" >/dev/null 2>&1 &
    
    # 5) 清理旧备份
    find "$BACKUP_DIR" -name "domain_bak_*.tar.gz" -mtime +$KEEP_DAYS -delete
    find "$BACKUP_DIR" -name "bsu_cache_*.tar.gz" -mtime +$KEEP_DAYS -delete
    
  • 定时任务(每天02:00执行):
    chmod +x /opt/scripts/backup_weblogic.sh
    echo "0 2 * * * /opt/scripts/backup_weblogic.sh >> /var/log/backup_weblogic.log 2>&1" | sudo tee -a /etc/crontab
    
  • 建议:保留至少7天;关键环境可保留30天并做异地/离线拷贝。

四、恢复步骤与注意事项

  • 恢复流程
    1. 停止WebLogic(同上)。
    2. 恢复域目录(与方法A对应):
      tar -xzf /opt/backup_weblogic/domain_bak_YYYY-MM-DD_HHMMSS.tar.gz -C /
      
    3. 如做了全安装目录备份,也可恢复:
      tar -xzf /opt/backup_weblogic/middleware_bak_YYYY-MM-DD_HHMMSS.tar.gz -C /
      
    4. 如采用WLST导入配置:先创建空域或读取现有域,再执行importDomain并updateDomain。
    5. 启动WebLogic并观察日志:
      tail -f $DOMAIN_HOME/servers/AdminServer/logs/AdminServer.log
      
  • 注意事项
    • 备份与恢复期间保持版本一致(WebLogic主版本与补丁级别)。
    • 数据库必须单独备份与恢复,且先于WebLogic启动。
    • 不建议备份或恢复cache、tmp等运行时目录,避免脏数据与启动异常。
    • 对归档文件做定期恢复演练完整性校验(如校验tar.gz、抽查关键配置文件)。

0