Difference between revisions of "Oracle Data Appliance (ODA)"

From dbawiki
Jump to: navigation, search
 
(30 intermediate revisions by the same user not shown)
Line 1: Line 1:
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 2 sets of storage (magnetic disk or SSD) accessible to both nodes.<br />
+
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.<br />
 
The 2 nodes talk to each other and to storage across an internal 40Gb/s InfiniBand network.<br />
 
The 2 nodes talk to each other and to storage across an internal 40Gb/s InfiniBand network.<br />
 
It can be virtualised or bare-metal. You can setup single instance databases, RAC-One (active-passive) or RAC (active-active) databases.<br />
 
It can be virtualised or bare-metal. You can setup single instance databases, RAC-One (active-passive) or RAC (active-active) databases.<br />
 
A whole new set of commands is used to interact with ODA - oakcli.<br />
 
A whole new set of commands is used to interact with ODA - oakcli.<br />
* [[Patching Oracle Database Appliance (ODA)]]<br />
+
* [https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=1417713.2 Oracle Database Appliance Information Centre]
 
<br />
 
<br />
 +
===Patching Oracle Database Appliance (ODA)===
 +
* [[Patching Oracle Database Appliance (ODA)]]
 
===Useful commands===
 
===Useful commands===
 +
* [http://n23haveyoursay.blogspot.be/2015/12/oda-basic-commands-list.html oda basic commands list (and concise patch instructions)]
 +
====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.
 +
<pre>
 +
oakcli show env_hw
 +
</pre>
 +
gives...
 +
<pre>
 +
VM-ODA_BASE ODA X4-2
 +
</pre>
 +
 +
====Show server status====
 +
Shows server details such as power consumption, temperature and ILOM IP address
 +
<pre>
 +
oakcli show server
 +
</pre>
 +
====How many processors are currently allocated to ODA?====
 +
Also shows total number of available CPUs
 +
<pre>
 +
oakcli show cpupool -node 0
 +
</pre>
 +
 +
====Show installed ORACLE_HOMES====
 +
<pre>
 +
oakcli show dbhomes
 +
</pre>
 +
====Show installed databases====
 +
<pre>
 +
oakcli show databases
 +
</pre>
 +
<pre>
 +
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)
 +
</pre>
 +
 +
====Deploy virtualised platform on ODA====
 +
This will probably be a one-off per system!
 +
<pre>
 +
oakcli deploy
 +
</pre>
 +
====See history of installed patches====
 +
<pre>
 +
oakcli inventory -q
 +
</pre>
 +
====Clean out old patches====
 +
Reference: Metalink [https://support.oracle.com/epmos/faces/DocumentDisplay?id=1681062.1 Note: 1681062.1]<br />
 +
Does not affect the inventory listing.<br />
 +
<pre>
 +
cd /opt/oracle/oak/pkgrepos
 +
du -hsx .
 +
16G  .
 +
</pre>
 +
e.g. This cleans out old logs and patch files up to version 2.5.0.0.0 (probably in /opt/oracle/oak/pkgrepos)
 +
<pre>
 +
oakcli manage cleanrepo --ver 2.5.0.0.0
 +
</pre>
 +
 +
====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 [https://support.oracle.com/epmos/faces/DocumentDisplay?id=2081655.1 this note]<br />
 +
Specify a general cleanup or individual components
 +
<pre>
 +
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
 +
</pre>
 +
 +
====Deploy ODA_BASE on ODA====
 +
<pre>
 +
oakcli deploy oda_base
 +
</pre>
 +
 
====Create a database====
 
====Create a database====
 
<pre>
 
<pre>
Line 32: Line 136:
 
oakcli upgrade database -from 11r1_dbhome1 -to 11r2_dbhome1
 
oakcli upgrade database -from 11r1_dbhome1 -to 11r2_dbhome1
 
</pre>
 
</pre>
 +
====Show the available virtual machines====
 +
<pre>
 +
oakcli show vm
 +
</pre>
 +
====Configure a virtual machine to start on a particular cluster node====
 +
<pre>
 +
oakcli configure vm sdtcsynodadb3a -failover true -prefnode 0
 +
</pre>
 +
====Start a virtual machine====
 +
<pre>
 +
oakcli start vm sdtcsynodadb3a
 +
</pre>
 +
 
===Useful queries===
 
===Useful queries===
 
As seen on [https://www.pythian.com/blog/oracle-database-12c-patching-dbms_qopatch-opatch_xml_inv-and-datapatch/ Pythian]
 
As seen on [https://www.pythian.com/blog/oracle-database-12c-patching-dbms_qopatch-opatch_xml_inv-and-datapatch/ Pythian]
Line 115: Line 232:
  
  
 +
</pre>
 +
===Package up useful diagnostic data when opening an SR at Oracle===
 +
<pre>
 +
oakcli manage diagcollect
 +
</pre>
 +
===Health check a RAC system on ODA===
 +
* [https://support.oracle.com/epmos/faces/DocContentDisplay?id=1268927.2 Metalink note 1268927.2]
 +
<pre>
 +
oakcli orachk -h
 
</pre>
 
</pre>

Latest revision as of 11:34, 6 February 2017

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)[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