ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Linux WebLogic 14.1.1静默安装与WLST建域实战

Linux WebLogic 14.1.1静默安装与WLST建域实战 上周帮同事在一台内网 CentOS 7 上装 WebLogic 14.1.1.0.0他的第一句话就是我双击安装包没反应命令行敲 java -jar 又报 X11 错误。这其实是 Linux 上装 WebLogic 最典型的开场——服务器根本没有图形界面而你却拿了图形化安装的思路去套。这篇就把 Linux 环境下 WebLogic 14.1.1.0.0 的完整落地过程写透从版本核对、JDK 选型、介质解压、静默安装、WLST 离线建域一直到替换演示证书、systemd 托管和启动失败排查。适合第一次在生产或准生产环境部署中件件的新手也适合装过 12.2.1.4 想直接迁到 14.1.1 的老手对照着看因为 14.1.1 在 JDK 支持和默认安全配置上和 12c 有几个不太好忽略的差别。1. 地基没打对后面全是无用功1.1 为什么版本不匹配会卡在第一步WebLogic 的安装程序和域运行是两个完全独立的 Java 进程它们各自对 JDK 版本都有要求这一点很多人第一次装会混淆。安装程序用的是你指定的那个 JDK通过-jreLoc传进去域跑起来用的是JAVA_HOME指向的 JDK两者不一定是同一个路径。如果你用系统自带的 JDK 7 去跑安装程序会直接在启动阶段抛UnsupportedClassVersionError连欢迎界面都看不到。14.1.1.0.0 支持 JDK 8 和 JDK 11 两条线具体小版本号请以官方认证矩阵为准不要凭记忆拍脑袋。我个人的选择是统一用 JDK 8 的最新小版本把安装和运行指向同一个JAVA_HOME。原因很实际——JDK 11 上跑 WebLogic 虽然被官方认证但第三方组件老版本的 JDBC 驱动、部分国产密码模块、某些 APM Agent对 JDK 11 的模块化限制兼容性参差不齐排查起来非常费时间。如果你是全新项目、组件全是新版本那用 JDK 11 没问题如果是要迁移一套跑了很多年的老应用JDK 8 是阻力最小的路径。还有一个容易踩的细节通用安装包generic不带 JDK你必须先在机器上装好而带 JDK 的那个整合包里的 JDK 只能用来跑安装程序不能拿来跑域很多教程在这里含糊带过导致新手装完发现启动脚本报JAVA_HOME is not set。1.2 操作系统、磁盘与内存的真实底线不要看官方文档里那些最低配置那只是能跑起来的下限实际生产环境给管理节点留 4GB 内存、8GB 以上磁盘空间是基本操作。磁盘这块要特别提醒安装目录、域目录、日志目录尽量放同一个分区因为 WebLogic 会在域目录下持续写日志和服务端临时文件/u01给个 50GB 起步日志量大的系统一天几个 G 很正常。分区规划我一般这么切用途路径建议容量安装介质与临时目录/u01/soft、/u01/tmp10GBORACLE_HOME/u01/app/oracle/product/wls141110GBOracle Inventory/u01/app/oraInventory2GB域目录/u01/app/oracle/domains20GB 起/u01/tmp单独切出来是我吃过亏之后养成的习惯。安装程序默认往/tmp写临时文件而很多云主机/tmp是 tmpfs容量只有内存的一半安装包解出来的东西一多就No space left on device报错信息还特别不直观。用java -Djava.io.tmpdir/u01/tmp显式指定问题就绕过去了。系统参数方面/etc/security/limits.conf里给 oracle 账号放开文件句柄和进程数oracle soft nofile 65536 oracle hard nofile 65536 oracle soft nproc 16384 oracle hard nproc 16384再加一条内核参数写进/etc/sysctl.conf后sysctl -p生效fs.file-max 6815744 net.ipv4.ip_local_port_range 9000 65500注意limits.conf对 systemd 托管的服务是无效的。如果你的 AdminServer 后期交给 systemd 管理必须在 unit 文件里单独写LimitNOFILE65536否则加载大量应用时会出现连接被拒或者奇怪的 IO 异常。这个坑我在两套环境里都遇到过日志里完全看不出和句柄有关。1.3 专用账号与目录规范怎么定别用 root 装。WebLogic 全程以普通账号运行用 root 装出来的文件权限乱七八糟后期打补丁、启停服务都会出问题。创建一个专用账号groupadd -g 54321 oinstall useradd -u 54321 -g oinstall -m -s /bin/bash oracle echo YourStrongPwd | passwd --stdin oracle目录也一次性建好并授权mkdir -p /u01/app/oracle/product/wls1411 /u01/app/oraInventory \ /u01/app/oracle/domains /u01/soft /u01/tmp chown -R oracle:oinstall /u01 chmod -R 775 /u01/app主机名解析这一步千万别跳过。在/etc/hosts里把本机主机名对应到内网 IP192.168.10.21 wlsnode01WebLogic 启动时会做主机名反查如果 DNS 里查不到、hosts 里也没写启动过程可能凭空多等好几分钟看着像卡死其实是在等名字解析超时。时区也顺手统一一下timedatectl set-timezone Asia/Shanghai否则跨时区排查日志时你会想砸键盘。2. 介质准备与解压环节的那些暗坑2.1 通用包和整合包到底选哪个14.1.1.0.0 的安装介质名字很好认fmw_14.1.1.0.0_wls_lite_generic.jar是通用的纯 jar 包跨平台不挑机器但要求你自备 JDKfmw_14.1.1.0.0_wls_lite_Disk1_1of1.zip是带 JDK 的整合包解出来是一个 jar装起来省事但体积大。你手头拿到的包名不一定和我写的一模一样以实际下载的文件为准认准wls字样和版本号就对了。我选通用包理由是部署规范统一所有机器的 JDK 路径、版本都由我一个人控制不会出现这台机器的 WebLogic 自带 8u251、那台自带 8u281这种版本漂移。后期出问题排查时少一个变量就少一半麻烦。下载完先校验别急着装。官网给的 SHA256 或者 MD5 拿出来比对sha256sum /u01/soft/fmw_14.1.1.0.0_wls_lite_generic.jar介质损坏导致的安装失败特别隐蔽可能前 80% 都顺利最后解压某个 jar 时突然报校验失败你会以为是环境问题查半天。2.2 上传、解压和中文文件名乱码用scp或者 SFTP 工具传到/u01/soft然后chown oracle:oinstall交出去。如果是 zip 包用unzip解开su - oracle cd /u01/soft unzip -q fmw_14.1.1.0.0_wls_lite_Disk1_1of1.zip ls -lh这里插一句关于乱码的从 Windows 上打包过来的 zip如果里面带中文文件名的文档或脚本unzip默认按 UTF-8 解释解出来就是一堆问号或者方块。老版本的unzip可以用-O指定编码unzip -O cp936 some-archive.zip部分发行版的unzip编译时没带-O支持那就换成bsdtar -xf some-archive.zip或者装个p7zip用7z x。WebLogic 自己的安装介质文件名全是 ASCII不会乱码但随包附带的说明文档、脚本就不好说了。更彻底的做法是把系统 locale 统一成en_US.UTF-8服务器上跑中间件中文 locale 带来的麻烦远大于便利。另外如果你打算把 response file 之类的配置文件在 Windows 上编辑再传上去务必保存成 LF 换行。CRLF 换行会让安装程序报 Unable to parse the response file 或者干脆读不到字段报错信息里不会告诉你是因为多了个回车符。这个坑我替三个人填过了。2.3 oraInst.loc 和 inventory 目录的角色WebLogic 安装程序底层是 Oracle Universal Installer它需要在系统里登记一个 inventory 目录记录这台机器上装过哪些 Oracle 产品。所以你要准备一个oraInst.locinventory_loc/u01/app/oraInventory inst_groupoinstallinventory_loc指定的目录由安装程序自己创建你不用提前 mkdir但它的父目录必须对 oracle 可写。inst_group填 oracle 账号所在的主组。如果这台机器上已经装过 Oracle 数据库或者其他 Oracle 产品那就直接复用已有的/etc/oraInst.loc别另起炉灶否则可能出现两套 inventory 互相看不见的情况打补丁的时候会非常难受。3. 静默安装不用图形界面也能一次装完3.1 为什么我强烈建议走 -silent图形化安装不是不能用前提是你得在服务器上装 X11 转发或者 VNC。为了装一次中间件去装一套桌面环境性价比太低而且图形界面安装有个毛病——它会把你在界面上点的每一步都记录下来但你在生产上做第二次、第三次的时候谁也不会记得上次勾了哪个复选框。静默安装的好处是可复现。response file 就是一份配置清单版本管理里存一份下次装另一台机器直接改路径就能用装 10 台和装 1 台的操作完全一致。这也是我做交付时坚持的原则能写成文件的东西绝不靠鼠标点。3.2 response file 逐行拆解新建/u01/soft/wls.rsp[ENGINE] Response File Version1.0.0.0.0 [GENERIC] ORACLE_HOME/u01/app/oracle/product/wls1411 INSTALL_TYPEWebLogic Server DECLINE_SECURITY_UPDATEStrue SECURITY_UPDATES_VIA_MYORACLESUPPORTfalse MYORACLESUPPORT_USERNAME MYORACLESUPPORT_PASSWORD逐条说清楚ORACLE_HOME是安装目标目录路径里绝对不能有空格也不能是已经存在的非空目录否则会报目录冲突。INSTALL_TYPE在通用包里就是WebLogic Server如果你下的是 FMW 整合包可选值会更多不要乱填。DECLINE_SECURITY_UPDATEStrue是静默安装的关键如果不写这一行安装程序会尝试交互式地询问是否接收安全更新静默模式下没人应答进程直接挂住或者报错退出。后面两个 My Oracle Support 的账号字段留空就行静默模式不接受在线更新。文件权限也要给对chmod 600 wls.rsp因为里面将来可能会填账号密码。3.3 安装命令与返回码解读切换到 oracle 账号执行su - oracle export JAVA_HOME/usr/java/jdk1.8.0_251 cd /u01/soft $JAVA_HOME/bin/java -Djava.io.tmpdir/u01/tmp \ -jar fmw_14.1.1.0.0_wls_lite_generic.jar \ -silent \ -responseFile /u01/soft/wls.rsp \ -invPtrLoc /u01/soft/oraInst.loc \ -jreLoc $JAVA_HOME \ -logLevel fine \ -log /u01/soft/wls_install.log几个参数值得说明。-jreLoc告诉安装程序用哪个 JDK通用包必须传不传会报找不到运行环境。-invPtrLoc指向刚才写的oraInst.loc如果这个文件在/etc/oraInst.loc其实可以省略。-logLevel fine比默认的 info 更啰嗦但排查阶段这点日志量完全值得装完再换回来也不迟。装完之后立刻看返回码和日志echo $? grep -i completed successfully /u01/soft/wls_install.log tail -50 /u01/soft/wls_install.log返回码 0 不等于装成功一定要在日志里看到明确的成功字样。我见过返回 0 但实际没装全的情况原因是磁盘 quota 限制导致部分文件写入失败安装程序只打了 warning 就继续走到结束了。3.4 安装日志与失败后的清理安装日志除了你指定的那个安装程序还会在 inventory 目录下写logs子目录路径大概是/u01/app/oraInventory/logs/里面有带时间戳的installActions*.log出问题时这个文件信息量更大里面能看到每一步执行了哪个命令、返回什么。如果安装失败了要重来步骤是先跑卸载脚本清掉残留再手工删掉 ORACLE_HOME 目录最后还要检查/u01/app/oraInventory/ContentsXML/inventory.xml里的登记项是否清干净了。卸载脚本位置/u01/app/oracle/product/wls1411/oui/bin/deinstall.sh如果没有这个路径用find $ORACLE_HOME -name deinstall.sh找一下不同包结构的路径不完全一样。千万不要只删目录不跑卸载inventory 里留着的一个幽灵登记项会让你后续装补丁时报 the home is not registered。4. 用 WLST 离线建域比图形向导稳得多4.1 模板文件在哪里该选哪个建域的第一步是找到域模板。14.1.1 里最基础的那个模板是/u01/app/oracle/product/wls1411/wlserver/common/templates/wls/wls.jar用ls看一眼这个目录你会看到 wls.jar、wls_restricted.jar 之类的文件。绝大多数场景用wls.jar就够了它包含了完整的 WebLogic Server 功能和示例应用。注意建域的时候不要用安装目录里的模板去改模板文件只读WLST 的readTemplate是把它读进内存你所有的cd和set操作都作用在内存对象上最后writeDomain才落盘。4.2 端口、监听地址与启动模式的设置写一个建域脚本/u01/soft/create_domain.pytemplate /u01/app/oracle/product/wls1411/wlserver/common/templates/wls/wls.jar domain_home /u01/app/oracle/domains/base_domain readTemplate(template) # 管理服务器监听配置 cd(/Servers/AdminServer) set(ListenAddress, 0.0.0.0) set(ListenPort, 7001) # 管理员口令 cd(/Security/base_domain/User/weblogic) cmo.setPassword(YourStrongPwd123) # 域级选项 setOption(DomainName, base_domain) setOption(OverwriteDomain, true) setOption(ServerStartMode, prod) writeDomain(domain_home) closeTemplate() exit()执行cd /u01/app/oracle/product/wls1411/wlserver/common/bin ./wlst.sh /u01/soft/create_domain.py这里有两个点值得展开。ListenAddress设成0.0.0.0表示监听所有网卡方便横向访问如果你只允许本机或者特定网段访问控制台改成具体 IP 更安全这比装完之后再上网关策略要省事。ServerStartMode设成prod会启用生产模式关掉自动部署、打开更高的安全检查开发环境用dev可以省掉很多证书和部署确认的麻烦但绝对不要把 dev 模式的域推到对外环境。关于cd(/Security/base_domain/User/weblogic)这个路径这里的base_domain是模板里默认的安全 Realm 名称跟你要建的新域名不是一回事。如果你换用了别的模板或者路径报Path not found先在 WLST 里敲一句ls(/Security)把实际的 Realm 名看一眼再拼路径这个技巧比死记硬背路径靠谱得多。4.3 启动脚本与口令文件的处理域建好之后$DOMAIN_HOME/bin下会有一堆脚本。启动前先处理口令文件避免每次启动都交互式输入用户名密码mkdir -p /u01/app/oracle/domains/base_domain/servers/AdminServer/security cat /u01/app/oracle/domains/base_domain/servers/AdminServer/security/boot.properties EOF usernameweblogic passwordYourStrongPwd123 EOF chmod 600 /u01/app/oracle/domains/base_domain/servers/AdminServer/security/boot.properties这个文件是明文存储的所以权限必须锁死成 600。WebLogic 第一次启动成功后会把它重写成加密形式你再看内容就是{AES}...开头的一串东西了这是正常现象不用慌。启动之前内存参数先卡一下。我习惯不直接改setDomainEnv.sh而是写一个自己的启动包装脚本因为改setDomainEnv.sh在打补丁或者升级时容易被覆盖包装脚本则永远在你的控制之下cat /u01/app/oracle/domains/base_domain/bin/start_wls.sh EOF #!/bin/bash export JAVA_HOME/usr/java/jdk1.8.0_251 export LANGen_US.UTF-8 export USER_MEM_ARGS-Xms1024m -Xmx2048m -XX:MaxMetaspaceSize512m export JAVA_OPTIONS${JAVA_OPTIONS} -Dfile.encodingUTF-8 exec /u01/app/oracle/domains/base_domain/bin/startWebLogic.sh EOF chmod 755 /u01/app/oracle/domains/base_domain/bin/start_wls.sh-Dfile.encodingUTF-8这一条经常被忽略。服务器 locale 是 POSIX 或者 C 的时候WebLogic 会用 ASCII 处理字符串中文日志全变成问号而且这种问题在应用层排查起来极其隐蔽——你会以为是代码编码问题其实是 JVM 的默认字符集在捣鬼。4.4 控制台验证与节点管理器启动起来之后看日志判断是否成功tail -f /u01/app/oracle/domains/base_domain/servers/AdminServer/logs/AdminServer.log看到类似Server state changed to RUNNING的字样就说明起来了。浏览器打开http://192.168.10.21:7001/console用 weblogic 和刚才设的口令登录。如果你后面要用受管服务器节点管理器Node Manager也得配一下默认监听 5556 端口/u01/app/oracle/domains/base_domain/bin/startNodeManager.sh tail -f /u01/app/oracle/domains/base_domain/nodemanager/nodemanager.log节点管理器里有一个nm_password.properties文件存放的是 Node Manager 自己的一套用户名密码和 WebLogic 管理员口令是两回事配置受管服务器时不要填错。5. demoidentity.jks 的分水岭能跑 ≠ 能用5.1 演示身份口令到底是什么新建域的时候如果你选了 Demo Identity and Demo Trust域目录下会生成DemoIdentity.jks和DemoTrust.jks两个密钥库用来支撑 HTTPS 和进程间 SSL 通信。它们的口令是产品内置的固定默认值具体值可以在域的config.xml里看到也可以在管理控制台的 SSL 配置页里查到。很多人搜这个口令本质上是想在别的组件里对接同一个密钥库。这里必须把话说清楚这套演示证书和口令只适合开发和自测。原因有三层。第一口令是公开的、所有部署实例都一样的等于没设防。第二证书是自签的任何客户端连上来都不会验证通过浏览器一直弹安全警告还算轻的两边都开了双向认证时直接握手失败。第三域之间、域与数据库之间的 SSL 通信如果都用同源证书一旦某台机器被暴露横向影响面就控制不住了。注意把演示密钥库直接搬到生产或者手工去改DemoIdentity.jks的口令都不是正确做法。正确做法是生成你自己的密钥库然后在域配置里把身份库和信任库整个换掉。5.2 替换成自签证书的完整流程我用一套自签证书演示替换过程内部系统足够用了。先在域目录下准备一个专属目录用keytool生成密钥对注意用的必须是 WebLogic 运行的那个 JDK 自带的 keytoolexport JAVA_HOME/usr/java/jdk1.8.0_251 cd /u01/app/oracle/domains/base_domain mkdir -p security/custom $JAVA_HOME/bin/keytool -genkeypair \ -alias wls-identity \ -keyalg RSA -keysize 2048 \ -validity 3650 \ -keystore security/custom/identity.jks \ -storetype JKS \ -storepass CustomStorePwd123 \ -keypass CustomStorePwd123 \ -dname CNwlsnode01, OUMiddleware, OInternal, LBeijing, STBeijing, CCN \ -ext SANdns:wlsnode01,dns:localhost,ip:192.168.10.21-ext SAN这一段是重点而且是我见过最容易漏的一项。现代客户端校验主机名时看的是 SAN 扩展不再看 CN。少了 SAN即使证书本身没问题浏览器和 Java 客户端依然会报主机名不匹配。把真实主机名、localhost 和业务 IP 都塞进去能省掉后面一大堆联调麻烦。导出证书并导入到自己的信任库$JAVA_HOME/bin/keytool -exportcert -alias wls-identity \ -keystore security/custom/identity.jks \ -storepass CustomStorePwd123 \ -rfc -file security/custom/wls-identity.cer $JAVA_HOME/bin/keytool -importcert -alias wls-identity \ -keystore security/custom/trust.jks \ -storepass CustomStorePwd123 \ -noprompt -file security/custom/wls-identity.cer然后把文件权限收一下chmod 600 security/custom/*.jks属主保持 oracle。5.3 改完 SSL 配置后必须验证的几件事密钥库文件放好之后打开控制台进到base_domain- 安全 - 密钥库把 Keystore 从演示库切换成自定义库填入文件绝对路径、类型 JKS、口令再进到 SSL 页面把身份密钥别名设为wls-identity。改完必须重启 AdminServer 才会生效热改是不生效的。重启之后按这个顺序验证一步都不能跳用keytool -list -v -keystore identity.jks确认别名和有效期确实是你刚生成的浏览器访问https://192.168.10.21:7001/console确认证书指纹和主机名都对得上打开 AdminServer 的 SSL 调试开关启动参数加-Dweblogic.security.SSL.verbosetrue看一次握手日志里用的是不是自定义库如果域里有受管服务器把同一套配置同步过去否则节点之间通信会因为信任库不一致而失败。第 3 步看着啰嗦但它能避免一个很坑的场景配置看起来改对了实际运行还在用演示库因为某个地方残留了旧配置。不打开 verbose 日志你根本发现不了。6. 启动失败与性能问题的排查链路6.1 端口、内存、文件句柄这三类问题的高发率我把近两年遇到的启动失败案例拉了一下八成以上落在三个圈子里。现象大概率原因定位方式启动日志停在Starting WebLogic Server不动主机名无法解析hostname与/etc/hosts对照报Address already in use7001 或 5556 被占用ss -lntp | grep 7001报OutOfMemoryError或启动中途退出堆内存或 Metaspace 不足看USER_MEM_ARGS是否生效加载应用时报Too many open files文件句柄不够ulimit -n、systemd 的LimitNOFILE启动过程异常缓慢但最终成功随机数熵池不足cat /proc/sys/kernel/random/entropy_avail熵池这个问题值得多说一句。WebLogic 启动时要生成大量随机数用于 SSL 初始化如果机器的/proc/sys/kernel/random/entropy_avail长期低于 200/dev/random会阻塞启动能拖到十几分钟。解决办法是在启动参数里加-Djava.security.egdfile:/dev/./urandom注意这里写成/dev/./urandom那个中间的点不是笔误是为了绕过 JDK 内部对/dev/random的硬编码替换逻辑写成/dev/urandom在某些 JDK 版本上是不生效的。6.2 按什么顺序看日志最省时间WebLogic 的日志散落在好几个地方顺序搞错了会白翻半天。我的固定顺序是先看启动脚本的 stdout也就是你前台运行时屏幕上刷出来的东西它包含 JVM 层面的报错比如参数错误、类路径问题再看servers/AdminServer/logs/AdminServer.log这是服务端主日志最后才看$DOMAIN_HOME/servers/AdminServer/logs/access.log和各种诊断日志。用 grep 缩小范围比通读有效得多cd /u01/app/oracle/domains/base_domain grep -nE ERROR|Exception|Caused by servers/AdminServer/logs/AdminServer.log | head -30Caused by才是真正的根因前面那一层异常往往只是包装。这是个非常实用的习惯尤其是在异常栈有十几层的时候。6.3 中文乱码与 locale 的连带影响前面提过-Dfile.encoding这里补充它的连带影响。JVM 默认字符集不对的时候不只是日志乱码还会影响应用的配置文件读取比如 properties 文件里写的中文配置项变成乱码文件上传下载的文件名处理以及和管理控制台之间的一些表单提交。表现千奇百怪但根因就一个。排查方法很简单在域目录下执行$JAVA_HOME/bin/java -XshowSettings:properties -version 21 | grep -i file.encoding\|sun.jnu.encoding只要file.encoding不是 UTF-8就按前面说的方式在启动参数里补上。另外sun.jnu.encoding跟系统 locale 走服务器上建议统一设成en_US.UTF-8不要用C或者POSIX。7. 交给 systemd 托管把启动这件事规范化7.1 unit 文件的写法和几个关键参数手工敲nohup ... 只适合临时验证正式环境还是要交给 systemd这样机器重启之后服务能自动拉起来日志也能统一收口。新建/etc/systemd/system/wls-admin.service[Unit] DescriptionOracle WebLogic AdminServer (base_domain) Afternetwork-online.target Wantsnetwork-online.target [Service] Typesimple Useroracle Groupoinstall EnvironmentJAVA_HOME/usr/java/jdk1.8.0_251 EnvironmentLANGen_US.UTF-8 EnvironmentUSER_MEM_ARGS-Xms1024m -Xmx2048m -XX:MaxMetaspaceSize512m LimitNOFILE65536 TimeoutStopSec180 Restarton-failure RestartSec30 ExecStart/u01/app/oracle/domains/base_domain/bin/start_wls.sh ExecStop/u01/app/oracle/domains/base_domain/bin/stopWebLogic.sh [Install] WantedBymulti-user.target几个参数是踩过坑之后加的。Afternetwork-online.target而不是network.target因为后者只表示网络子系统初始化完成不保证网卡拿到 IPWebLogic 起来时如果网卡还没就绪会绑定失败。TimeoutStopSec180是因为默认 90 秒对 WebLogic 不够用一次完整的优雅关闭要等应用里的资源全部释放超时会被强杀下次启动就得做恢复。LimitNOFILE前面强调过了systemd 不读limits.conf。生效命令systemctl daemon-reload systemctl enable --now wls-admin systemctl status wls-admin journalctl -u wls-admin -f7.2 日常巡检和备份该盯哪几个点服务跑起来之后运维动作要固定下来。我自己的巡检清单是四条磁盘使用率df -h /u01日志增长最凶、AdminServer.log里的 ERROR 计数、JVM 堆使用情况通过控制台或者 JMX 看、以及最近的补丁版本。补丁这块用 OPatch 查export ORACLE_HOME/u01/app/oracle/product/wls1411 $ORACLE_HOME/OPatch/opatch lspatches打补丁前必须先停域、备份 ORACLE_HOME 和域目录尤其是$DOMAIN_HOME/config/config.xml这是域的核心描述文件出问题时它是你最快的恢复依据。备份命令很朴素但很好用tar czf /u01/backup/base_domain_$(date %F).tar.gz \ -C /u01/app/oracle/domains base_domain \ --excludebase_domain/servers/*/logs \ --excludebase_domain/servers/*/tmp排除日志和临时目录能把备份体积压下去一大截恢复的时候这两个目录本来也会重新生成。我个人在实际操作中的体会是WebLogic 在 Linux 上的安装本身并不复杂复杂的永远是那些环境差异JDK 版本、主机名解析、文件句柄、字符集。把这几项在装之前一次性核对清楚整个流程从建账号到控制台登录一小时之内能收工而如果跳过核对直接开装同样的流程可能要耗掉一整天甚至更久。所以每次上手新机器我都会先把hostname -f、java -version、ulimit -n、df -h、cat /etc/hosts这五条命令敲一遍看着简单但能挡掉后面九成的麻烦。
返回列表