Check Oracle’s AIX Installation Guide for 19c and your Release Update’s README for the exact minimum OS levels and filesets, since they change between RUs.
Table of Contents
1. Prerequisites
Supported OS: AIX 7.2 TL2 SP1 or later, or AIX 7.3 (64-bit kernel, Power).
oslevel -s # OS level
bootinfo -K # must return 64
lsattr -El sys0 -a realmem # RAM
lsps -a # paging space
df -g /tmp /u01 # free space
Minimum resources
- RAM: at least 1 GB (more for any real workload)
- /tmp: at least 1 GB free
- Oracle home: about 10 GB (plus space for database files)
- Paging space: 1.5x RAM if RAM is 1–2 GB, equal to RAM if 2–16 GB, 16 GB if above that
Required filesets (check with lslpp -l)
lslpp -l bos.adt.base bos.adt.lib bos.adt.libm bos.perf.libperfstat \
bos.perf.perfstat bos.perf.proctools xlC.aix61.rte xlC.rte
You need xlC.aix61.rte and xlC.rte at 13.1.3.0 or later. Install any missing filesets using smitty install_latest or installp.
2. OS Kernel and Network Tuning (as root)
# Network
no -p -o ipqmaxlen=512
no -p -o rfc1323=1
no -p -o sb_max=4194304
no -p -o tcp_recvspace=65536
no -p -o tcp_sendspace=65536
no -p -o udp_recvspace=655360
no -p -o udp_sendspace=65536
no -p -o tcp_ephemeral_low=9000
no -p -o tcp_ephemeral_high=65500
# Virtual memory (defaults are usually fine on AIX 7.x; verify)
vmo -L | egrep "minperm%|maxperm%|maxclient%|strict_maxclient|strict_maxperm"
# Max processes per user
chdev -l sys0 -a maxuproc=16384
lsattr -El sys0 -a maxuproc
AIX 6.1 and later configures asynchronous I/O (AIO) dynamically, so there’s no need to tune aioservers manually.
3. Create Groups and User
mkgroup -'A' id='54321' adms=root oinstall
mkgroup -'A' id='54322' adms=root dba
mkgroup -'A' id='54323' adms=root oper
mkgroup -'A' id='54324' adms=root backupdba
mkgroup -'A' id='54325' adms=root dgdba
mkgroup -'A' id='54326' adms=root kmdba
mkuser id='54321' pgrp='oinstall' groups='dba,oper,backupdba,dgdba,kmdba' \
home='/home/oracle' oracle
passwd oracle
4. Set User Limits
Edit /etc/security/limits and set these under the oracle: stanza:
oracle:
fsize = -1
core = -1
cpu = -1
data = -1
rss = -1
stack = -1
nofiles = 65536
Log in again as oracle and verify with ulimit -a.
5. Create Directories
mkdir -p /u01/app/oracle
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 775 /u01
6. Set Oracle’s Environment
Add this to /home/oracle/.profile:
umask 022
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.0.0/dbhome_1
export ORACLE_SID=ORCL
export PATH=$ORACLE_HOME/bin:$PATH
export LIBPATH=$ORACLE_HOME/lib:$LIBPATH
export TMP=/tmp
export TMPDIR=/tmp
7. Stage the Software
Download the AIX 19c database zip (AIX.PPC64_193000_db_home.zip) from Oracle Software Delivery Cloud or Oracle Support. 19c uses image-based installation, so you unzip directly into the Oracle home:
su - oracle
cd $ORACLE_HOME
unzip -q /stage/AIX.PPC64_193000_db_home.zip
If you have AIX’s unzip issues with large files, use the Oracle-supplied or GNU unzip.
8. Run the Installer
GUI mode (needs X11, e.g. via MobaXterm or VNC):
export DISPLAY=<your_pc_ip>:0.0
cd $ORACLE_HOME
./runInstaller
Choose: Set Up Software Only (or Create and configure a single instance database) → Single instance database installation → Enterprise Edition → confirm the Oracle base → OS groups → run the prerequisite checks → Install.
Silent mode (no X11 needed):
cd $ORACLE_HOME
./runInstaller -silent -ignorePrereqFailure \
oracle.install.option=INSTALL_DB_SWONLY \
UNIX_GROUP_NAME=oinstall \
INVENTORY_LOCATION=/u01/app/oraInventory \
ORACLE_BASE=/u01/app/oracle \
ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1 \
oracle.install.db.InstallEdition=EE \
oracle.install.db.OSDBA_GROUP=dba \
oracle.install.db.OSOPER_GROUP=oper \
oracle.install.db.OSBACKUPDBA_GROUP=backupdba \
oracle.install.db.OSDGDBA_GROUP=dgdba \
oracle.install.db.OSKMDBA_GROUP=kmdba \
oracle.install.db.OSRACDBA_GROUP=dba \
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false \
DECLINE_SECURITY_UPDATES=true
9. Run Root Scripts (as root)
When prompted at the end:
/u01/app/oraInventory/orainstRoot.sh
/u01/app/oracle/product/19.0.0/dbhome_1/root.sh
10. Create the Listener and Database
netca -silent -responseFile $ORACLE_HOME/assistants/netca/netca.rsp
# or run netca in GUI mode
dbca # GUI
Silent DBCA example:
dbca -silent -createDatabase \
-templateName General_Purpose.dbc \
-gdbName ORCL -sid ORCL \
-characterSet AL32UTF8 \
-sysPassword <password> -systemPassword <password> \
-createAsContainerDatabase true \
-numberOfPDBs 1 -pdbName ORCLPDB1 -pdbAdminPassword <password> \
-datafileDestination /u01/oradata \
-storageType FS \
-memoryPercentage 40
11. Verify
lsnrctl status
sqlplus / as sysdba
SQL> select instance_name, status from v$instance;
SQL> select name, open_mode from v$pdbs;
12. Apply the Latest Release Update (recommended)
19.3 is the base release. Download the latest RU and OPatch from Oracle Support, then:
# as root, before patching, clear unused shared libraries from memory
/usr/sbin/slibclean
# as oracle, with all DB processes and the listener stopped
unzip -o p6880880_190000_AIX64-5L.zip -d $ORACLE_HOME # updates OPatch
cd <patch_dir>
$ORACLE_HOME/OPatch/opatch apply
Afterwards, run datapatch -verbose against the database.
Common AIX Gotchas
slibclean: run it as root if you hit “text file busy” or library-in-use errors.- Missing xlC runtime: the most frequent prerequisite failure.
- Large files: make sure
fsize=-1and that your file systems were created with large file support. - Auto-start: create an
/etc/inittabentry or a script to start the DB and listener at boot. - Filesystem I/O: use
filesystemio_options=setall(CIO) for datafiles on JFS2 for better performance, and mount redo and datafile filesystems withciowhere appropriate.
If you tell me whether this is single instance or RAC, which AIX version you’re on, and whether you’ll use ASM or JFS2, I can tailor the steps, for example the Grid Infrastructure install or specific prerequisite fixes.