I know what you are probably thinking. What’s the big deal and how many homes can there be?
For Exadata Cloud, I recalled seeing as many as 18 database homes.
As shown below, there are 5 database homes with version 12.2 and 1 database home with version 19.0.
# dbaascli dbhome info
DBAAS CLI version 21.1.1.0.1
Executing command dbhome info
Enter a homename or just press enter if you want details of all homes
1.HOME_NAME=OraHome101
HOME_LOC=/u02/app/oracle/product/12.2.0/dbhome_4
VERSION=19.8.0.0
PATCH_LEVEL=19.8.0.0.200714
DBs installed=
OH Backup=NOT Configured
2.HOME_NAME=OraHome100
HOME_LOC=/u02/app/oracle/product/12.2.0/dbhome_7
VERSION=19.8.0.0
PATCH_LEVEL=19.8.0.0.200714
DBs installed=*****
Agent DB IDs=d21b07df-20f2-439e-bc40-78a9597af362
OH Backup=NOT Configured
3.HOME_NAME=OraHome105_12201_dbru200714_0
HOME_LOC=/u02/app/oracle/product/12.2.0/dbhome_6
VERSION=19.8.0.0
PATCH_LEVEL=19.8.0.0.200714
DBs installed=******
Agent DB IDs=f7d46615-a223-4002-9270-fa69465a7f2a
OH Backup=NOT Configured
4.HOME_NAME=OraHome102_12201_dbru200714_0
HOME_LOC=/u02/app/oracle/product/12.2.0/dbhome_3
VERSION=19.8.0.0
PATCH_LEVEL=19.8.0.0.200714
DBs installed=*****
Agent DB IDs=dceed071-9655-4c84-bef4-74b20180c99b
OH Backup=NOT Configured
5.HOME_NAME=OraHome101_12201_dbru200714_0
HOME_LOC=/u02/app/oracle/product/12.2.0/dbhome_2
VERSION=19.8.0.0
PATCH_LEVEL=19.8.0.0.200714
DBs installed=*******
Agent DB IDs=b2a5220d-844b-49b6-9351-7c72cf3c9d9b
OH Backup=NOT Configured
6.HOME_NAME=OraHome100_19800_dbru200714_0
HOME_LOC=/u02/app/oracle/product/19.0.0.0/dbhome_2
VERSION=19.8.0.0
PATCH_LEVEL=19.8.0.0
DBs installed=********
Agent DB IDs=feedb0e0-2d10-4db7-997a-a78e4ab083ef
Checking oratab for Oracle Homes
$ sort -u -t : -k 2,2 /etc/oratab | grep -v "^#" | awk -F ":" '{print $2}'
/u01/app/19.0.0.0/grid
/u02/app/oracle/product/12.2.0/dbhome_2
/u02/app/oracle/product/12.2.0/dbhome_3
/u02/app/oracle/product/12.2.0/dbhome_4
/u02/app/oracle/product/12.2.0/dbhome_6
/u02/app/oracle/product/12.2.0/dbhome_7
/u02/app/oracle/product/19.0.0.0/dbhome_2
Here is the crontab schedule:
00 01 * * * find /u01/app/grid/diag/crs/*/crs/trace -name "*.tr?" -mtime +30 -exec rm -f {} \;
00 01 * * * find /u02/app/oracle/product/*/*/rdbms/audit -name "*.aud" -mtime +366 -exec rm -f {} \;
00 01 * * * find /u02/app/oracle/product/*/*/rdbms/log -name "*.tr?" -mtime +200 -exec rm -f {} \;
00 01 * * * find /u02/app/oracle/product/*/*/rdbms/log -name "cdmp*" -mtime +200 -exec rm -rf {} \;
00 04 * * * find /u02/app/oracle/diag/rdbms/*/*/cdump -name "core*" -mtime +200 -exec rm -rf {} \;
Here is the explanation for what (*) represents and examples:
00 01 * * * find /u01/app/grid/diag/crs/*/crs/trace -name "*.tr?" -mtime +30 -exec rm -f {} \;
ls -ld /u01/app/grid/diag/crs/*/crs/trace
* = hostname
Example:
$ ls -ld /u01/app/grid/diag/crs/*/crs/trace
drwxrwxr-x 2 grid oinstall 135168 Mar 26 18:40 /u01/app/grid/diag/crs/hostname/crs/trace
==============================
00 01 * * * find /u02/app/oracle/product/*/*/rdbms/audit -name "*.aud" -mtime +366 -exec rm -f {} \;
ls -ld /u02/app/oracle/product/*/*/rdbms/audit
*/* = version/dbhome
Example:
$ ls -ld /u02/app/oracle/product/*/*/rdbms/audit
drwxr-xr-x 9 oracle oinstall 614400 Mar 26 18:32 /u02/app/oracle/product/12.2.0/dbhome_2/rdbms/audit
drwxr-xr-x 2 oracle oinstall 253952 Mar 26 18:40 /u02/app/oracle/product/12.2.0/dbhome_3/rdbms/audit
drwxr-xr-x 2 oracle oinstall 294912 Mar 26 18:32 /u02/app/oracle/product/12.2.0/dbhome_4/rdbms/audit
drwxr-xr-x 4 oracle oinstall 94208 Mar 26 18:32 /u02/app/oracle/product/12.2.0/dbhome_6/rdbms/audit
drwxr-xr-x 2 oracle oinstall 4096 Mar 1 02:31 /u02/app/oracle/product/12.2.0/dbhome_7/rdbms/audit
drwxr-xr-x 3 oracle oinstall 5783552 Mar 26 18:32 /u02/app/oracle/product/19.0.0.0/dbhome_2/rdbms/audit
==============================
00 01 * * * find /u02/app/oracle/product/*/*/rdbms/log -name "*.tr?" -mtime +200 -exec rm -f {} \;
ls -l /u02/app/oracle/product/*/*/rdbms/log/*.tr?
*/* = version/dbhome
Example:
$ ls -l /u02/app/oracle/product/*/*/rdbms/log/*.tr?
-rw-r----- 1 oracle asmadmin 868 Feb 19 17:41 /u02/app/oracle/product/12.2.0/dbhome_2/rdbms/log/*******2_ora_57506.trc
-rw-r----- 1 oracle asmadmin 868 Dec 4 18:06 /u02/app/oracle/product/12.2.0/dbhome_2/rdbms/log/*******2_ora_66404.trc
-rw-r----- 1 oracle asmadmin 862 Mar 24 19:38 /u02/app/oracle/product/12.2.0/dbhome_3/rdbms/log/*****2_ora_217755.trc
-rw-r----- 1 oracle asmadmin 869 Feb 18 21:51 /u02/app/oracle/product/12.2.0/dbhome_4/rdbms/log/*****2_ora_351349.trc
-rw-r----- 1 oracle asmadmin 867 Feb 19 17:41 /u02/app/oracle/product/12.2.0/dbhome_4/rdbms/log/*****2_ora_57519.trc
-rw-r----- 1 oracle asmadmin 866 Mar 1 20:01 /u02/app/oracle/product/12.2.0/dbhome_6/rdbms/log/******2_ora_167170.trc
-rw-r----- 1 oracle asmadmin 831 Mar 1 02:31 /u02/app/oracle/product/12.2.0/dbhome_7/rdbms/log/*****2_ora_314160.trc
==============================
00 01 * * * find /u02/app/oracle/product/*/*/rdbms/log -name "cdmp*" -mtime +200 -exec rm -rf {} \;
ls -ld /u02/app/oracle/diag/rdbms/*/*/cdump
*/* = db_unique_name/db_name
Example:
$ ls -ld /u02/app/oracle/diag/rdbms/*/*/cdump
drwxr-xr-x 2 oracle asmadmin 4096 Sep 3 2020 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump
drwxr-xr-x 2 oracle asmadmin 4096 Sep 2 2020 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump
drwxr-xr-x 2 oracle asmadmin 4096 Sep 21 2020 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump
drwxr-xr-x 2 oracle asmadmin 4096 Feb 17 02:35 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump
drwxr-xr-x 2 oracle asmadmin 4096 Sep 21 2020 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump
drwxr-xr-x 2 oracle asmadmin 4096 Feb 18 21:51 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump
drwxr-xr-x 2 oracle asmadmin 4096 Sep 25 07:13 /u02/app/oracle/diag/rdbms/db_unique_name/db_name/cdump
It’s also possible to use adrci to configure SHORTP_POLICY and LONGP_POLICY.
If new homes are created, then would SHORTP_POLICY and LONGP_POLICY need up be updated for the new homes?
Alternatively, can download and use purgeLogs: Cleanup traces, logs in one command (Doc ID 2081655.1)