Finally got around to installing Oracle 21c on my laptop. I installed it on Oracle’s Linux version 7 running in VirtualBox. There are other posts out there, so I won’t get too detailed. I noticed this post:
But I mainly went by the manual:
I stopped the firewall:
service firewalld stop systemctl disable firewalld
I used the preinstall yum package:
yum install oracle-database-preinstall-21c
As root setup the directories with the right ownership and permission:
mkdir -p /u01/app/oracle mkdir -p /u01/app/oraInventory chown -R oracle:oinstall /u01/app/oracle chown -R oracle:oinstall /u01/app/oraInventory chmod -R 775 /u01/app
As oracle unzipped the zip:
cd /u01/app/oracle/product/21.0.0/dbhome_1 unzip -q /home/oracle/LINUX.X64_213000_db_home.zip
I was annoyed by the -q option of unzip. If I did it again, I would leave it off so that I could see the list of files as they were unzipped.
From the console I ran this:
cd /u01/app/oracle/product/21.0.0/dbhome_1 ./runInstaller
I got a warning about the clock source being kvm-clock and not tsc. I tried Oracle’s instructions to fix this warning, but they did not work for me. It was just a warning apparently coming from the cluster verification utility. Since I am not using RAC, I didn’t see how this could matter so I ignored it. The install was very simple. Forced to use a CDB this time as I already knew.
The only interesting part for me was the read only Oracle home. Evidently the files that are updatable are stored under ORACLE_BASE_HOME instead of ORACLE_HOME.
I ended up adding these lines to .bash_profile:
export ORACLE_SID=orcl export ORAENV_ASK=NO . oraenv export ORACLE_BASE_HOME=/u01/app/oracle/homes/OraDB21Home1
To add a new tnsnames.ora entry for the pdb I had to go to $ORACLE_BASE_HOME/network/admin instead of $ORACLE_HOME/network/admin:
[oracle@orcl21 ~]$ ls -altr $ORACLE_HOME/network/admin total 4 -rw-r--r--. 1 oracle oinstall 1624 Feb 18 2020 shrept.lst drwxr-xr-x. 2 oracle oinstall 61 Jul 27 2021 samples drwxr-xr-x. 10 oracle oinstall 98 Jul 27 2021 .. drwxr-xr-x. 3 oracle oinstall 37 Jan 26 13:45 . [oracle@orcl21 ~]$ ls -altr $ORACLE_BASE_HOME/network/admin total 16 drwxr-x---. 5 oracle oinstall 40 Jan 26 12:52 .. -rw-r-----. 1 oracle oinstall 190 Jan 26 12:53 sqlnet.ora -rw-r-----. 1 oracle oinstall 329 Jan 26 12:53 listener.ora -rw-r-----. 1 oracle oinstall 397 Jan 26 13:49 tnsnames.ora.01262022 -rw-r-----. 1 oracle oinstall 586 Jan 26 13:49 tnsnames.ora drwxr-x---. 2 oracle oinstall 89 Jan 26 13:49 .
I added this entry to $ORACLE_BASE_HOME/network/admin/tnsnames.ora:
orclpdb = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = orcl21)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orclpdb) ) )
Pretty simple. The hard part is understanding what is new in 21c.