公司动态
Oracle EM Express启用指南:从原理到19c实战配置
1. 项目概述为什么我们需要启用Oracle Enterprise Manager在Oracle数据库的日常运维和管理中DBA数据库管理员们常常面临一个核心矛盾数据库本身功能强大、体系复杂但纯粹的命令行操作如SQL*Plus对于监控性能、管理作业、配置告警等日常任务来说效率不够直观门槛也相对较高。这就好比驾驶一辆高性能跑车却只给了你一个最基础的仪表盘转速、油压、涡轮状态等关键信息都需要你手动输入指令才能调取查看这显然不符合高效运维的需求。Oracle Enterprise Manager简称EM在12c及以后版本中常指EM Express或Cloud Control正是为了解决这个矛盾而生的官方图形化管理工具。它提供了一个基于Web的集中式管理界面将数据库的“健康状况”可视化。启用EM意味着你为你的数据库引擎安装了一个功能齐全的“驾驶舱仪表盘”。通过它你可以实时查看性能指标如CPU、内存、I/O使用率、管理用户和权限、执行备份恢复操作、监控会话和锁、配置自动作业等极大地提升了管理效率和问题定位速度。对于很多刚接触Oracle的朋友或者在测试、开发环境中安装完数据库后EM服务默认可能并未启动或需要额外配置。本次操作的核心就是手动将这个强大的管理界面“激活”让它成为你运维工作中的得力助手。无论你使用的是传统的EM Database Control11g时代、轻量级的EM Express12c/19c内置还是功能更强大的EM Cloud Control集中管理多套数据库启用的逻辑和步骤都值得深入探讨。2. EM的演进与选型Database Control, Express, 还是 Cloud Control在动手之前我们必须先理清Oracle EM家族的不同成员因为针对不同版本和架构启用方法截然不同。这直接决定了我们后续的操作路径。2.1 各版本EM的核心区别与适用场景Oracle EM Database Control (11g及更早版本常见)这是早期版本中随单库安装的EM版本。它是一个基于Java的、独立的管理控制台通常与单个数据库实例绑定。启用它需要配置OC4JOracle Containers for J2EE等中间件组件过程相对繁琐会占用独立的端口如1158。在11g环境中如果你在安装时没有勾选相关选项就需要手动通过emcaEnterprise Manager Configuration Assistant工具来创建和配置。Oracle EM Express (12c, 18c, 19c, 21c等)从Oracle Database 12c开始Oracle引入了EM Express这是一个轻量级、无需额外中间件的HTML5管理工具。它直接内嵌在数据库进程中通过Oracle XML DBXDB提供HTTP/HTTPS服务。因此它的启用和配置变得非常简单通常只需要在数据库中执行几条命令开启XDB并指定端口即可。EM Express功能上比Database Control精简但涵盖了绝大多数核心监控和管理需求且资源消耗极低是单实例数据库管理的首选。Oracle EM Cloud Control 13c (原名Grid Control)这是一个独立安装、集中式的企业级管理平台。它由一个OMSManagement Service管理服务器和一个OMRManagement Repository资料库数据库组成可以同时管理成千上万个Oracle数据库、中间件、主机等目标。启用Cloud Control不是“启用一个服务”而是“安装并配置一套庞大的系统”。它适用于拥有大量Oracle资产的企业环境进行跨数据库的集中监控、自动化部署、合规检查等。注意对于绝大多数个人学习、开发测试或中小型生产单库环境我们讨论的“启用EM”主要指启用EM Express。因为它最方便也是当前版本的主流。本文后续的实操将以Oracle Database 19c单实例环境启用EM Express为重点进行详解。2.2 如何判断你的环境需要启用哪种EM查看数据库版本连接数据库执行SELECT * FROM v$version;查看主版本号。检查当前EM状态对于11g可以尝试在浏览器访问https://主机名:1158/em或者查看相关进程ps -ef | grep em或使用emctl status dbconsole命令。对于12c/19c首先检查EM Express是否已配置。登录数据库执行SELECT DBMS_XDB_CONFIG.getHttpsPort() FROM DUAL;如果返回一个端口号如5500则表示EM Express已启用。如果返回0或NULL则需要启用。选择建议开发/测试/个人学习环境19c单实例毫不犹豫选择启用EM Express。简单快捷功能足够。遗留的11g生产环境如果需要图形界面则配置EM Database Control。但需注意其已非主流安全性和兼容性需额外评估。企业多库混合环境规划部署EM Cloud Control 13c这是专业运维的标配。3. 核心原理EM Express是如何工作的在深入实操前理解EM Express的工作原理能帮助你在遇到问题时快速定位。EM Express的本质是一个内嵌的Web应用其技术栈核心是Oracle XML DB (XDB)。XDB是Oracle数据库的一个组件它使数据库能够原生地存储、查询和处理XML数据同时它也是一个轻量级的HTTP/HTTPS监听器。当我们启用EM Express时实际上是在做以下几件事启用XDB组件确保XDB的数据库字典、PL/SQL包等对象已正确创建并有效。配置XDB协议端口为XDB HTTP服务分配一个特定的TCP端口默认HTTPS是5500HTTP是8080。注册EM Express应用将EM Express的前端静态文件HTML, JS, CSS和后端PL/SQL逻辑部署到XDB的某个虚拟路径下通常是/em。配置身份验证将EM Express的访问与数据库自身的用户认证如密码文件绑定确保只有合法数据库用户通常需要DBA或EM_EXPRESS_BASIC角色才能登录。整个过程不依赖外部的Web服务器如Apache, Tomcat所有请求都由数据库进程内的XDB监听器直接处理因此非常高效和紧凑。这也意味着一旦数据库实例启动EM Express服务就随之就绪数据库关闭服务也随之停止。4. 实操指南在Oracle 19c单实例中启用EM Express假设我们有一个新安装的Oracle 19c数据库实例名为orcl监听端口1521现在需要启用EM Express。以下是详细的步骤、命令和背后的逻辑。4.1 前置检查与环境准备在开始配置前进行系统性检查可以避免很多后续错误。1. 确认数据库版本和XDB状态-- 以sysdba身份登录SQL*Plus sqlplus / as sysdba -- 检查版本 SELECT banner FROM v$version WHERE banner LIKE Oracle Database%; -- 检查XDB组件状态 SELECT comp_name, status, version FROM dba_registry WHERE comp_name LIKE %XDB%;如果XDB组件的状态是VALID则说明已安装。如果是LOADING或INVALID可能需要运行?/rdbms/admin/catqm.sql脚本修复此操作需谨慎最好在安装时确保XDB被选中。2. 检查当前EM Express端口-- 检查HTTPS端口 SELECT DBMS_XDB_CONFIG.getHttpsPort() FROM DUAL; -- 检查HTTP端口 SELECT DBMS_XDB_CONFIG.getHttpPort() FROM DUAL;如果返回0表示未配置。3. 确保监听器运行且数据库注册EM Express的访问需要通过网络因此监听器必须正常运行并且数据库实例已向监听器动态注册。# 在操作系统层面检查监听器状态 lsnrctl status # 在数据库内检查注册情况 sqlplus / as sysdba SELECT instance_name, status, database_status FROM v$instance;确保database_status为ACTIVE。4.2 关键步骤配置EM Express端口这是启用EM Express的核心操作。我们将HTTPS端口设置为5500生产环境建议使用HTTPS。-- 执行端口配置将HTTPS端口设置为5500 EXEC DBMS_XDB_CONFIG.setHttpsPort(5500); -- 再次查询确认 SELECT DBMS_XDB_CONFIG.getHttpsPort() FROM DUAL;为什么是5500这是Oracle为EM Express推荐的默认HTTPS端口避免与常见Web服务端口如804438080冲突。你也可以设置为其他空闲端口。重要提示如果服务器防火墙开启必须在防火墙规则中放行你设置的端口如5500。对于Linux的firewalld命令类似sudo firewall-cmd --permanent --add-port5500/tcp sudo firewall-cmd --reload。这是最常被忽略导致无法访问的一步。4.3 配置用户访问权限默认情况下只有拥有DBA角色的用户如SYS,SYSTEM才能登录EM Express。为了安全和管理方便我们通常为特定的管理用户非SYS授予EM访问权限。1. 创建一个专用于EM管理的用户可选但推荐CREATE USER em_admin IDENTIFIED BY StrongPassword; GRANT CONNECT, RESOURCE TO em_admin; GRANT SELECT_CATALOG_ROLE TO em_admin; -- 允许查看数据字典视图2. 授予EM Express访问角色Oracle 12.2及以上版本引入了更细粒度的EM角色。-- 授予EM_EXPRESS_BASIC角色基本监控权限 GRANT EM_EXPRESS_BASIC TO em_admin; -- 如果需要所有管理功能包括配置、调优等可以授予EM_EXPRESS_ALL角色 -- GRANT EM_EXPRESS_ALL TO em_admin;EM_EXPRESS_BASIC角色允许用户查看性能主页、存储、会话等监控信息但不能修改配置。这符合最小权限原则。4.4 验证与访问EM Express完成配置后无需重启数据库实例配置立即生效。获取访问地址你需要知道数据库服务器的主机名或IP地址。你配置的HTTPS端口号这里是5500。访问URL格式为https://服务器主机名或IP:5500/em浏览器访问打开Chrome、Firefox等浏览器输入上述URL。首次访问会因使用自签名证书而提示“不安全”。这是正常现象点击“高级”-“继续前往”即可。在登录页面使用你授权的数据库用户如em_admin和密码登录。登录后界面 成功登录后你将看到EM Express的主仪表盘。主要功能区域通常包括性能主页CPU、I/O、负载的实时图表。可用性查看和控制实例状态。存储管理表空间、数据文件、重做日志。安全管理用户、角色、审计。性能顶级活动、SQL监控、阻塞会话。4.5 启用HTTP访问可选仅用于测试HTTPS是默认和推荐的方式。如果在内网测试环境想使用更简单的HTTP可以额外配置HTTP端口如8080但请注意这传输不加密密码明文绝不适用于生产环境。EXEC DBMS_XDB_CONFIG.setHttpPort(8080);访问地址变为http://服务器主机名或IP:8080/em5. 深入解析emca工具在11g环境中的使用对于仍在使用Oracle 11g的环境启用EMDatabase Control的标准工具是emca。理解这个过程有助于处理遗留系统或进行对比学习。5.1emca的核心命令流程假设数据库SID为orcl监听端口1521希望配置EM使用端口1158。# 1. 设置Oracle环境变量 export ORACLE_SIDorcl export ORACLE_HOME/u01/app/oracle/product/11.2.0/dbhome_1 # 2. 使用emca进行配置交互式 $ORACLE_HOME/bin/emca -config dbcontrol db -repos create # 3. 按照提示输入信息 # - 数据库SID (orcl) # - 监听端口 (1521) # - 监听器程序位置 (LISTENER) # - SYS和SYSMAN用户的密码 # - 通知邮箱可选 # - 指定EM端口如1158这个命令会执行以下操作创建资料库在数据库中创建SYSMAN用户和一系列管理表用于存储EM的配置和监控数据。配置OC4J部署并配置Java应用容器。启动相关进程启动dbconsole进程。5.2 管理EM Database Control服务配置完成后使用emctl工具进行管理# 启动EM控制台 emctl start dbconsole # 停止EM控制台 emctl stop dbconsole # 查看状态 emctl status dbconsole状态命令会输出访问URL通常是https://hostname:1158/em。5.3 11g EM的常见问题与解决思路问题emctl start dbconsole失败提示“OC4J配置问题”。排查检查$ORACLE_HOME/oc4j/j2ee/OC4J_DBConsole_hostname_sid目录是否存在及权限。可能是之前的配置残留。解决尝试彻底清理后重建emca -deconfig dbcontrol db -repos drop然后重新运行emca -config。问题能登录EM但许多性能页面显示“无数据”。排查检查数据库的STATISTICS_LEVEL参数是否设置为TYPICAL或ALL。BASIC级别会禁用大量性能数据收集。SHOW PARAMETER statistics_level解决ALTER SYSTEM SET statistics_level TYPICAL SCOPEBOTH;问题主机名变更后EM无法启动。解决这是11g EM的一个常见痛点。需要重新配置或手动修改emca创建的一系列配置文件中的主机名非常繁琐。这也是Oracle转向EM Express与主机名解耦的原因之一。6. 故障排查与日常维护心得无论使用哪种EM在启用和使用过程中都可能遇到问题。以下是我总结的排查清单和实战心得。6.1 EM Express无法访问的逐层排查法当你在浏览器中输入URL后无法访问时请按照以下顺序排查第一层网络与端口连通性# 在数据库服务器本机测试端口是否监听 netstat -tulnp | grep :5500 # 应看到类似tcp6 0 0 :::5500 :::* LISTEN pid/oracle # 如果没输出说明XDB服务未启动或端口未配置成功。 # 从客户端使用telnet测试测试网络和防火墙 telnet 服务器IP 5500 # 如果能连通会显示空白或SSL协商信息。如果连接被拒绝或超时问题在服务器防火墙或网络策略。第二层数据库内XDB服务状态-- 检查XDB服务是否已启动 SELECT status FROM v$instance; -- 必须是OPEN状态 -- 检查XDB监听器注册 SELECT dbms_xdb.getHttpPort() as http_port, dbms_xdb.getHttpsPort() as https_port FROM dual; -- 尝试重启XDB服务在SQL*Plus中 ALTER SYSTEM REGISTER; -- 重新注册服务到监听器 -- 更彻底的重启需要ALTER SYSTEM权限 EXEC DBMS_XDB.SETHTTPPORT(0); -- 先关 EXEC DBMS_XDB.SETHTTPPORT(5500); -- 再开第三层监听器与动态注册# 检查监听器状态确认实例已注册 lsnrctl status # 在服务的“Instance”部分应该能看到你的数据库实例状态为“READY”或“BLOCKED”。如果实例未注册检查local_listener参数和监听器配置文件。第四层权限与用户确认你使用的登录用户已被授予EM_EXPRESS_BASIC或EM_EXPRESS_ALL角色。尝试用SYSTEM用户登录以排除权限问题。6.2 性能数据缺失或不准的处理EM Express的图表数据来源于数据库的AWR自动工作负载信息库和ASH活动会话历史快照。如果图表空白或数据陈旧请检查AWR快照是否启用SELECT snap_interval, retention FROM dba_hist_wr_control;默认应每1小时采集一次保留8天。如果被修改可以用DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS过程调整。诊断与调优包许可EM Express的部分高级性能功能如ASH分析、某些SQL调优建议需要Oracle的“Diagnostics Pack”和“Tuning Pack”许可。在未购买的企业生产环境中这些功能可能被禁用。EM Express会隐藏或禁用相关页面这是正常现象。6.3 日常维护要点密码管理用于登录EM的数据库用户密码会过期。定期检查或设置密码永不过期避免影响登录。端口安全生产环境务必使用HTTPS并考虑通过防火墙限制访问EM端口的源IP地址仅允许管理员网络段访问。资源考量EM Express本身资源消耗极小可忽略不计。但开启AWR/ASH快照会带来一定的磁盘I/O和空间开销需监控SYSAUX表空间的使用情况。升级与补丁EM Express作为数据库内嵌组件其版本和补丁随数据库软件一起升级。应用PSU补丁集更新时EM的漏洞也会被修复。7. 从EM到更广阔的运维视野成功启用EM只是数据库可视化运维的第一步。它提供了一个优秀的单点监控入口。但在复杂的生产环境中我们还需要思考更多集中监控当你有几十上百个数据库时逐个登录EM Express是不现实的。此时需要像Oracle Enterprise Manager Cloud Control、Prometheus Grafana配合Oracle exporter或商业APM工具如Dynatrace, AppDynamics来构建集中监控平台。自动化运维EM的告警功能可以邮件通知但更高级的自动化如自动扩容、故障自愈需要结合Ansible, Terraform等运维自动化工具或Oracle Autonomous Database的特性。深度性能分析EM的“SQL监视器”和“ASH分析”是强大的入口。但资深DBA仍需掌握通过原始AWR/ASH报告、跟踪文件10046 trace、SQLT等工具进行深度钻取的能力。图形化工具是指南针命令行工具是手术刀。启用并熟练使用Oracle Enterprise Manager尤其是轻量便捷的EM Express能显著降低日常数据库管理的复杂度。它把许多需要记忆复杂命令和视图的操作变成了直观的点选。然而工具再强大其背后反映的仍是Oracle数据库的核心原理。理解EM每一个图表、每一项配置背后的数据来源和底层机制如等待事件、闩锁、缓冲区缓存才是从“操作员”成长为“架构师”的关键。建议大家在享受图形化便利的同时不妨多点击EM界面上的“查看SQL”按钮如果提供看看它背后执行了哪些语句这将是极佳的学习路径。