1. OS preparation
sudo dnf install -y oracle-database-preinstall-19c # or oracle-ai-database-preinstall-23ai
The preinstall RPM creates the oracle user and groups, and sets kernel parameters and limits.
| Mount | Purpose |
|---|---|
/u01 | Oracle software (ORACLE_BASE=/u01/app/oracle) |
/u02/oradata | Data files |
/u03/fra | Fast Recovery Area (archivelogs, backups, flashback logs) |
| redo | Separate fast volume, multiplexed members |
Use ASM, with Oracle Restart, if you want Oracle-managed storage on a single node.
2. Silent software install (19c)
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p $ORACLE_HOME && cd $ORACLE_HOME && unzip -q /stage/LINUX.X64_193000_db_home.zip
./runInstaller -silent -applyRU /stage/<release-update-dir> \
-responseFile $ORACLE_HOME/install/response/db_install.rsp \
oracle.install.option=INSTALL_DB_SWONLY oracle.install.db.InstallEdition=EE \
ORACLE_BASE=/u01/app/oracle oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSBACKUPDBA_GROUP=backupdba oracle.install.db.OSDGDBA_GROUP=dgdba \
oracle.install.db.OSKMDBA_GROUP=kmdba oracle.install.db.OSRACDBA_GROUP=racdba
sudo /u01/app/oraInventory/orainstRoot.sh && sudo $ORACLE_HOME/root.sh
-applyRU installs the latest Release Update together with the base release.
3. Create the database (CDB + PDB)
dbca -silent -createDatabase -templateName General_Purpose.dbc \
-gdbName ORCL -sid ORCL -createAsContainerDatabase true \
-numberOfPDBs 1 -pdbName SALESPDB -characterSet AL32UTF8 \
-datafileDestination /u02/oradata -recoveryAreaDestination /u03/fra \
-recoveryAreaSize 200000 -memoryMgmtType AUTO_SGA -totalMemory 24576 \
-redoLogFileSize 2048 -enableArchive true -sysPassword '...' -systemPassword '...' -pdbAdminPassword '...'
4. Key settings
ALTER SYSTEM SET sga_target = 16G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_target = 6G SCOPE=SPFILE;
ALTER SYSTEM SET pga_aggregate_limit = 12G SCOPE=SPFILE;
ALTER SYSTEM SET use_large_pages = ONLY SCOPE=SPFILE; -- configure HugePages first
ALTER DATABASE FORCE LOGGING;
ALTER DATABASE FLASHBACK ON; -- optional; useful for fast rollback
ALTER SYSTEM SET db_flashback_retention_target = 1440;
ALTER SYSTEM SET control_file_record_keep_time = 31;
- Set up HugePages (
vm.nr_hugepages) to cover the SGA. Disable transparent huge pages. - Multiplex the control files and redo log members across volumes.
- Save PDB state:
ALTER PLUGGABLE DATABASE SALESPDB SAVE STATE;
5. RMAN backups
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
CONFIGURE CONTROLFILE AUTOBACKUP ON;
CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 4;
CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES TO DISK;
ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE '/u02/oradata/ORCL/bct.chg';
| Job | Schedule |
|---|---|
BACKUP INCREMENTAL LEVEL 0 DATABASE PLUS ARCHIVELOG | Weekly |
BACKUP INCREMENTAL LEVEL 1 DATABASE PLUS ARCHIVELOG | Daily |
BACKUP ARCHIVELOG ALL NOT BACKED UP | Every 30 min |
RESTORE DATABASE VALIDATE | Weekly |
Copy backups offsite (OCI Object Storage with the Cloud Backup Module, ZDLRA, or a backup tool).
6. Security basics
- Change default passwords, lock unused accounts, and use profiles with password limits.
- Unified Auditing policies for logins, privilege use and DDL.
- Network encryption or TLS (
SQLNET.ENCRYPTION_SERVER = REQUIRED, or TCPS). - Apply quarterly RUs (see the patching policy post).
Note
Licensing: Diagnostics and Tuning packs (AWR/ASH), Advanced Security (TDE) and partitioning are separately licensed Enterprise Edition options. Set
control_management_pack_accessto match what you've licensed.