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/