ORDS,Oracle REST Data Services,通过REST接口映射到数据库事务,并返回JSON格式的结果。
环境说明
- Tomcat 7、8或9
- Oracle Linux 7
- APEX映像(可选)
多租户:
CDB或PDB安装
使用多租户体系结构时,有几种用于安装ORDS的选项。
对于Lone-PDB安装(带有一个PDB的CDB)或具有少量PDB的CDB,可以将ORDS直接安装到PDB中。db.servicename参数将在属性文件中设置为PDB服务名称。
如果每个CDB使用多个PDB,则可以将ORDS安装到CDB中,以允许所有PDB共享相同的连接池。与每个PDB具有单独的连接池相比,这将大大减少所使用的数据库连接数。在这种情况下,db.servicename
参数设置为CDB服务名称。从版本18.1开始,有两种将ORDS安装到CDB中的方法。推荐的方法是在属性文件中设置cdb.common.schema = false
,这将允许每个PDB运行不同版本的ORDS。或者,您可以在属性文件中使用cdb.common.schema = true
,这意味着所有PDB都必须使用相同版本的ORDS。无论选择哪个选项,您都可能还希望使用db.serviceNameSuffix = .your_db_domain
参数来启用可插拔映射功能。
db.servicename=cdb1
cdb.common.schema=false
db.serviceNameSuffix=.example.com
也可以在安装完成后设置以下参数。完成后,将需要重新启动ORDS。
代码语言:javascript复制cd /u01/ords
$JAVA_HOME/bin/java -jar ords.war set-property cdb.common.schema false
$JAVA_HOME/bin/java -jar ords.war set-property db.serviceNameSuffix ".example.com"
下载ORDS
从这里下载最新版本的 ORDS:http://www.oracle.com/technetwork/developer-tools/rest-data-services/downloads/index.html
安装 ORDS
检查SYS用户和普通公共用户是否已解锁,您是否知道其密码。在安装完成后锁定SYS用户。
代码语言:javascript复制CONN / AS SYSDBA
ALTER USER SYS IDENTIFIED BY OraPassword1 ACCOUNT UNLOCK;
--ALTER USER SYS IDENTIFIED BY OraPassword1 ACCOUNT UNLOCK CONTAINER=ALL;
--ALTER SESSION SET CONTAINER = pdb1;
ALTER USER APEX_LISTENER IDENTIFIED BY OraPassword1 ACCOUNT UNLOCK;
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY OraPassword1 ACCOUNT UNLOCK;
ALTER USER APEX_REST_PUBLIC_USER IDENTIFIED BY OraPassword1 ACCOUNT UNLOCK;
-- The next one will fail if you've never installed ORDS before. Ignore errors.
ALTER USER ORDS_PUBLIC_USER IDENTIFIED BY OraPassword1 ACCOUNT UNLOCK;
解压缩ORDS安装包。我们以服务器上的“tomcat”用户身份执行此操作。
代码语言:javascript复制# su - tomcat
$ mkdir /u01/ords
$ cd /u01/ords
$ unzip /tmp/ords.17.4.0.348.21.07.zip
创建目录以保存配置。
代码语言:javascript复制$ mkdir -p /u01/ords/conf
如果在安装过程中发生任何问题,先删除该目录的内容,然后再试一次。
编辑ORDS软件随附的 /u01/ords/params/ords_params.properties
文件,并为您的安装设置适当的参数。
db.hostname=ol7-122.localdomain
db.port=1521
db.servicename=pdb1
#db.sid=
# Next 2 lines for CDB installations only.
#cdb.common.schema=false
#db.serviceNameSuffix=.your_db_domain
db.username=APEX_PUBLIC_USER
db.password=OraPassword1
migrate.apex.rest=false
plsql.gateway.add=true
rest.services.apex.add=true
rest.services.ords.add=true
schema.tablespace.default=APEX
schema.tablespace.temp=TEMP
standalone.mode=false
# Next 3 lines for standalone mode only.
#standalone.use.https=true
#standalone.http.port=8080
# ORDS19 Onward
#standalone.static.path=/home/oracle/apex/images
# Pre-ORDS19
#standalone.static.images=/home/oracle/apex/images
user.apex.listener.password=OraPassword1
user.apex.restpublic.password=OraPassword1
user.public.password=OraPassword1
user.tablespace.default=APEX
user.tablespace.temp=TEMP
sys.user=SYS
sys.password=OraPassword1
# Enable REST Enabled SQL.
restEnabledSql.active=true
# Enable SQL Developer Web. Available from 19.4 onward. Requires REST Enabled SQL.
feature.sdw=true
# Enable database APIs. Available from 19.1 onward.
database.api.enabled=true
如果出于任何原因需要重新启动安装,请记住在重新启动安装之前清除/u01/ords/conf
目录并检查 /u01/ords/params/ords_params.properties
文件的内容。
使用 ords.war
文件通过以下命令指定配置目录。
$ $JAVA_HOME/bin/java -jar ords.war configdir /u01/ords/conf
Dec 17, 2017 8:50:19 AM
INFO: Set config.dir to /u01/ords/conf in: /u01/ords/ords.war
使用以下命令配置ORDS。这等效于指定简单安装
命令行参数。如果您在参数文件中正确输入了参数,则不会出现提示。如果某些参数丢失或不正确,将提示您进行输入。
$ $JAVA_HOME/bin/java -jar ords.war
Retrieving information.
Dec 17, 2017 8:50:59 AM
INFO: Updated configurations: defaults, apex, apex_pu, apex_al, apex_rt
Installing Oracle REST Data Services version 17.4.0.348.21.07
... Log file written to /u01/ords/logs/ords_install_core_2017-12-17_085059_00767.log
... Verified database prerequisites
... Created Oracle REST Data Services schema
... Created Oracle REST Data Services proxy user
... Granted privileges to Oracle REST Data Services
... Created Oracle REST Data Services database objects
... Log file written to /u01/ords/logs/ords_install_datamodel_2017-12-17_085224_00812.log
... Log file written to /u01/ords/logs/ords_install_apex_2017-12-17_085234_00725.log
Completed installation for Oracle REST Data Services version 17.4.0.348.21.07. Elapsed time: 00:01:40.123
$
如果参数文件在其它位置,则可以使用以下语法。
代码语言:javascript复制$ $JAVA_HOME/bin/java -jar ords.war --parameterFile /path/to/my_params.properties --silent
锁定 SYS 用户。
代码语言:javascript复制ALTER USER SYS ACCOUNT LOCK;
Tomcat 部署
将APEX映像复制到Tomcat webapps
目录。(可选)
$ mkdir $CATALINA_HOME/webapps/i/
$ cp -R /tmp/apex/images/* $CATALINA_HOME/webapps/i/
将 ords.war 映像复制到Tomcat webapps
目录。
$ cd /u01/ords
$ cp ords.war $CATALINA_HOME/webapps/
现在应该可以使用以下类型的URL访问ORDS。
代码语言:javascript复制http://<server-name>:<port>/ords/
http://ol7.localdomain:8080/ords/
在Tomcat下启动/停止ORDS
通过启动或停止要部署到的Tomcat实例来启动或停止ORDS。假设您正确设置了CATALINA_HOME环境变量,则应使用以下命令。
启动
代码语言:javascript复制$ $CATALINA_HOME/bin/startup.sh
停止
代码语言:javascript复制$ $CATALINA_HOME/bin/shutdown.sh
ORDS验证
您可以使用validate选项验证/修复当前的ORDS安装。
代码语言:javascript复制$ $JAVA_HOME/bin/java -jar ords.war validate
Enter the name of the database server [ol7-122.localdomain]:
Enter the database listen port [1521]:
Enter the database service name [pdb1]:
Requires SYS AS SYSDBA to verify Oracle REST Data Services schema.
Enter the database password for SYS AS SYSDBA:
Confirm password:
Retrieving information.
Oracle REST Data Services will be validated.
Validating Oracle REST Data Services schema version 18.2.0.r1831332
... Log file written to /u01/asi_test/ords/logs/ords_validate_core_2018-08-07_160549_00215.log
Completed validating Oracle REST Data Services version 18.2.0.r1831332. Elapsed time: 00:00:06.898
$