在自治数据库(Autonomous Database)上安装配置客户管理型ORDS的方法及启动故障排查求助
自治数据库(Autonomous Database)客户管理型ORDS安装配置指南及问题排查
我之前在Oracle Linux 8.5环境下成功配置过客户管理型ORDS连接自治数据库,刚好能帮你解决遇到的问题。下面是详细的安装配置步骤,以及针对你遇到的两个错误的排查方案:
一、前置准备
- 确保环境已安装Java 11(ORDS 23.x及以上版本要求Java 11或更高),执行
java -version检查版本,未安装的话用以下命令安装:sudo dnf install java-11-openjdk-devel - 下载与你的自治数据库版本兼容的ORDS安装包,解压到
/opt/oracle/ords目录(如果已经解压,确认解压后的目录结构包含bin、config等子目录) - 从自治数据库控制台下载钱包(Wallet)文件,解压到比如
/opt/oracle/wallet目录,确保sqlnet.ora和tnsnames.ora配置正确(将sqlnet.ora中的DIRECTORY指向你的钱包目录)
二、正确的ORDS安装配置步骤
初始化ORDS配置
- 进入ORDS的bin目录(这是你第一个错误的核心原因——不能直接执行ords目录):
cd /opt/oracle/ords/bin - 执行初始化命令:
./ords install - 按照提示完成配置:
- 数据库类型选择
Autonomous Database - 输入自治数据库的TNS别名(从
tnsnames.ora中选择高连接别名,比如<db_name>_high) - 输入ADB的
admin用户密码 - 根据需求选择是否启用RESTful服务、SQL Developer Web等功能
- 设置ORDS的监听端口(默认8080)
- 可选:配置静态资源目录
- 数据库类型选择
- 进入ORDS的bin目录(这是你第一个错误的核心原因——不能直接执行ords目录):
手动验证ORDS启动
- 在bin目录执行启动命令测试:
./ords serve - 查看控制台日志,如果没有报错,访问
http://<你的服务器IP>:<ORDS端口>/ords,尝试用ADB的用户登录,确认能正常进入ORDS页面。
- 在bin目录执行启动命令测试:
三、错误排查方案
1. 错误:-bash: /opt/oracle/ords: Is a directory
- 原因:你直接执行了ords目录,而ORDS的启动脚本位于
/opt/oracle/ords/bin/ords,必须调用这个可执行脚本。 - 解决:使用绝对路径执行正确的启动命令:
或者先进入bin目录再执行/opt/oracle/ords/bin/ords serve./ords serve。
2. 错误:Job for ords.service failed because the control process exited with error code
- 核心原因:systemd服务文件配置有误,常见问题包括路径错误、权限不足、环境变量未设置。
- 解决步骤:
创建正确的systemd服务文件
/etc/systemd/system/ords.service,内容如下:[Unit] Description=Oracle REST Data Services (ORDS) After=network.target [Service] User=oracle Group=oinstall Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk" Environment="ORDS_CONFIG=/opt/oracle/ords/config" ExecStart=/opt/oracle/ords/bin/ords serve Restart=always RestartSec=5 [Install] WantedBy=multi-user.target注意:
User和Group要设置为你安装ORDS时使用的用户(比如oracle用户)JAVA_HOME要对应你实际的Java安装路径(可以用which java找到路径后推导)ORDS_CONFIG指向ORDS的配置目录(默认在/opt/oracle/ords/config)
重新加载systemd配置:
sudo systemctl daemon-reload修复权限问题(如果是权限导致的启动失败):
sudo chown -R oracle:oinstall /opt/oracle/ords /opt/oracle/wallet再次启动服务并查看详细错误日志:
sudo systemctl start ords sudo systemctl status ords.service # 或者查看更详细的日志 journalctl -xe | grep ords根据日志提示进一步排查,比如如果是数据库连接失败,检查钱包配置、TNS别名是否正确;如果是Java路径错误,修正服务文件中的
JAVA_HOME。
四、验证配置成功
- 执行
sudo systemctl status ords,显示active (running)状态说明服务启动成功 - 访问
http://<你的服务器IP>:<ORDS端口>/ords,用ADB的用户登录,能正常进入SQL Developer Web或REST服务页面,即配置完成。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

