温馨提示×

Ubuntu如何备份WebLogic数据

小樊
39
2025-11-15 02:07:29
栏目: 智能运维

Ubuntu下备份WebLogic数据的实用方案

一、备份范围与准备

  • 明确范围:WebLogic的核心备份对象是域目录 $DOMAIN_HOME(含配置、部署、运行时文件),如使用外部数据库需单独备份数据库;补丁目录(如 $MW_HOME/utils/bsu/cache_dir)建议一并纳入备份。
  • 准备动作:确认 $DOMAIN_HOME(常见如:/home/weblogic/Oracle/Middleware/user_projects/domains/<你的域>)与 $MW_HOME 路径;准备备份存储目录(如 /backup/weblogic);确保执行用户对相关目录有读权限,必要时使用 sudo;为降低一致性风险,建议在维护窗口或确保应用可短时停机时执行全量备份。
  • 注意:备份不等同于高可用,关键业务请结合数据库备份与多副本存储策略。

二、手动备份步骤

  • 停止服务(推荐):进入域目录执行停止脚本,避免运行中备份导致配置/部署状态不一致。
    命令示例:
    cd $DOMAIN_HOME/bin
    ./stopWebLogic.sh
  • 备份域目录:将整个域目录打包压缩到备份目录。
    命令示例:
    mkdir -p /backup/weblogic
    tar -czvf /backup/weblogic/domain_$(date +%F).tar.gz -C $DOMAIN_HOME .
  • 仅备份配置目录(可选,便于快速回滚配置):
    命令示例:
    tar -czvf /backup/weblogic/config_$(date +%F).tar.gz -C $DOMAIN_HOME config
  • 备份应用与补丁(可选):
    命令示例:
    tar -czvf /backup/weblogic/apps_$(date +%F).tar.gz -C $DOMAIN_HOME applications
    tar -czvf /backup/weblogic/patches_$(date +%F).tar.gz $MW_HOME/utils/bsu/cache_dir
  • 备份数据库(如使用外部数据库):使用数据库自带工具(如 Oracle Data Pump)进行逻辑导出
    命令示例:
    expdp system/password@SID directory=DATA_PUMP_DIR dumpfile=weblogic_$(date +%F).dmp logfile=expdp_$(date +%F).log
  • 启动服务:
    命令示例:
    cd $DOMAIN_HOME/bin
    ./startWebLogic.sh
  • 说明:上述路径与命令结构与在 CentOS/Debian 上的做法一致,Ubuntu 下同样适用;如使用 nohup 启动,日志文件(如 nohup.out)可按日轮转归档,避免单文件过大。

三、自动化备份脚本与定时任务

  • 备份脚本示例(含保留策略与可选数据库导出):
    #!/usr/bin/env bash
    set -e
    
    export DOMAIN_HOME="/home/weblogic/Oracle/Middleware/user_projects/domains/base_domain"
    export MW_HOME="/home/weblogic/Oracle/Middleware"
    BACKUP_DIR="/backup/weblogic"
    KEEP_DAYS=7
    DATE_TAG=$(date +%F)
    
    mkdir -p "$BACKUP_DIR"
    
    # 1) 停止服务
    "$DOMAIN_HOME/bin/stopWebLogic.sh"
    
    # 2) 备份域目录
    tar -czvf "$BACKUP_DIR/domain_${DATE_TAG}.tar.gz" -C "$DOMAIN_HOME" .
    
    # 3) 可选:仅备份配置
    tar -czvf "$BACKUP_DIR/config_${DATE_TAG}.tar.gz" -C "$DOMAIN_HOME" config
    
    # 4) 可选:备份应用与补丁
    tar -czvf "$BACKUP_DIR/apps_${DATE_TAG}.tar.gz" -C "$DOMAIN_HOME" applications
    tar -czvf "$BACKUP_DIR/patches_${DATE_TAG}.tar.gz" "$MW_HOME/utils/bsu/cache_dir"
    
    # 5) 可选:数据库导出(取消注释并按需修改)
    # mkdir -p "$BACKUP_DIR/db"
    # expdp system/password@SID directory=DATA_PUMP_DIR \
    #   dumpfile=weblogic_${DATE_TAG}.dmp logfile=expdp_${DATE_TAG}.log
    
    # 6) 启动服务
    "$DOMAIN_HOME/bin/startWebLogic.sh"
    
    # 7) 清理过期备份
    find "$BACKUP_DIR" -type f -name "*.tar.gz" -mtime +${KEEP_DAYS} -delete
    
  • 赋予执行权限并加入 crontab(如每天 02:00 执行):
    chmod +x /opt/scripts/backup_weblogic.sh
    crontab -e
    0 2 * * * /opt/scripts/backup_weblogic.sh >> /var/log/weblogic_backup.log 2>&1
  • 说明:脚本中停止/启动与打包命令与上一节一致;可按需启用数据库导出与保留天数;日志建议落盘以便审计。

四、恢复步骤与验证

  • 停止服务:
    cd $DOMAIN_HOME/bin
    ./stopWebLogic.sh
  • 恢复域目录(覆盖式):
    tar -xzvf /backup/weblogic/domain_YYYY-MM-DD.tar.gz -C /
  • 仅恢复配置(可选):
    tar -xzvf /backup/weblogic/config_YYYY-MM-DD.tar.gz -C $DOMAIN_HOME
  • 恢复应用与补丁(可选):
    tar -xzvf /backup/weblogic/apps_YYYY-MM-DD.tar.gz -C $DOMAIN_HOME
    tar -xzvf /backup/weblogic/patches_YYYY-MM-DD.tar.gz -C $MW_HOME/utils/bsu/
  • 恢复数据库(如使用外部数据库):
    impdp system/password@SID directory=DATA_PUMP_DIR dumpfile=weblogic_YYYY-MM-DD.dmp logfile=impdp_YYYY-MM-DD.log
  • 启动并验证:
    ./startWebLogic.sh
    登录 Admin Console 检查数据源、部署应用、监听端口与关键配置是否恢复;抽查日志与业务功能可用性。

五、日志与日常维护建议

  • 日志轮转与清理:对 nohup.out 等运行日志按日归档并定期清理,避免磁盘被单一大文件占满。
    示例(每日归档、每周打包清理):
    0 0 * * * cp /path/nohup.out /bak/nohup.$(date -d yesterday +%Y%m%d).log && cat /dev/null > /path/nohup.out
    0 1 * * 0 cd /bak && tar cvf nohup.$(date -d yesterday +%Y%U).tar *.log && find . -mtime +91 -delete
  • 远程与增量备份:本地备份完成后,可用 rsync 将备份目录增量同步到远程主机或NAS/对象存储,提升容灾能力。
    示例:rsync -avz --delete /backup/weblogic/ user@backup-server:/backup/weblogic/
  • 备份校验与演练:定期做恢复演练校验和/还原测试,确保备份可用;为关键系统配置多副本异地存储。

0