Ubuntu上WebLogic的备份与恢复方法
导读:Ubuntu上WebLogic的备份与恢复方法 一 备份策略与准备 明确关键目录与版本:记录DOMAIN_HOME(如:/home/weblogic/user_projects/domains/base_domain)、WL_HOME(如...
Ubuntu上WebLogic的备份与恢复方法
一 备份策略与准备
- 明确关键目录与版本:记录DOMAIN_HOME(如:/home/weblogic/user_projects/domains/base_domain)、WL_HOME(如:/home/weblogic/Oracle/Middleware/wlserver_10.3)、WebLogic版本与已安装补丁,便于恢复时对齐环境。
- 选择备份窗口与通知业务:在低峰时段执行,避免影响线上。
- 准备存储与权限:确保备份目录(如:/opt/backup_weblogic)有足够空间,备份用户对域目录与备份目录具备读写权限。
- 规划保留策略:例如保留7–30天历史备份,按日期命名归档。
- 数据库单独备份:应用状态通常依赖数据库,恢复时先恢复数据库,再启动WebLogic。
- 备份前尽量停止目标域/Server,减少文件变更导致的不一致。
二 方法A 手动打包域目录(通用、快速)
- 停止WebLogic(任一Server或整个域):
- 进入域目录执行:
- 停整个域:./bin/stopWebLogic.sh
- 仅停受管端:./bin/stopManagedWebLogic.sh < managed_server_name> http://< admin_host> :< admin_port>
- 进入域目录执行:
- 打包域目录(强烈建议排除缓存与临时目录):
- 示例:
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) - 如需连同安装主目录一起备份(体积大,适合迁移/大版本变更前):
WL_HOME=/home/weblogic/Oracle/Middleware tar -czf $BACKUP_DIR/middleware_bak_$DATE.tar.gz -C $(dirname $WL_HOME) $(basename $WL_HOME) - 可选:备份补丁目录(如存在):
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
- 示例:
- 启动WebLogic:
- 管理端:nohup ./bin/startWebLogic.sh &
- 受管端:nohup ./bin/startManagedWebLogic.sh < managed_server_name> http://< admin_host> :< admin_port> &
- 说明:手动打包适合快速整机恢复;为减少体积与提升一致性,建议排除servers/*/cache与servers/*/tmp。
三 方法B 使用WLST导出导入域配置(更“干净”,便于迁移)
- 导出配置(在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 - 恢复配置(到新环境或同版本域):
$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" > /devref/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" | sudo tee /etc/cron.d/backup_weblogic - 说明:脚本化便于一致性与可审计;按业务与存储情况调整KEEP_DAYS。
五 恢复流程与验证
- 恢复流程(手动打包方案):
- 建议先停域:./bin/stopWebLogic.sh
- 将备份归档解压至原DOMAIN_HOME父目录(保持目录结构一致):
tar -xzf /opt/backup_weblogic/domain_bak_YYYY-MM-DD_HHMMSS.tar.gz -C /home/weblogic/user_projects/domains - 启动域:nohup ./bin/startWebLogic.sh & (受管端按需启动)。
- 恢复流程(WLST方案):
- 确保目标环境已安装同版本WebLogic并创建同名域(或使用空域),然后导入配置并启动。
- 验证要点:
- 访问管理控制台,核对数据源、部署、集群/服务器等关键配置是否恢复。
- 检查AdminServer与受管端日志,确认无启动异常。
- 执行业务冒烟测试,确认应用可用。
- 补充:
- 若仅需归档日志,可使用logrotate或定时任务对域目录下的logs进行轮转与压缩备份。
- 如遇到忘记控制台密码且无法登录,可在备份关键安全文件后,按官方思路使用weblogic.security.utils.AdminAccount重建DefaultAuthenticatorInit.ldift并重置boot.properties,再启动域完成密码恢复(操作前务必完整备份)。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu上WebLogic的备份与恢复方法
本文地址: https://pptw.com/jishu/782375.html
