Skip to main content

Installation ORDS for Apex 21c with PDB

ACHTUNG: PSS PRIVAT!!!!

Installation Tomcat

useradd tomcat
passwd tomcat
# Fx#6593376

mkdir -p /srv/app/tomcat
chown tomcat:tomcat /srv/app/tomcat -R

su - tomcat
cd /srv/app/tomcat/
mkdir versions
cd versions
tar xzf /shared/tomcat/apache-tomcat-9.0.54.tar.gz
 
#aber dann verlinken!
 
ln -s /srv/app/tomcat/versions/apache-tomcat-9.0.54/ /srv/app/tomcat/tomcat
ln -s /srv/app/tomcat/versions/apache-tomcat-9.0.54/ /srv/app/tomcat/latest
 
#Konfiguration außerhalb der Software speichern
 
mkdir config
 
cp -r /srv/app/tomcat/tomcat/conf /srv/app/tomcat/config/
cp -r /srv/app/tomcat/tomcat/logs /srv/app/tomcat/config/
cp -r /srv/app/tomcat/tomcat/temp /srv/app/tomcat/config/
cp -r /srv/app/tomcat/tomcat/webapps /srv/app/tomcat/config/
cp -r /srv/app/tomcat/tomcat/work /srv/app/tomcat/config/

nano ~/.bash_profile
export JAVA_HOME=/usr/java/latest
export CATALINA_HOME=/srv/app/tomcat/tomcat
export CATALINA_BASE=/srv/app/tomcat/config
source ~/.bash_profile

#java 8
#as root
yum -y update && yum install -y java-1.8.0-openjdk && java -version

update-alternatives --config java
# 1

mkdir /usr/java
cd /usr/java
ln -s /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.312.b07-1.el7_9.x86_64/jre/ latest

# Testing tomcat
sh
tail /srv/app/tomcat/config/logs/catalina.out
# ..
# INFO [main] org.apache.catalina.startup.Catalina.start Server startup in [917] milliseconds
# ..

# Prozess pürfen mit ...
ps -ef | grep tomcat

# Port pürfen mit ...
netstat -nlp | grep 8080

exit

# Als root
nano /etc/systemd/system/tomcat.service

[Unit]
Description=Tomcat - instance
After=syslog.target network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

WorkingDirectory=/srv/app/tomcat/config

Environment="JAVA_HOME=/usr/java/latest"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"

Environment="CATALINA_PID=/srv/app/tomcat/config/run/tomcat.pid"
Environment="CATALINA_BASE=/srv/app/tomcat/config"
Environment="CATALINA_HOME=/srv/app/tomcat/tomcat"
#alternativ wenn -Xmx4096m
Environment="CATALINA_OPTS=-Xms1024m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m -server -XX:+UseParallelGC"

ExecStart=/srv/app/tomcat/tomcat/bin/startup.sh
ExecStop=/srv/app/tomcat/tomcat/bin/shutdown.sh

[Install]
WantedBy=multi-user.target
#after the db start
After=oracle.service

systemctl daemon-reload
systemctl cd /
nano $CATALINA_BASE/conf/server.xml
# Zum Späteren Härten das 127.0.0.1 einkommentieren!
# Aufpassen auf Ein- und Auskommentiere!!!

<Connector executor="tomcatThreadPool"
port="8070" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- address="127.0.0.1" /> -->


<Connector protocol="AJP/1.3"
address="127.0.0.1"
port="8009"
tcpNoDelay="true"
maxThreads="400"
processorCache="400"
acceptCount="350"
acceptorThreadCount="2"
connectionTimeout="2000"
requiredSecret="ORACLEAPEX1234"
secretRequired="true"
redirectPort="8443" />


nano $CATALINA_BASE/conf/tomcat-users.xml

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<role rolename="admin-gui"/>
<user username="tomcat" password="Fx#6593376" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>
<user username="geberlst" password="Fx#6593376" roles="manager-gui,manager-script,manager-jmx,manager-status,admin-gui"/>



nano $CATALINA_BASE/webapps/manager/META-INF/context.xml
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
<Manager sessionAttributeValueClassNameFilter="java\.lang\.(?:Boolean|Integer|Long|Number|String)|org\.apache\.catalina\.filters\.CsrfPreventionFilter\$LruCache(?:\$1)?|java\.util\.(?:Linked)?HashMap"/>
-->

nano $CATALINA_HOME/bin/setenv.sh
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH

firewall-cmd --remove-port=8080/tcp --permanent
firewall-cmd --reload


#Als root

systemctl stop tomcat.service
systemctl start tomcat.service
systemctl status tomcat.service

 

Installation ORDS

su oracle
sqlplus / as sysdba

ALTER SESSION SET CONTAINER=PSSDB;

ALTER USER APEX_LISTENER IDENTIFIED BY Fx#6593376 ACCOUNT UNLOCK;
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY Fx#6593376 ACCOUNT UNLOCK;
ALTER USER APEX_REST_PUBLIC_USER IDENTIFIED BY Fx#6593376 ACCOUNT UNLOCK;
exit;


mkdir -p /srv/app/ords
mkdir -p /srv/app/ords/versions/ords-21.3.1
chown tomcat:tomcat /srv/app/ords -R

su tomcat
unzip /shared/ords/ords-latest.zip -d /srv/app/ords/versions/ords-21.3.1

ln -s /srv/app/ords/versions/ords-21.3.1/ /srv/app/ords/ords
mkdir -p /srv/app/ords/config/ords

nano /srv/app/ords/ords/params/ords_params.properties

db.hostname=oracle / db / localhost
db.password=Fx#6593376
db.port=1521 / 1539
db.servicename=pss / xe
db.sid=pss / xe
db.username=APEX_PUBLIC_USER
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.http.port=8070
user.apex.listener.password=Fx#6593376
user.apex.restpublic.password=Fx#6593376
user.public.password=Fx#6593376
standalone.static.images=/srv/app/apex/images
user.tablespace.default=APEX
user.tablespace.temp=TEMP
sys.user=SYS
sys.password=Fx#6593376


su tomcat
cd /srv/app/ords/ords/
java -jar ords.war configdir /srv/app/ords/config

# su oracle
# sqlplus / as sysdba
# select open_mode from v$database;
# ==> READ /WRITE

su oracle
cd /srv/app/ords/ords/
java -jar ords.war install

# Fx#6593376

java -jar ords.war set-property jdbc.InitialLimit 6
java -jar ords.war set-property jdbc.MinLimit 6
java -jar ords.war set-property jdbc.MaxLimit 40
java -jar ords.war set-property jdbc.MaxConnectionReuseCount 10000

# sqldev web: ords >= 19.4
java -jar ords.war set-property feature.sdw true
java -jar ords.war set-property restEnabledSql.active true
java -jar ords.war set-property database.api.enabled true
java -jar ords.war set-property security.verifySSL false

Geben Sie den zu verwendenden Datenbankverbindungstyp an.
Geben Sie die Zahl für [1] Basis [2] TNS [3] Benutzerdefinierte URL an [1]:
Name des Datenbankservers eingeben [oracle]:
Listener-Port der Datenbank eingeben [1521]:
1 eingeben, um den Servicenamen der Datenbank anzugeben, oder 2, um die Datenbank-SID anzugeben [1]:
Datenbankservicename eingeben [pss]:
Geben Sie 1 ein, wenn Sie das Oracle REST Data Services-Schema verifizieren/installier en möchten, oder 2, um diesen Schritt zu überspringen [1]:
Datenbankkennwort für ORDS_PUBLIC_USER eingeben:
Kennwort bestätigen:
Verifizierung des Oracle REST Data Services-Schemas erfordert eine Anmeldung mit Admin istratorberechtigungen.

Geben Sie den Administratorbenutzernamen ein:sys
Datenbankkennwort für SYS AS SYSDBA eingeben:
Kennwort bestätigen:
Verbindung zu Datenbankbenutzer: SYS AS SYSDBA URL: jdbc:oracle:thin:@//oracle:1521/pss s wird hergestellt

Informationen werden abgerufen...
Sie sind mit einer CDB verbunden. Der allgemeine ORDS-Benutzer ORDS_PUBLIC_USER wird i n der CDB erstellt. Das ORDS-Schema wird in den PDBs installiert.
Root CDB$ROOT - Allgemeinen ORDS-Benutzer erstellen
PDB PDB$SEED - ORDS 21.3.1.r3012050 installieren (Modus: READ ONLY, geöffnet während R EAD/WRITE)
PDB PSSDB - ORDS 21.3.1.r3012050 installieren

Geben Sie 1 ein, wenn Sie ORDS installieren möchten, oder 2, um diesen Schritt zu über springen [1]:
2021-11-21T19:00:28.882Z INFO Fehler: Default Tablespace APEX ist in Container( n) CDB$ROOT PDB$SEED nicht vorhanden. Für die ORDS-Installation ist ein vorhandener D efault Tablespace erforderlich.
Geben Sie den Default Tablespace für ORDS_METADATA ein [SYSAUX]:
Geben Sie den Temporary Tablespace für ORDS_METADATA ein [TEMP]:
Geben Sie den Default Tablespace für ORDS_PUBLIC_USER ein [SYSAUX]:
Geben Sie den Temporary Tablespace für ORDS_PUBLIC_USER ein [TEMP]:
Geben Sie 1 ein, wenn Sie das PL/SQL-Gateway verwenden möchten, oder 2, um diesen Schritt zu überspringen.
Wenn Sie Oracle Application Express verwenden oder eine Migration von mod_plsql durchführen, müssen Sie 1 eingeben [1]:
Geben Sie den Benutzernamen für die PL/SQL Gateway-Datenbank ein [APEX_PUBLIC_USER]:
Datenbankkennwort für APEX_PUBLIC_USER eingeben:
Kennwort bestätigen:
Geben Sie 1 ein, um Kennwörter für Application Express RESTful Services-Datenbankbenutzer anzugeben (APEX_LISTENER, APEX_REST_PUBLIC_USER), oder 2, um diesen Schritt zu überspringen [1]:
Datenbankkennwort für APEX_LISTENER eingeben:
Kennwort bestätigen:
Datenbankkennwort für APEX_REST_PUBLIC_USER eingeben:
Kennwort bestätigen:
Geben Sie eine Zahl für die Featureauswahl ein, um Folgendes zu aktivieren:
[1] SQL Developer Web (aktiviert alle Features)
[2] REST-fähige SQL
[3] Datenbank-API
[4] REST-fähige SQL und Datenbank-API
[5] Kein Wert
Auswählen [1]:1
2021-11-21T19:02:31.410Z INFO reloaded pools: []


Oracle REST Data Services-Version 21.3.1.r3012050 wird in CDB$ROOT installiert
... Logdatei in /home/tomcat/ords_cdb_install_core_CDB_ROOT_2021-11-21_200231_00724.log geschrieben
... Datenbankvoraussetzungen wurden verifiziert
... Oracle REST Data Services-Proxybenutzer wurde erstellt
Installation für Oracle REST Data Services Version 21.3.1.r3012050 wurde abgeschlossen. Verstrichene Zeit: 00:00:08.700

Oracle REST Data Services-Version 21.3.1.r3012050 wird in PDB$SEED installiert
... Logdatei in /home/tomcat/ords_cdb_install_core_PDB_SEED_2021-11-21_200248_00219.log geschrieben
... Datenbankvoraussetzungen wurden verifiziert
... Oracle REST Data Services-Proxybenutzer wurde erstellt
... Oracle REST Data Services-Schema wurde erstellt
... Berechtigungen für Oracle REST Data Services wurden erteilt
... Oracle REST Data Services-Datenbankobjekte wurden erstellt
... Logdatei in /home/tomcat/ords_cdb_install_datamodel_PDB_SEED_2021-11-21_200535_00403.log geschrieben
... Logdatei in /home/tomcat/ords_cdb_install_apex_PDB_SEED_2021-11-21_200541_00636.log geschrieben
Installation für Oracle REST Data Services Version 21.3.1.r3012050 wurde abgeschlossen. Verstrichene Zeit: 00:02:59.999


nano /srv/app/ords/config/ords/defaults.xml

# <entry key="jdbc.DriverType">thin</entry>
# <entry key="jdbc.InactivityTimeout">1800</entry>
# <entry key="jdbc.InitialLimit">30</entry>
# <entry key="jdbc.MinLimit">30</entry>
# <entry key="jdbc.MaxLimit">100</entry>
# <entry key="jdbc.MaxStatementsLimit">10</entry>
# <entry key="jdbc.statementTimeout">900</entry>
# <entry key="jdbc.MaxConnectionReuseCount">15000</entry>
# ...
# Add Line!
# <entry key="security.forceHTTPS">true</entry>

-- Deploying...
\cp /srv/app/ords/ords/ords.war /srv/app/tomcat/config/webapps/
mkdir -p /srv/app/tomcat/config/webapps/i
\cp -R /srv/app/apex/images/* /srv/app/tomcat/config/webapps/i

cat /srv/app/tomcat/config/webapps/ords/WEB-INF/web.xml

# <context-param>
# <param-name>config.dir</param-name>
# <!-- Enter the location where configuration settings should be stored -->
# <param-value>/srv/app/ords/config/</param-value>
# </context-param>

-- SQLPLUS

ALTER SESSION SET CONTAINER=PSSDB;

ALTER SESSION SET CURRENT_SCHEMA = APEX_210200;

SELECT
username, lock_date, expiry_date, account_status
FROM
dba_users
WHERE
username IN (
'ANONYMOUS',
'APEX_PUBLIC_USER',
'APEX_LISTNER',
'APEX_REST_PUBLIC_USER',
'ORDS_METADATA',
'ORDS_PUBLIC_USER'
)
ORDER BY 1;

alter user ANONYMOUS account unlock;
alter user ORDS_PUBLIC_USER account unlock;
alter user APEX_PUBLIC_USER account unlock;
alter user APEX_LISTENER account unlock;
alter user APEX_REST_PUBLIC_USER account unlock;
alter user ORDS_PUBLIC_USER identified by Fx#6593376;
alter user APEX_PUBLIC_USER identified by Fx#6593376;
alter user APEX_LISTENER identified by Fx#6593376;
alter user APEX_REST_PUBLIC_USER identified by Fx#6593376;

### @apexins1.sql apex apex temp /i/
### @apexins2.sql apex apex temp /i/
### @apexins3.sql apex apex temp /i/