《Linux下使用Oracle和WebLogic经验总结》
一、引言
在Linux环境下部署Oracle数据库与WebLogic应用服务器是企业级应用中的常见组合。Oracle作为关系型数据库的标杆,结合WebLogic的Java EE容器能力,能够支撑高并发、高可用的业务系统。本文结合笔者多年实践经验,从环境准备、安装配置、性能调优到故障处理,系统梳理Linux下Oracle与WebLogic的协同使用要点。
二、环境准备与安装
1. Linux系统选型与优化
推荐使用RHEL/CentOS 7+或Oracle Linux,需确保内核版本支持异步I/O(AIO)和大页内存(HugePages)。系统参数调整示例:
# 修改/etc/sysctl.conf
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 536870912
kernel.shmmni = 4096
vm.swappiness = 10
2. Oracle数据库安装
(1)依赖包安装:
yum install -y binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel libXi libXtst make sysstat unixODBC unixODBC-devel
(2)创建Oracle用户组与用户:
groupadd oinstall
groupadd dba
useradd -g oinstall -G dba oracle
(3)图形化安装注意事项:
需配置X11转发(ssh -X)或使用VNC,安装目录建议采用/u01/app/oracle标准结构。响应文件(responseFile)可自动化安装过程。
3. WebLogic安装配置
(1)JDK环境要求:
推荐使用Oracle JDK 1.8或11,需配置JAVA_HOME环境变量:
export JAVA_HOME=/usr/java/jdk1.8.0_291
export PATH=$JAVA_HOME/bin:$PATH
(2)WebLogic域创建:
使用配置向导生成域时,建议分离管理服务器与应用服务器:
# 创建基础域
/u01/weblogic/wlserver_12.2.1/configure.sh
# 扩展域为生产模式
/u01/weblogic/user_projects/domains/base_domain/bin/setDomainEnv.sh
/u01/weblogic/wlserver_12.2.1/common/bin/pack.sh -domain=base_domain -managed=true -template=managed_template.jar
三、核心配置实践
1. Oracle数据库优化
(1)内存参数配置:
# spfile中的关键参数
*.db_cache_size=4G
*.shared_pool_size=2G
*.pga_aggregate_target=3G
*.sga_target=8G
(2)ASM磁盘组管理:
建议采用EXTERNAL冗余级别创建数据盘组:
CREATE DISKGROUP DATA EXTERNAL REDUNDANCY
DISK '/dev/sdb1' NAME DATA_01
DISK '/dev/sdc1' NAME DATA_02;
(3)AWR报告分析:
定期生成AWR报告识别性能瓶颈:
SELECT * FROM TABLE(DBMS_WORKLOAD_REPOSITORY.AWR_REPORT_TEXT(
l_dbid => (SELECT dbid FROM v$database),
l_inst_num => (SELECT instance_number FROM v$instance),
l_bid => 4218,
l_eid => 4219
));
2. WebLogic性能调优
(1)JVM参数配置:
# setDomainEnv.sh中调整
JAVA_OPTIONS="${JAVA_OPTIONS} -XX:MaxPermSize=512m -XX:+UseG1GC"
USER_MEM_ARGS="-Xms2048m -Xmx4096m -XX:MetaspaceSize=256m"
(2)线程池优化:
修改config.xml中的ExecuteQueue配置:
200
DefaultWorkManager
50
(3)JDBC连接池监控:
通过WebLogic控制台或WLST脚本检查连接泄漏:
connect('weblogic','password','t3://localhost:7001')
cd('Servers/AdminServer')
cd('JDBC/DataSource')
cmo.getStatisticsEnabled()
cmo.getLeakedConnectionCount()
四、高可用架构设计
1. Oracle RAC部署
(1)共享存储配置:
使用ASMLib管理共享磁盘,配置vote盘与OCR盘:
# 安装ASMLib
yum install oracleasm-support oracleasmlib oracleasm
# 创建ASM磁盘
oracleasm createdisk DATA1 /dev/sdd1
oracleasm createdisk OCR_VOTE1 /dev/sde1
(2)CRS资源管理:
通过crsctl管理资源状态:
crsctl stat res -t
crsctl modify resource 'ora.data.db' -attr "AUTO_START=1"
2. WebLogic集群配置
(1)动态集群实现:
配置动态服务器列表:
DynamicCluster
ManagedServerTemplate
7003
10
(2)会话复制配置:
启用内存到磁盘的会话复制:
replicated
true
true
五、故障排查与维护
1. 常见问题处理
(1)Oracle监听故障:
检查listener.ora配置与tnsnames.ora解析:
lsnrctl status
tnsping ORCL
(2)WebLogic启动失败:
分析server.log与out文件,常见原因包括端口冲突、内存不足、许可证过期等。
2. 备份恢复策略
(1)Oracle RMAN备份:
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 4;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG;
RMAN> CROSSCHECK BACKUP;
(2)WebLogic域备份:
定期备份域目录与config.xml文件,建议使用wlst脚本自动化:
backupDomain('/u01/weblogic/user_projects/domains/mydomain','/backup/domain_backup.jar')
六、监控体系构建
1. Oracle Enterprise Manager
配置OEM代理实现数据库自动监控,设置阈值告警:
emca -config dbcontrol db -repos CREATE
2. WebLogic诊断框架
启用Harvester收集运行时数据:
AppDiagnosticMonitor
true
60
七、安全加固建议
1. Oracle安全配置
(1)启用审计策略:
AUDIT_TRAIL=DB,EXTENDED
AUDIT_FILE_DEST='/u01/app/oracle/admin/orcl/adump'
(2)密码复杂度策略:
BEGIN
DBMS_PROFILE.SET_PASSWORD_LIMIT(
profile_name => 'DEFAULT',
attribute => 'FAILED_LOGIN_ATTEMPTS',
value => 5
);
END;
2. WebLogic安全加固
(1)禁用示例应用:
cd /u01/weblogic/user_projects/domains/mydomain/autodeploy
rm -rf examples*
(2)配置SSL双向认证:
keytool -genkeypair -alias server -keyalg RSA -keystore server.jks
keytool -exportcert -alias server -keystore server.jks -file server.cer
八、结语
Linux环境下Oracle与WebLogic的协同部署需要综合考虑系统资源、配置参数、高可用架构和安全策略。通过规范化安装流程、精细化参数调优和自动化监控体系,可构建稳定高效的企业级应用平台。实际运维中应建立完善的文档管理体系,定期进行容量规划和性能基准测试。
关键词:Linux系统、Oracle数据库、WebLogic服务器、安装配置、性能调优、高可用架构、故障排查、安全加固
简介:本文系统总结Linux环境下Oracle数据库与WebLogic应用服务器的部署实践经验,涵盖环境准备、安装配置、性能优化、高可用设计、故障处理和安全加固等核心环节,提供可落地的技术方案和配置示例。