Oracle Database Appliance (ODA) is a rack mounted “all-in-one” box supplied by Oracle. It contains 2 nodes, 2 networks, 2 power supplies and 1 or 2 storage (magnetic disk or SSD) units accessible to both nodes.
The 2 nodes talk to each other and to storage across an internal 40Gb/s InfiniBand network.
It can be virtualised or bare-metal. You can setup single instance databases, RAC-One (active-passive) or RAC (active-active) databases.
A whole new set of commands is used to interact with ODA - oakcli.
If virtual, the following command will show 'VM-…' followed by the hardware model used.
oakcli show env_hw
gives…
VM-ODA_BASE ODA X4-2
Shows server details such as power consumption, temperature and ILOM IP address
oakcli show server
Also shows total number of available CPUs
oakcli show cpupool -node 0
oakcli show dbhomes
oakcli show databases
Name Type Storage HomeName HomeLocation Version ----- ------ -------- -------------- ---------------- ---------- ANT5O RAC OraDb12102_home1 /u01/app/oracle/product/12.1.0.2/dbhome_1 12.1.0.2.160419(22291127,21948344) PRJESS2 RAC ASM OraDb12102_home1 /u01/app/oracle/product/12.1.0.2/dbhome_1 12.1.0.2.160419(22291127,21948344) DEVOTASO SINGLE OraDb12102_home1 /u01/app/oracle/product/12.1.0.2/dbhome_1 12.1.0.2.160419(22291127,21948344) CHA5O RAC OraDb12102_home1 /u01/app/oracle/product/12.1.0.2/dbhome_1 12.1.0.2.160419(22291127,21948344) TSTEV3ST SINGLE ASM OraDb12102_home1 /u01/app/oracle/product/12.1.0.2/dbhome_1 12.1.0.2.160419(22291127,21948344) OEMREP RAC ASM OraDb12102_home1 /u01/app/oracle/product/12.1.0.2/dbhome_1 12.1.0.2.160419(22291127,21948344)
This will probably be a one-off per system!
oakcli deploy
oakcli inventory -q
Reference: Metalink Note: 1681062.1
Does not affect the inventory listing.
cd /opt/oracle/oak/pkgrepos du -hsx . 16G .
e.g. This cleans out old logs and patch files up to version 2.5.0.0.0 (probably in /opt/oracle/oak/pkgrepos)
oakcli manage cleanrepo --ver 2.5.0.0.0
Use this tool to clean out general ODA log files. Available in this note
Specify a general cleanup or individual components
Usage:
purgeODALog [[ -days <days> ]]
[[ -orcl <days> ]] | [[ -tfa <days> ]] |
[[ -osw <days> ]] | [[ -oak <days> ]] |
[[ -extra '<folder>':<days> | [[, '<folder>':<days>]] ]]
[[ -lsnr ]]
[[ -dryrun ]]
purgeODALog OPTIONS
-days <days> Purge components logs & traces older then # days
-orcl <days> Purge only GI/RDBMS logs & traces (Default 30 days)
-tfa <days> Purge only TFA repository older then # days (Default 30 days)
-osw <days> Purge only OSW archives older then # days (Default 30 days)
-oak <days> Purge only OAK logs and trace older then # days (Default 30 days)
-extra '<folder>':<days> Purge only files in user specified folders (Default 30 days)
-lsnr It will force the cleanup of listeners log independently by the age
-dryrun It will show the purge commands w/o execute them
-h Display this help and exit
Example:
purgeODALog
purgeODALog -days 20
purgeODALog -orcl 50
purgeODALog -orcl 50 -lsnr
purgeODALog -tfa 50
purgeODALog -osw 20 -oak 10
purgeODALog -orcl 20 -osw 20 -oak 10
purgeODALog -orcl 20 -osw 20 -oak 10 -extra /tmp:10,/var/log:20
oakcli deploy oda_base
oakcli create database -d <database name> e.g. oakcli create database -d prod
For upgrades etc., you can create a new ORACLE_HOME like this
create dbhome -version <RDBMS version> e.g. create dbhome -version 12.1.0.2
oakcli upgrade database -db <dbname> -to <destination home name> e.g. oakcli upgrade database -db prod -to 11r2_dbhome1
oakcli upgrade database -from <source home name> -to <destination home name> e.g. oakcli upgrade database -from 11r1_dbhome1 -to 11r2_dbhome1
oakcli show vm
oakcli configure vm sdtcsynodadb3a -failover true -prefnode 0
oakcli start vm sdtcsynodadb3a
As seen on Pythian
prompt ------------------------------------------
prompt Patches applied to both the $OH and the DB
prompt ------------------------------------------
with a as (select dbms_qopatch.get_opatch_lsinventory patch_output from dual)
select x.patch_id
, x.patch_uid
, x.rollbackable
, s.status
, x.description
from a
, xmltable('InventoryInstance/patches/*'
passing a.patch_output
columns
patch_id number path 'patchID',
patch_uid number path 'uniquePatchID',
description varchar2(80) path 'patchDescription',
rollbackable varchar2(8) path 'rollbackable'
) x
, dba_registry_sqlpatch s
where x.patch_id = s.patch_id
and x.patch_uid = s.patch_uid
-- and s.bundle_series = 'PSU'
/
prompt --------------------------------------------------------
prompt Patches installed into the $OH but not applied to the DB
prompt --------------------------------------------------------
with a as (select dbms_qopatch.get_opatch_lsinventory patch_output from dual)
select x.patch_id
, x.patch_uid
, x.description
from a
, xmltable('InventoryInstance/patches/*'
passing a.patch_output
columns
patch_id number path 'patchID',
patch_uid number path 'uniquePatchID',
description varchar2(80) path 'patchDescription'
) x
minus
select s.patch_id
, s.patch_uid
, s.description
from dba_registry_sqlpatch s
/
prompt --------------------------------------------------------
prompt Patches applied to the DB but not installed into the $OH
prompt --------------------------------------------------------
with a as (select dbms_qopatch.get_opatch_lsinventory patch_output from dual)
select s.patch_id
, s.patch_uid
, s.description
from dba_registry_sqlpatch s
minus
select x.patch_id
, x.patch_uid
, x.description
from a
, xmltable('InventoryInstance/patches/*'
passing a.patch_output
columns
patch_id number path 'patchID',
patch_uid number path 'uniquePatchID',
description varchar2(80) path 'patchDescription'
) x
/
oakcli manage diagcollect
oakcli orachk -h