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