User Tools

Site Tools


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.

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
oracle_data_appliance_oda.txt · Last modified: 2019/01/30 11:32 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki