vlambda博客
学习文章列表

在Tomcat上安装 Oracle_REST数据服务(ORDS)

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=cdb1cdb.common.schema=falsedb.serviceNameSuffix=.example.com

也可以在安装完成后设置以下参数。完成后,将需要重新启动ORDS。

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用户。

CONN / AS SYSDBAALTER 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”用户身份执行此操作。

# su - tomcat$ mkdir /u01/ords$ cd /u01/ords$ unzip /tmp/ords.17.4.0.348.21.07.zip

创建目录以保存配置。

$ mkdir -p /u01/ords/conf

如果在安装过程中发生任何问题,先删除该目录的内容,然后再试一次。

编辑ORDS软件随附的 /u01/ords/params/ords_params.properties 文件,并为您的安装设置适当的参数。

db.hostname=ol7-122.localdomaindb.port=1521db.servicename=pdb1#db.sid=# Next 2 lines for CDB installations only.#cdb.common.schema=false#db.serviceNameSuffix=.your_db_domaindb.username=APEX_PUBLIC_USERdb.password=OraPassword1migrate.apex.rest=falseplsql.gateway.add=truerest.services.apex.add=truerest.services.ords.add=trueschema.tablespace.default=APEXschema.tablespace.temp=TEMPstandalone.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/imagesuser.apex.listener.password=OraPassword1user.apex.restpublic.password=OraPassword1user.public.password=OraPassword1user.tablespace.default=APEXuser.tablespace.temp=TEMPsys.user=SYSsys.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/confDec 17, 2017 8:50:19 AMINFO: 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 AMINFO: Updated configurations: defaults, apex, apex_pu, apex_al, apex_rtInstalling 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.logCompleted installation for Oracle REST Data Services version 17.4.0.348.21.07. Elapsed time: 00:01:40.123
$

如果参数文件在其它位置,则可以使用以下语法。

$ $JAVA_HOME/bin/java -jar ords.war --parameterFile /path/to/my_params.properties --silent

锁定 SYS 用户。

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。

http://<server-name>:<port>/ords/
http://ol7.localdomain:8080/ords/

在Tomcat下启动/停止ORDS

通过启动或停止要部署到的Tomcat实例来启动或停止ORDS。假设您正确设置了CATALINA_HOME环境变量,则应使用以下命令。

启动

$ $CATALINA_HOME/bin/startup.sh

停止

$ $CATALINA_HOME/bin/shutdown.sh

ORDS验证

您可以使用validate选项验证/修复当前的ORDS安装。

$ $JAVA_HOME/bin/java -jar ords.war validateEnter 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.logCompleted validating Oracle REST Data Services version 18.2.0.r1831332. Elapsed time: 00:00:06.898
$