
1. 初识Oracle 19c EM Express轻量级管理利器第一次接触Oracle 19c EM ExpressEnterprise Manager Database Express时我把它想象成数据库的智能仪表盘。这个内置于Oracle数据库的Web管理界面不需要单独安装中间件就能完成日常80%的运维操作。相比传统的Grid Control它就像从重型卡车变成了灵巧的电动车——特别适合我们这些需要快速响应的DBA。记得去年给某电商平台做数据库迁移时客户突然要求查看实时性能指标。当时现场没有安装任何监控工具我就是在Chrome浏览器里输入https://dbserver:5500/em三秒钟调出了包括CPU、内存、会话数在内的所有关键指标客户CTO当场竖起了大拇指。这就是EM Express的魅力——开箱即用的特性让它成为DBA的应急工具箱。典型的使用场景包括凌晨三点被报警叫醒时用手机快速检查锁等待给领导演示数据库健康状况时直观展示图表开发团队需要查看SQL执行计划但没装PL/SQL Developer时不过要注意EM Express默认使用HTTPS协议首次访问时浏览器会提示证书不安全。别紧张这不是被黑客攻击了而是Oracle使用了自签名证书。点击高级→继续前往即可生产环境建议替换为正式证书。2. 从零开始配置EM Express端口2.1 检查当前端口状态刚安装完Oracle 19c时EM Express就像个没插电的电器——功能完好但无法使用。我们先要通过SQL*Plus这个电源开关激活它sqlplus / as sysdba SQL SELECT DBMS_XDB_CONFIG.getHttpsPort() FROM DUAL;如果返回结果是0就像我上周在测试环境遇到的情况说明端口还没配置。这时候需要执行SQL EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500); SQL COMMIT;选择5500端口不是随便定的这是Oracle的惯例端口。有次我图省事用了8080结果和部门的Jenkins服务冲突折腾了半天才发现问题。建议保持默认除非端口已被占用。2.2 验证监听器配置端口设置好后得确认监听器是否听见了这个配置lsnrctl status在输出的Services部分你应该能看到类似这样的信息Service orcl has 1 instance(s). Instance orcl, status READY, has 1 handler(s) for this service... Handler(s): D000 established:0 refused:0 current:0 max:1022 state:ready DISPATCHER machine: dbserver, pid: 1234 (ADDRESS(PROTOCOLtcp)(HOSTdbserver)(PORT5500))如果没看到5500端口可能是监听器需要重启。我常用的技巧是lsnrctl stop lsnrctl start3. 打通网络访问的最后一公里3.1 防火墙配置实战端口配好了却访问不了十有八九是防火墙在作怪。去年给某银行做演练时就踩过这个坑Linux环境建议先用telnet测试sudo firewall-cmd --permanent --add-port5500/tcp sudo firewall-cmd --reloadWindows环境WinR输入wf.msc打开高级安全防火墙右键入站规则→新建规则选择端口→TCP 5500→允许连接给规则起个名字比如Oracle EM Express有个容易忽略的细节云服务器还需要在安全组里放行端口。有次我在AWS上排查了两小时最后发现是安全组没配置血泪教训啊3.2 解决证书警告问题第一次访问时你会看到浏览器的红色警告页面。这是因为Oracle使用了自签名证书。对于测试环境可以临时忽略生产环境我建议这样处理生成CSR文件orapki wallet create -wallet /u01/app/oracle/wallet -pwd WalletPass123 -auto_login orapki wallet add -wallet /u01/app/oracle/wallet -pwd WalletPass123 -dn CNdbserver.company.com -keysize 2048将CSR提交给CA机构签发导入正式证书orapki wallet import -wallet /u01/app/oracle/wallet -pwd WalletPass123 -cert /path/to/your_cert.crt4. 首次登录的功能探索4.1 登录姿势详解访问https://your-server:5500/em后你会看到简洁的登录页面。这里有几个关键点用户名必须是SYS、SYSTEM等具有DBA权限的账户连接身份选SYSDBA相当于用管理员钥匙开门选NORMAL就像普通门卡密码注意Oracle 12c之后的密码区分大小写登录成功后默认进入数据库实例主页。我特别喜欢这里的性能标签页图形化的AWR数据比命令行直观多了。上周排查一个性能问题就是通过这里的顶级SQL图表五分钟就定位到有个报表SQL消耗了90%的CPU资源。4.2 必知必会的三个功能存储管理有次开发团队误删了数据文件我就是在这里看到表空间突然变红立即采取了恢复措施用户和权限比命令行更直观的权限分配界面适合给新人演示权限体系SQL工作表应急查询神器特别是当你的SQL客户端突然崩溃时有个实用技巧点击右上角的首选项可以设置自动刷新间隔。对于监控长时间运行的作业特别有用。5. 避坑指南与进阶技巧5.1 常见问题排查页面显示空白大概率是XDB服务没启动。试试这个组合拳SQL ALTER SYSTEM SET dispatchers(PROTOCOLTCP) (SERVICEyour_sidXDB) SCOPEBOTH; SQL EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500);登录后功能不全检查用户权限SELECT * FROM dba_role_privs WHERE granteeYOUR_USER;突然无法访问先检查监听日志tail -100f $ORACLE_BASE/diag/tnslsnr/$HOSTNAME/listener/trace/listener.log5.2 性能监控最佳实践在性能→数据库吞吐量页面我设置了这些关键监控项每秒事务数TPS的基线是200超过300会变黄物理读/秒超过5000时触发告警活跃会话数持续超过CPU核心数的2倍需要关注有次大促期间就是通过自定义的锁等待时间监控提前发现了应用层的连接泄露问题。6. 安全加固建议除了基本的防火墙配置还有几个容易忽视的安全点修改默认端口虽然麻烦但值得做EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5555);限制访问IP在Apache配置中添加需要修改XDB配置Location /em Require ip 192.168.1.0/24 /Location定期清理审计日志EM Express的安全→审计数据页面可以设置自动清理策略记得有次安全扫描就因为EM Express的默认配置被扣分。后来我们制定了这些加固措施顺利通过了等保三级认证。