Table of Contents
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.
Patching Oracle Database Appliance (ODA)
Useful commands
Is your ODA installation bare-metal or does it have a virtualised image installed?
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
Show server status
Shows server details such as power consumption, temperature and ILOM IP address
oakcli show server
How many processors are currently allocated to ODA?
Also shows total number of available CPUs
oakcli show cpupool -node 0
Show installed ORACLE_HOMES
oakcli show dbhomes
Show installed databases
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)
Deploy virtualised platform on ODA
This will probably be a one-off per system!
oakcli deploy
See history of installed patches
oakcli inventory -q
Clean out old patches
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
ODA (Oracle Database Appliance): Cleanup trace and log files Using purgeODALog Tool (Doc ID 2081655.1)
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
Deploy ODA_BASE on ODA
oakcli deploy oda_base
Create a database
oakcli create database -d <database name> e.g. oakcli create database -d prod
Create a new ORACLE_HOME
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
Upgrade 1 database to new version
oakcli upgrade database -db <dbname> -to <destination home name> e.g. oakcli upgrade database -db prod -to 11r2_dbhome1
Upgrade all databases from a given ORACLE_HOME to new version
oakcli upgrade database -from <source home name> -to <destination home name> e.g. oakcli upgrade database -from 11r1_dbhome1 -to 11r2_dbhome1
Show the available virtual machines
oakcli show vm
Configure a virtual machine to start on a particular cluster node
oakcli configure vm sdtcsynodadb3a -failover true -prefnode 0
Start a virtual machine
oakcli start vm sdtcsynodadb3a
Useful queries
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
/
Package up useful diagnostic data when opening an SR at Oracle
oakcli manage diagcollect
Health check a RAC system on ODA
oakcli orachk -h
