Oracle Enterprise Manager 13.5 在 Linux 环境下的完整部署与配置指南 1. 项目概述与核心价值最近在帮一个朋友的公司做数据库运维体系的梳理他们之前一直是“人肉运维”几十套Oracle数据库全靠几个DBA手动盯着效率低不说还容易出纰漏。我给出的核心建议之一就是必须上马一个集中式的监控管理平台。在Oracle生态里这个角色的不二之选就是Oracle Enterprise Manager Cloud Control也就是我们常说的OEM。这次的目标版本是13.5一个功能比较完善且相对稳定的Release。朋友公司的服务器清一色是Linux所以就有了这次在Linux环境下部署OEM 13.5的实战。这不仅仅是点几下鼠标的安装更是一次对系统资源、网络规划、数据库配置和运维理念的综合考验。如果你也在为手头繁杂的Oracle数据库管理而头疼想构建一个统一的“作战指挥中心”那么这次从零开始的安装实录或许能给你提供一个完整的参考模板。OEM 13.5不同于单机版的Database Control它是一个典型的多层架构软件。简单来说它包含一个中心管理仓库Repository Database一个用来部署Web应用和接收代理数据的管理服务器OMS, Oracle Management Service以及需要安装在被管目标比如你的业务数据库服务器上的代理程序Agent。整个安装过程本质上就是在搭建这套架构。对于DBA而言成功部署OEM意味着你获得了一个图形化的、能覆盖数据库性能、可用性、配置、合规乃至整个IT基础架构的监控管理界面。从查看实时的AWR报告、管理补丁到自动化执行作业它的价值在于将重复、琐碎的工作平台化、自动化让你能更专注于高价值的优化和架构设计。2. 安装前深度规划与环境准备安装OEM这类企业级软件最忌讳的就是“拿来就装”。前期规划不充分往往会导致安装失败或者即使装上去了也运行不稳后期扩容更是麻烦。我把这次安装前的准备工作拆解成了几个核心部分你可以对照检查自己的环境。2.1 硬件与操作系统资源评估OEM 13.5对资源的要求不低因为它要处理海量的监控数据并运行复杂的J2EE应用。官方文档给出了最低配置但根据我的经验那只是“能跑起来”的门槛。对于生产环境或准备管理超过20个重要目标的环境我建议采用以下配置作为起点管理服务器OMSCPU至少4核物理核心建议8核以上。OMS的JVM和后台进程是计算密集型。内存最低16GB强烈建议32GB或更高。其中需要为OMS的WebLogic Server分配至少8GB的堆内存具体在安装时配置。磁盘系统盘至少100GB。重点在于存储空间用于存放软件、日志和临时文件。建议规划一个独立的、高速的磁盘分区如SSD用于/u01这样的Oracle基目录容量不少于200GB。I/O性能直接影响OMS的响应速度。交换空间通常设置为物理内存的1.5倍到2倍但最低不少于16GB。管理仓库数据库Repository DB这是一个专用的Oracle数据库建议12c R2或19c用于存储所有监控数据、配置信息和作业历史。强烈建议将OMS和Repository DB部署在不同的服务器上这是最佳实践可以避免资源竞争。如果资源实在有限部署在同一台服务器上那么对硬件的要求需要叠加。CPU/内存参考上述OMS配置或更高。磁盘这是重中之重。仓库数据库的成长速度很快尤其是如果监控频率高、保留策略长。你需要为数据文件规划足够的空间我建议初始预留500GB以上并确保有便捷的扩容方案。归档日志空间也需要单独考虑。对于操作系统OEM 13.5支持Oracle Linux 7/8、RHEL 7/8、SLES 12/15等主流发行版。我这次选择的是Oracle Linux 7.9与Oracle软件的兼容性最好。务必确认系统版本在支持矩阵内。2.2 网络与主机名规划这是新手最容易踩坑的地方。OEM的各个组件之间通过主机名进行通信因此必须确保网络解析正确无误。静态IP与固定主机名为OMS服务器分配一个静态IP地址。绝对不要使用动态IP。/etc/hosts文件配置这是关键步骤。你需要在OMS服务器和所有未来要安装代理的目标服务器上正确配置/etc/hosts文件确保能通过主机名hostname解析到正确的IP地址而不是通过localhost。# 查看本机完整主机名 hostname -f # 示例输出oem-server.example.com编辑/etc/hosts确保有这样一行假设服务器IP是192.168.1.100192.168.1.100 oem-server.example.com oem-server同时也要确保仓库数据库服务器的主机名解析正确。重要提示安装程序会严格校验主机名解析。如果它解析到的是127.0.0.1或::1安装几乎必定失败。务必用ping 主机名和nslookup 主机名命令反复测试。防火墙与端口OEM需要使用大量端口。最简单的方式是在安装和测试期间暂时关闭防火墙systemctl stop firewalld。但在生产环境必须开放特定端口。核心端口包括OMSHTTP 7788默认HTTPS 7803默认EMCTL 7101默认。Agent默认端口3872。Repository DB监听端口如1521。 你需要规划一套端口方案并在防火墙中永久放行。2.3 依赖软件包与系统参数调优Oracle软件对系统环境有特定要求。你需要以root身份执行以下步骤安装必要的依赖包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这是基础包确保它们全部安装成功。创建Oracle用户和组groupadd -g 54321 oinstall groupadd -g 54322 dba useradd -u 54321 -g oinstall -G dba oracle echo “oracle” | passwd --stdin oracle内核参数调整编辑/etc/sysctl.conf添加或修改以下参数。这些值是基于OMS和数据库共存于一台32GB内存服务器的建议值你可以根据实际情况调整。fs.aio-max-nr 1048576 fs.file-max 6815744 kernel.shmall 8388608 # 总共享内存页数 8GB内存为例8*1024*1024*1024/40962097152这里给更大 kernel.shmmax 34359738368 # 最大单个共享内存段单位字节32GB内存可设为32*1024^3 kernel.shmmni 4096 kernel.sem 250 32000 100 128 net.ipv4.ip_local_port_range 9000 65500 net.core.rmem_default 262144 net.core.rmem_max 4194304 net.core.wmem_default 262144 net.core.wmem_max 1048576执行sysctl -p使配置生效。用户资源限制编辑/etc/security/limits.conf为oracle用户添加oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 oracle soft stack 10240 oracle hard stack 32768同时检查/etc/pam.d/login文件确保包含session required pam_limits.so。配置Oracle用户环境变量切换到oracle用户编辑~/.bash_profile添加以下核心变量export ORACLE_BASE/u01/app/oracle export ORACLE_HOME$ORACLE_BASE/product/13.5/oms # 这是OMS的家目录 export REPOSITORY_HOME$ORACLE_BASE/product/19.0/db # 这是仓库数据库的家目录如果分开部署 export JAVA_HOME$ORACLE_HOME/oracle_common/jdk export PATH$JAVA_HOME/bin:$ORACLE_HOME/bin:$PATH export LD_LIBRARY_PATH$ORACLE_HOME/lib:$LD_LIBRARY_PATH export LC_ALLen_US.UTF-8 export LANGen_US.UTF-8执行source ~/.bash_profile使其生效。3. 软件获取与仓库数据库准备3.1 下载OEM 13.5安装介质你需要从Oracle官方网站下载Oracle Enterprise Manager Cloud Control 13.5 Release Update例如13.5.0.0的安装文件。通常包含两个主要zip包em13500_linux64-1.zipem13500_linux64-2.zip将它们上传到OMS服务器的某个临时目录例如/tmp/em_install。使用oracle用户解压cd /tmp/em_install unzip em13500_linux64-1.zip unzip em13500_linux64-2.zip解压后会生成一个Disk1的目录安装程序runInstaller就在其中。3.2 准备管理仓库数据库这是OEM的“大脑”所有数据都存在这里。你有两个选择使用现有数据库一个独立的、版本为12.1.0.2或更高推荐12.2/19c的Oracle数据库。确保其字符集为AL32UTF8这是一个硬性要求。全新创建数据库在OMS服务器或其他专用服务器上使用Oracle Database软件创建一个新库。我强烈建议采用专用服务器部署仓库数据库。如果必须在同一台服务器安装你需要先安装Oracle Database软件如19c并创建一个名为EMREP或其他你喜欢的名字的数据库。关键创建参数如下数据库字符集AL32UTF8内存分配至少8GB SGA4GB PGA。表空间为OEM创建专用的表空间初始大小至少20GB并设置为自动扩展。进程与会话processes500,sessions555。创建完成后需要为OEM创建一个专用的模式用户。连接到数据库执行类似以下脚本CREATE TABLESPACE EM_DATA DATAFILE ‘/u01/oradata/EMREP/em_data01.dbf’ SIZE 10G AUTOEXTEND ON NEXT 1G MAXSIZE UNLIMITED; CREATE TABLESPACE EM_INDEX DATAFILE ‘/u01/oradata/EMREP/em_index01.dbf’ SIZE 5G AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED; CREATE USER em_rep IDENTIFIED BY 强密码 DEFAULT TABLESPACE EM_DATA TEMPORARY TABLESPACE TEMP QUOTA UNLIMITED ON EM_DATA QUOTA UNLIMITED ON EM_INDEX; GRANT CONNECT, RESOURCE, CREATE VIEW TO em_rep; -- 根据安装程序要求可能还需要授予更多权限如SELECT_CATALOG_ROLE等。安装向导会检查并提示。请务必记录下数据库的连接信息主机名、端口、服务名/SID、用户名、密码。4. 图形化安装向导核心步骤解析一切准备就绪后就可以启动图形化安装界面了。你需要确保OMS服务器上安装了图形界面如GNOME或者可以从一台Windows/Mac机器通过X11转发如Xming SSH -X来显示界面。启动安装程序cd /tmp/em_install/Disk1 ./runInstaller如果提示DISPLAY未设置请检查并设置export DISPLAY你的IP:0.0。跳过安全更新在配置安全更新界面通常取消勾选“我希望通过My Oracle Support接收安全更新”直接点击下一步。选择安装类型创建新的Enterprise Manager系统这是我们需要的全新安装。其他选项如“将附加管理服务器添加到现有系统”用于高可用扩展。选择安装位置这里指定ORACLE_BASE和ORACLE_HOME。例如Oracle基目录/u01/app/oracle软件位置/u01/app/oracle/product/13.5/oms安装程序会自动创建目录。先决条件检查这是最关键的一步。安装程序会全面检查系统环境包括软件包、内核参数、用户资源限制、主机名解析等。如果出现失败项红色X必须根据详情逐一修复然后点击“重新检查”。警告项黄色感叹号如交换空间略小于推荐值通常可以忽略但需评估风险。务必确保所有检查都通过或仅有可接受的警告才能继续。配置管理仓库数据库选择“使用现有数据库”。输入之前准备好的仓库数据库连接信息主机名、端口、服务名、用户名如em_rep、密码。点击“测试连接”确保显示“成功”。安装程序会验证数据库版本、字符集、表空间等是否符合要求。配置管理服务器OMSOMS主机名会自动填入确保是你规划的完整主机名如oem-server.example.com。OMS端口默认HTTP 7788HTTPS 7803。如果冲突需修改。OMS实例目录用于存放OMS的配置和日志如/u01/app/oracle/gc_inst。WebLogic Server配置这里需要设置管理员密码weblogic用户并配置JVM堆内存。对于生产环境我建议将最大堆内存Xmx设置为8GB8192MB或更高具体取决于你的物理内存。这是OMS性能的关键。配置插件OEM通过插件管理不同类型的目标。默认会包含数据库、主机等核心插件。保持默认选择即可后续可以随时从界面下载和部署更多插件。摘要与安装确认所有配置信息无误后点击“安装”。安装过程会持续较长时间30分钟到数小时取决于硬件性能期间会复制OMS软件文件。在仓库数据库中创建大量的元数据表、视图和包。配置WebLogic域和部署管理控制台应用。运行一系列配置助手Configuration Assistants。执行根脚本在安装过程的最后会弹出窗口提示需要以root身份在两个指定位置执行脚本。必须按顺序执行第一个脚本通常在$ORACLE_BASE/oraInventory目录下用于注册清单。第二个脚本在$ORACLE_HOME目录下用于设置一些操作系统级别的权限。 在每个终端中执行完脚本后点击“确定”才能继续。安装后配置所有脚本执行成功后安装程序会完成最终配置并显示安装成功的摘要信息。请务必记录下给出的OEM控制台URL通常是https://主机名:7803/em以及weblogic和sysmanOEM超级管理员的密码。5. 安装后关键配置与初始化登录安装完成并不意味着马上就能用了还有几个重要的收尾步骤。启动OMS服务安装完成后OMS服务可能不会自动启动。你需要切换到oracle用户启动它cd $ORACLE_HOME/bin ./emctl start oms使用./emctl status oms查看状态直到看到“OMS is up”的消息。这个过程可能会花费几分钟因为要启动WebLogic服务器和多个管理组件。首次登录控制台打开浏览器访问https://主机名:7803/em。用户名sysman密码安装时设置的密码注意sysman的初始密码可能与WebLogic管理员密码相同也可能不同以安装摘要为准。首次登录可能会非常慢因为需要加载和初始化大量界面资源请耐心等待。登录后系统可能会提示你修改sysman的密码并设置安全问题和答案。部署代理到本地主机OEM服务器本身也是一个需要被监控的“主机”目标。你需要为它部署代理。在控制台导航到“设置” - “添加目标” - “自动发现”。通常安装后本地主机已经被发现。你可以选择它然后选择“配置目标” - “安装代理”。按照向导选择“Fresh Install”代理安装基目录可以设为$ORACLE_BASE/agent。部署完成后主机的状态会从“未监控”变为“正常”。配置数据库目标现在可以将你的业务数据库纳入管理了。在“设置” - “添加目标” - “手动添加目标”。选择“Oracle数据库实例”填写连接信息主机、端口、服务名、用户名密码。这里使用的数据库用户需要具有SELECT_CATALOG_ROLE、CREATE SESSION等权限通常使用一个普通监控用户而非SYSDBA。选择部署代理的位置如果该主机已安装代理则选择“使用现有代理”。提交后OEM会测试连接并在该主机上部署或关联代理之后数据库的监控指标就会出现在控制台。6. 常见问题与深度排查实录即使规划得再仔细实际安装过程中也难免会遇到问题。这里记录几个我遇到过的典型问题及其解决思路。6.1 先决条件检查失败主机名解析问题现象在“先决条件检查”阶段“网络配置”相关检查失败提示无法解析主机名或解析到回环地址。排查步骤在终端执行hostname -f和hostname -s确认输出。ping $(hostname -f)看是否通以及解析出的IP是否正确。检查/etc/hosts文件确保有一行将完整主机名和短主机名都绑定到正确的物理IP而不是127.0.0.1。检查/etc/sysconfig/network文件如果存在确认HOSTNAME设置正确。有时需要重启网络服务systemctl restart network或直接重启服务器使主机名配置彻底生效。根本原因Oracle安装程序对主机名解析的要求极其严格任何歧义都会导致失败。6.2 OMS启动失败端口冲突或内存不足问题现象执行emctl start oms后长时间无响应或报错退出查看日志$ORACLE_HOME/gc_inst/em/EMGC_OMS1/sysman/log/emoms.trc发现端口被占用或Java内存错误。排查步骤端口冲突使用netstat -tulnp | grep 端口号检查7788, 7803, 7101等端口是否被其他进程占用。如果占用可以在安装前修改OMS端口或停止占用端口的进程。内存不足检查日志中是否有OutOfMemoryError。这通常是因为分配的JVM堆内存Xmx过大超过了物理可用内存。需要修改WebLogic的JVM参数。找到文件$ORACLE_HOME/user_projects/domains/GCDomain/bin/setDomainEnv.sh搜索MEM_ARGS调整-Xmx和-Xms的值例如从-Xmx8192m降低到-Xmx4096m。修改后重启OMS。查看详细日志启动失败时emctl status oms -details能提供更详细的组件状态帮助定位是哪个子服务出了问题。6.3 无法访问控制台防火墙或代理问题问题现象OMS状态显示为UP但浏览器无法打开https://host:7803/em。排查步骤首先在OMS服务器本机用curl -k https://localhost:7803/em测试如果成功说明是网络问题。检查服务器防火墙是否放行了7803端口firewall-cmd --list-all。如果客户端通过代理上网请确保代理配置不会拦截内部地址或特定端口。检查浏览器是否信任OEM的自签名证书。首次访问通常会提示安全风险需要手动接受或添加例外。6.4 代理部署失败权限或环境问题问题现象在向目标主机部署代理时失败错误信息可能关于“权限被拒绝”或“无法复制文件”。排查步骤确保OMS服务器到目标主机的SSH互信已正确配置。OEM使用SSH在目标主机上执行安装操作。需要在OMS的oracle用户下生成密钥对并将公钥添加到目标主机oracle用户或你指定的安装用户的~/.ssh/authorized_keys文件中。测试SSH连接从OMS的oracle用户ssh target_host应能无需密码直接登录。确保目标主机上用于安装代理的操作系统用户通常是oracle有权限在指定安装目录如/u01/app/oracle/agent下创建文件和目录。检查目标主机的/tmp空间是否充足。6.5 仓库数据库性能瓶颈问题现象OEM控制台访问缓慢图表加载慢作业执行超时。检查OMS日志和数据库AWR报告发现仓库数据库EMREP的I/O等待高或存在大量enq: TX - contention锁争用。优化建议分离存储将仓库数据库的数据文件、重做日志放在高性能的存储上如SSD。调整参数增加DB_FILE_MULTIBLOCK_READ_COUNT以提高全表扫描性能适当增加PROCESSES和SESSIONS参数。定期维护为OEM的主要基表如MGMT$开头的表定期收集统计信息。OEM自带维护作业但需要确认其正常运行。归档日志管理确保归档日志目录有足够空间并设置RMAN备份策略避免空间被撑满导致数据库挂起。考虑分区对于最大的几张历史数据表如MGMT_METRICS_RAW如果数据量极大TB级可以向Oracle支持寻求建议考虑使用分区表来管理。整个安装和初步配置过程就像搭建一个精密仪器的底座。底座稳了后续往上添加监控目标、配置告警、定制仪表板才能得心应手。花在前期规划和问题排查上的每一分钟都会在后期运维中加倍地回报你。当你第一次在OEM的仪表板上清晰地看到所有数据库的性能指标、告警状态和拓扑关系时你会觉得这一切的折腾都是值得的。这标志着你的数据库运维开始从“消防员”模式转向“预警机”模式。