当前位置: 首页 > news >正文

Oracle19c EM Express配置与访问全攻略:从零到可视化管理的实践指南

1. 环境准备与基础检查

第一次接触Oracle 19c EM Express时,很多人会直接跳进配置环节,结果往往被各种报错打得措手不及。我刚开始接触时也犯过这个错误,后来才发现做好前期检查能省去80%的麻烦。下面这些准备工作,建议你逐项打勾确认。

首先确认操作系统环境。Oracle 19c EM Express作为轻量级Web管理工具,对硬件要求不高,但需要确保数据库实例已正常启动。用SSH连接到服务器后,先别急着操作,打开终端输入:

ps -ef | grep pmon

这个命令会显示所有Oracle进程,关键是要看到类似ora_pmon_ORCL这样的进程名(ORCL是你的实例名)。如果没看到输出,说明数据库实例根本没起来,后续所有操作都是白费功夫。

接着检查Oracle环境变量。很多安装问题都源于ORACLE_HOMEPATH配置错误。执行:

echo $ORACLE_HOME

正常应该显示类似/u01/app/oracle/product/19.0.0/dbhome_1的路径。如果返回空值,需要先执行source /home/oracle/.bash_profile加载环境变量(具体路径可能不同)。

内存检查也很重要。EM Express虽然轻量,但至少需要1GB可用内存。用free -h查看剩余内存,如果swap使用率过高,建议先优化内存配置再继续。

2. EM Express端口配置详解

端口配置是EM Express的核心环节,这里藏着最多"坑"。我见过有人折腾一整天,最后发现只是端口号设错了。Oracle 19c默认使用HTTPS协议,官方推荐5500端口,但实际环境中这个端口经常被占用。

先用SQL*Plus连接数据库(别用普通用户,权限不够):

sqlplus / as sysdba

然后执行这个关键查询:

SELECT DBMS_XDB_CONFIG.getHttpsPort() FROM DUAL;

如果返回0,恭喜你,端口确实没配置。但别急着设置,先检查5500端口是否空闲:

netstat -tuln | grep 5500

没输出表示端口可用。现在可以安全设置端口了:

EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500); COMMIT;

这里有个细节要注意:Oracle 19c默认只启用HTTPS,虽然也可以用HTTP,但会降低安全性。如果必须用HTTP(比如内网测试环境),端口号建议用5501:

EXEC DBMS_XDB_CONFIG.SETHTTPPORT(5501); COMMIT;

设置完成后,务必重启XDB服务使配置生效:

EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);

3. 服务验证与监听器配置

端口设好了不代表万事大吉,我遇到过最诡异的情况是端口配置成功,但就是无法访问,最后发现是监听器没注册。先检查监听器状态:

lsnrctl status

输出里要找两处关键信息:一是监听器是否运行(状态应为READY),二是Services部分要有XDB服务。如果没有XDB,需要手动注册:

ALTER SYSTEM REGISTER;

数据库实例状态同样重要:

SELECT status, database_status FROM v$instance;

正常应该返回OPENACTIVE。如果看到MOUNTED,说明数据库没完全打开,EM Express自然无法工作。

防火墙是另一个常见拦路虎。在Linux上开放5500端口的命令是:

sudo firewall-cmd --permanent --add-port=5500/tcp sudo firewall-cmd --reload

Windows用户需要通过图形界面操作:控制面板→Windows Defender防火墙→高级设置→入站规则→新建规则→端口→TCP 5500→允许连接。

4. 浏览器访问实战技巧

一切配置妥当后,访问URL的格式是:

https://服务器IP:5500/em

但这里有几个细节决定成败。首先,千万别用localhost!我在培训时见过至少十个人卡在这个问题上。EM Express绑定的是服务器主机名,所以必须用真实IP或FQDN。

首次访问会遇到SSL证书警告,这是正常的。在Chrome点击"高级"→"继续前往",Firefox要点"接受风险并继续"。如果页面完全空白,可能是XDB服务没起来,试试:

EXEC DBMS_XDB.SETHTTPSSERVICESTATUS(TRUE);

登录时用SYS账户,连接身份选SYSDBA。如果登录失败,先确认密码是否正确:

ALTER USER sys IDENTIFIED BY 新密码;

5. 高频问题排查指南

端口冲突是最常见的问题。如果设置端口时报错"ORA-31001",说明端口被占用了。换个端口号重试,比如5502:

EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5502); COMMIT;

页面加载不全通常是因为浏览器缓存。强制刷新(Ctrl+F5)或换浏览器试试。如果还不行,检查日志:

cd $ORACLE_HOME/rdbms/log tail -f em*.log

登录后无权限的问题,需要检查用户角色:

SELECT * FROM dba_role_privs WHERE grantee='你的用户名';

如果没有DBA角色,需要授权:

GRANT DBA TO 用户名;

性能监控数据缺失可能是统计收集没开启:

EXEC DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();

6. 安全加固建议

默认配置存在安全隐患,建议做这些加固:

  1. 修改默认URL路径:
EXEC DBMS_XDB_CONFIG.SETHTTPSSERVICEPATH('/newpath');
  1. 限制访问IP(需要ACL):
BEGIN DBMS_NETWORK_ACL_ADMIN.CREATE_ACL( acl => 'emexpress.xml', description => 'Restrict EM Express Access', principal => 'SYS', is_grant => TRUE, privilege => 'connect' ); DBMS_NETWORK_ACL_ADMIN.ADD_PRIVILEGE( acl => 'emexpress.xml', principal => 'SYS', is_grant => TRUE, privilege => 'resolve' ); DBMS_NETWORK_ACL_ADMIN.ASSIGN_ACL( acl => 'emexpress.xml', host => '192.168.1.*', lower_port => 5500, upper_port => 5500 ); END; /
  1. 启用审计跟踪:
AUDIT ALL BY ACCESS WHENEVER SUCCESSFUL;

7. 日常维护技巧

EM Express用久了可能会变慢,定期清理很有必要:

  1. 清理旧会话数据:
EXEC DBMS_SESSION.PURGE_LOST_DB_ENTRY;
  1. 重建性能仓库:
EXEC DBMS_WORKLOAD_REPOSITORY.MODIFY_SNAPSHOT_SETTINGS( retention => 43200, interval => 30 );
  1. 监控EM Express自身性能:
SELECT * FROM GV$EM_EXPRESS_PERF;

遇到无法解决的问题时,彻底重置EM Express可能是最后手段:

EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(0); COMMIT; EXEC DBMS_XDB_CONFIG.SETHTTPSPORT(5500); COMMIT;
http://www.jsqmd.com/news/573943/

相关文章:

  • LoRa网关实战:5分钟搞定MQTT通信(附Java代码示例)
  • 2026年靠谱的电力设备回收公司选择指南 - 品牌宣传支持者
  • 电力‘黑话’解析:手把手教你用格西调试精灵测试IEC60870-5-103协议
  • 3个技巧掌握QtScrcpy:免费跨平台安卓投屏终极指南
  • OpenClaw安全实践:Qwen3.5-9B本地化处理敏感图片数据
  • Kandinsky-5.0-I2V-Lite-5s实际作品展示:黄昏女孩转头推进镜头高清视频集
  • SEO_从零开始,手把手教你制定完整的SEO方案
  • 2026年邛崃地下室防水服务商深度测评:五大实力派谁更胜一筹? - 2026年企业推荐榜
  • 手把手教你用Python脚本自动化计算Flask Debug PIN(附避坑指南)
  • Pixhawk+OpenMV实战:如何用Apriltag实现无人机自动降落(附避坑指南)
  • 别再乱加注意力了!深入聊聊SE模块的适用场景与三大使用误区
  • 从单卡4090到8卡A100:五款开源数字人模型部署配置清单与避坑指南
  • A股闪崩策略全解析:从数据接口选股到实时交易执行的完整流程
  • OpenClaw自动化测试:Qwen3.5-9B验证UI截图与设计稿一致性
  • UDE Memtool实战:从零到一完成AURIX MCU程序烧录
  • 告别PX4,试试APM!用ArduPilot+Gazebo搭建你的第一个无人机仿真环境(附QGC地面站连接)
  • OpenClaw长期运行维护:千问3.5-35B-A3B-FP8系统资源监控与优化
  • Keil5为STM32F103添加ARM Compiler 5 (AC5) 和解决头文件缺失(device.h/cmsis.h)全记录
  • R语言新手避坑实录:解决Hmisc包依赖报错,从更新R版本到RStudio链接的完整流程
  • Qwen3.5-9B从零开始部署:Conda环境配置+模型路径符号链接避坑指南
  • 树莓派5新手避坑:用L298N驱动直流电机,从接线到代码的保姆级教程
  • STM32F407 HAL库实战:TIM触发ADC+DMA实现多通道信号实时统计与可视化
  • Anthropic 代码泄露,中国 AI 公司学什么?
  • OpenClaw安全实践:Kimi-VL-A3B-Thinking本地化处理敏感图文数据
  • SAP S/4HANA入门实操:从登录到F4帮助,手把手教你设置高效工作环境
  • python建筑工程项目管理系统设计与实现
  • Gitee与奇安信代码卫士的Java安全扫描实战指南
  • 【硬核】PyTorch 2.0编译原理深度拆解:TorchDynamo、AOTAutograd、TorchInductor三层架构全解析
  • 硬件工程师必看:5种电平转换电路实战对比(附电路图)
  • OpenAI获1220亿美元融资,AI巨头再添新动力