Oracle Database 19c EE
Download the following software:
OS setup
Install Oracle Linux 7. Select Server with a GUI. or Minimal.
As the root user, configure the OS and create the directory structure.
yum install -y oracle-database-preinstall-19c wgetmkdir -p /u01/app/oracle/product/19.0.0/dbhome_1mkdir -p /u02/oradatachown -R oracle:oinstall /u01 /u02chmod -R 775 /u01 /u02Database installation.
As the oracle user:
Make a scripts folder
mkdir /home/oracle/scriptsCreate an environment script. This will hold all of the settings.
cat > /home/oracle/scripts/setEnv.sh <<EOF# Oracle Settingsexport TMP=/tmpexport TMPDIR=\$TMPexport ORACLE_HOSTNAME=ora19c.core.bluepointmanor.comexport ORACLE_UNQNAME=cdb1export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=\$ORACLE_BASE/product/19.0.0/dbhome_1export ORA_INVENTORY=/u01/app/oraInventoryexport ORACLE_SID=cdb1export PDB_NAME=pdb1export DATA_DIR=/u02/oradataexport PATH=/usr/sbin:/usr/local/bin:\$PATHexport PATH=\$ORACLE_HOME/bin:\$PATHexport LD_LIBRARY_PATH=\$ORACLE_HOME/lib:/lib:/usr/libexport CLASSPATH=\$ORACLE_HOME/jlib:\$ORACLE_HOME/rdbms/jlibEOFAdd the contents of setEnv.sh to Oracle's .bash_profile.
echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profileCreate a start script.
cat > /home/oracle/scripts/start_all.sh <<EOF. /home/oracle/scripts/setEnv.shexport ORAENV_ASK=NO. oraenvexport ORAENV_ASK=YESdbstart \$ORACLE_HOMEEOFCreate a stop script.
cat > /home/oracle/scripts/stop_all.sh <<EOF. /home/oracle/scripts/setEnv.shexport ORAENV_ASK=NO. oraenvexport ORAENV_ASK=YESdbshut \$ORACLE_HOMEEOFSet the owner and folder and execute on the scripts.
chown -R oracle:oinstall /home/oracle/scriptschmod u+x /home/oracle/scripts/*.shUnzip the installer.
cd $ORACLE_HOMEunzip -oq /tmp/LINUX.X64_193000_db_home.zipRun the installer.
./runInstaller -ignorePrereq -waitforcompletion -silent \ -responseFile ${ORACLE_HOME}/install/response/db_install.rsp \ oracle.install.option=INSTALL_DB_SWONLY \ ORACLE_HOSTNAME=${ORACLE_HOSTNAME} \ UNIX_GROUP_NAME=oinstall \ INVENTORY_LOCATION=${ORA_INVENTORY} \ SELECTED_LANGUAGES=en,en_US \ ORACLE_HOME=${ORACLE_HOME} \ ORACLE_BASE=${ORACLE_BASE} \ oracle.install.db.InstallEdition=EE \ oracle.install.db.OSDBA_GROUP=dba \ oracle.install.db.OSBACKUPDBA_GROUP=dba \ oracle.install.db.OSDGDBA_GROUP=dba \ oracle.install.db.OSKMDBA_GROUP=dba \ oracle.install.db.OSRACDBA_GROUP=dba \ SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \ DECLINE_SECURITY_UPDATES=trueAs a root user, execute the followin:
/u01/app/oraInventory/orainstRoot.sh/u01/app/oracle/product/19.0.0/dbhome_1/root.shAs the oracle user:
Start the listener
lsnrctl startCreate the first database.
dbca -silent -createDatabase \ -templateName General_Purpose.dbc \ -gdbname ${ORACLE_SID} -sid ${ORACLE_SID} -responseFile NO_VALUE \ -characterSet AL32UTF8 \ -sysPassword Som3bTt3rpwd \ -systemPassword Som3bTt3rpwd \ -createAsContainerDatabase true \ -numberOfPDBs 1 \ -pdbName ${PDB_NAME} \ -pdbAdminPassword Som3bTt3rpwd \ -databaseType MULTIPURPOSE \ -automaticMemoryManagement false \ -totalMemory 2000 \ -storageType FS \ -datafileDestination "${DATA_DIR}" \ -redoLogFileSize 50 \ -emConfiguration NONE \ -ignorePreReqsEdit the "/etc/oratab" file setting the restart flag for each instance to 'Y'.
Example:
cdb1:/u01/app/oracle/product/19.0.0/db_1:Y
Enable Oracle Managed Files and make the PDB start when the instance starts
sqlplus / as sysdba <<EOFalter system set db_create_file_dest='/u02/oradata';alter pluggable database pdb1 save state;exit;EOFAPEX
As the oracle user:
Make the apex directory and unzip the apex files.
mkdir -p /home/oracle/apexunzip /tmp/apex_19.*.zip -d /home/oraclechown -R oracle:oinstall /home/oracle/apexcd /home/oracle/apexCreate an ACL script. This will be need later.
cat > apex_acl.sql << EOFBEGIN BEGIN dbms_network_acl_admin.drop_acl(acl => 'all-network-PUBLIC.xml'); EXCEPTION WHEN OTHERS THEN NULL; END; dbms_network_acl_admin.create_acl(acl => 'all-network-PUBLIC.xml', description => 'Allow all network traffic', principal => 'PUBLIC', is_grant => TRUE, privilege => 'connect'); dbms_network_acl_admin.add_privilege(acl => 'all-network-PUBLIC.xml', principal => 'PUBLIC', is_grant => TRUE, privilege => 'resolve'); dbms_network_acl_admin.assign_acl(acl => 'all-network-PUBLIC.xml', host => '*');END;/sho errCOMMIT;/EOFConnect to the database
sqlplus /nologChange roles
CONN pdb1 AS SYSDBARun the script to install a full development environment
@apexins.sql SYSAUX SYSAUX TEMP /i/Create an instance administrator user and set their password
@apxchpwd.sqlConfigure REST Data Services
@apex_rest_config.@apex_acl.sql Som3bTt3rpwd Som3bTt3rpwdUnlock APEX users
ALTER USER APEX_PUBLIC_USER ACCOUNT UNLOCK;
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY "Som3bTt3rpwd";ALTER USER APEX_REST_PUBLIC_USER IDENTIFIED BY "Som3bTt3rpwd" ACCOUNT UNLOCK;ALTER USER APEX_LISTENER IDENTIFIED BY "Som3bTt3rpwd" ACCOUNT UNLOCK;Run the ACL setup script created earlier.
@apex_acl.sqlIf you've never installed ORDS before. Ignore errors on the next command.
ALTER USER APEX_PUBLIC_USER IDENTIFIED BY Som3bTt3rpwd ACCOUNT UNLOCK;BEGINWWV_FLOW_SECURITY.g_security_group_id := 10;WWV_FLOW_FND_USER_API.unlock_account('ADMIN');COMMIT;END;/