温馨提示×

Linux WebLogic如何备份数据

小樊
40
2025-12-06 13:42:49
栏目: 智能运维

Linux WebLogic 备份实用指南

一 备份范围与准备

  • 明确范围:WebLogic 的配置与运行时数据主要在域目录(常见路径如:/home/weblogic/Oracle/Middleware/user_projects/domains/<domain_name>//weblogic/domains/<domain_name>/),其中包含 config/data/servers/ 等子目录;应用通常位于 applications/ 或域下的 autodeploy/;日志位于 logs/。外部数据(如 JDBC 指向的数据库)需单独备份。为减少不一致,建议在备份前将受管服务器置于维护模式并停止AdminServer(必要时停整个域)。备份使用的账号需具备读取域目录与数据库的权限。

二 方法一 文件系统冷备份 tar 打包(通用、快速)

  • 步骤
    1. 进入域目录上级并确认路径:cd $DOMAIN_HOME/…;ls $DOMAIN_HOME
    2. 停止服务:
      • 仅停 AdminServer:nohup $DOMAIN_HOME/bin/stopWebLogic.sh &
      • 停整个域:在 $DOMAIN_HOME/bin 执行 ./stopManagedWebLogic.sh <server_name>(逐台),再停 AdminServer。
    3. 打包域目录(示例):
      tar -czvf /backup/weblogic_$(date +%F).tar.gz $DOMAIN_HOME
      如需单独打包关键子目录:
      tar -czvf /backup/weblogic_config_$(date +%F).tar.gz $DOMAIN_HOME/config
      tar -czvf /backup/weblogic_data_$(date +%F).tar.gz $DOMAIN_HOME/data
    4. 可选:备份应用与日志(若不在域目录内):
      tar -czvf /backup/weblogic_apps_$(date +%F).tar.gz /opt/weblogic/…/applications
      tar -czvf /backup/weblogic_logs_$(date +%F).tar.gz $DOMAIN_HOME/logs
    5. 将备份拷贝到安全位置(如异地/对象存储)或做远端拷贝:
      scp /backup/weblogic_$(date +%F).tar.gz user@remote:/backup/
  • 说明:该方式操作简单、可离线保存,适合定期全量备份与迁移;恢复时解压到原路径即可。

三 方法二 数据库与应用数据的备份

  • 数据库:若业务数据在外部数据库(如 Oracle),使用数据库原生工具备份(示例为 Data Pump):
    • 备份:expdp system/password@SID directory=DATA_PUMP_DIR dumpfile=backup_$(date +%F).dmp logfile=expdp_$(date +%F).log
    • 恢复:impdp system/password@SID directory=DATA_PUMP_DIR dumpfile=backup_$(date +%F).dmp logfile=impdp_$(date +%F).log
  • 应用归档:对 WAR/EAR 等可分发包,建议连同版本与校验信息一并归档保存,便于快速回滚与审计。

四 自动化与增量备份

  • Shell 脚本示例(全量打包 + 7 天保留 + 远端拷贝)
    • 备份脚本 backup_weblogic.sh
      #!/bin/bash
      export DOMAIN_HOME=/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain
      export BACKUP_DIR=/backup/weblogic
      export DATE=$(date +%F)
      
      mkdir -p "$BACKUP_DIR"
      
      # 1) 停 AdminServer(可按需扩展停受管服务器)
      "$DOMAIN_HOME/bin/stopWebLogic.sh" >/dev/null 2>&1
      
      # 2) 全量打包域
      tar -czvf "$BACKUP_DIR/domain_${DATE}.tar.gz" "$DOMAIN_HOME"
      
      # 3) 可选:备份外部应用与日志
      # tar -czvf "$BACKUP_DIR/apps_${DATE}.tar.gz" /opt/weblogic/.../applications
      # tar -czvf "$BACKUP_DIR/logs_${DATE}.tar.gz" "$DOMAIN_HOME/logs"
      
      # 4) 启动 AdminServer
      "$DOMAIN_HOME/bin/startWebLogic.sh" >/dev/null 2>&1 &
      
      # 5) 远端拷贝(可选)
      # scp "$BACKUP_DIR/domain_${DATE}.tar.gz" user@remote:/backup/
      
      # 6) 清理 7 天前备份
      find "$BACKUP_DIR" -type f -mtime +7 -delete
      
    • 定时任务(每天 02:00 执行):
      chmod +x /opt/scripts/backup_weblogic.sh
      (crontab -l ; echo “0 2 * * * /opt/scripts/backup_weblogic.sh >> /var/log/backup_weblogic.log 2>&1”) | crontab -
  • 增量备份:对静态内容或归档目录可用 rsync 做增量同步(示例):
    rsync -avz --delete /path/to/domain/ /backup/weblogic/domain_rsync/

五 恢复与验证

  • 文件系统恢复
    1. 停服务:同备份前步骤。
    2. 清理或重命名原域目录,然后解压:
      tar -xzvf /backup/weblogic_YYYY-MM-DD.tar.gz -C /
    3. 启动服务:
      $DOMAIN_HOME/bin/startWebLogic.sh
  • 数据库恢复:使用前述 impdp 导入对应 dmp 文件。
  • 验证要点:登录 Admin Console 检查数据源、部署应用、JVM 参数;抽查关键 config.xmlstartWebLogic.sh;查看 logs/ 启动与错误日志;如涉及集群,逐节点核对。

0