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

From dbawiki
Jump to: navigation, search
Line 3: Line 3:
 
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 />
For example to create a database on ODA, it's no longer
+
===Useful commands===
 +
====Create a database====
 
<pre>
 
<pre>
dbca
+
oakcli create database -d <database name>
 +
e.g.
 +
oakcli create database -d prod
 +
</pre>
 +
====Create a new ORACLE_HOME====
 +
For upgrades, create a new ORACLE_HOME like this
 +
<pre>
 +
create dbhome -version <RDBMS version>
 +
e.g.
 +
create dbhome -version 12.1.0.2.9
 +
</pre>
 +
====Upgrade 1 database to new version====
 +
<pre>
 +
oakcli upgrade database -db <dbname> -to <destination home name>
 +
e.g.
 +
oakcli upgrade database -db prod -to 11r2_dbhome1
 
</pre>
 
</pre>
it's
+
====Upgrade all databases from a given ORACLE_HOME to new version====
 
<pre>
 
<pre>
oakcli create database -d <database name>
+
oakcli upgrade database -from <source home name> -to <destination home name>
 +
e.g.
 +
oakcli upgrade database -from 11r1_dbhome1 -to 11r2_dbhome1
 
</pre>
 
</pre>
 
===Useful queries===
 
===Useful queries===

Revision as of 09:32, 15 December 2016

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.
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.

Useful commands

Create a database

oakcli create database -d <database name>
e.g.
oakcli create database -d prod

Create a new ORACLE_HOME

For upgrades, create a new ORACLE_HOME like this

create dbhome -version <RDBMS version>
e.g.
create dbhome -version 12.1.0.2.9

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

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
/