Standard Edition High Availability

On May 7th Oracle released “Standard Edition High Availability” (SEHA). There has been a high availability gap so far because as you probably know Oracle RAC is no longer available for Standard Edition since Version 19.
(see Blog “No RAC for Standard Edition“). In March Oracle announced that there will be an alternative and … Here it is.

SEHA is a solution based on Oracle clusterware with two nodes and Oracle Standard Edition running in single instance mode. Oracle 19c with the April Release Update (19.7) is the minimum requirement.

Software Installation

I won’t explain the installation of the Grid Infrastructure as there are many blogs and documents with various descriptions. Because SEHA is only supported with ASM and ACFS my favorite installation on NFS is not allowed.

Hint: I had problems with the Release Update 19.7 apply for the Grid Infrastructure. It failed with “CLSRSC-400: A system reboot is required to continue installing“. The only solution I found so far is editing the following lines in the file

grid@seha01% vi $ORACLE_HOME/lib/
#exec ${RUNTHIS} $@
exit 0

The database software must be installed on only one node:

oracle@seha01% mkdir -p /u01/app/oracle/product/19/dbhome_1
oracle@seha01% cd /u01/app/oracle/product/19/dbhome_1
oracle@seha01% unzip /stage/oracle /19c/
oracle@seha01% ./runInstaller -applyRU /stage/19/patch/30899722/30869156

I skip the installation part as there are many blogs with proper descriptions available. The important choices are “Set Up Software Only” “Single instance database installation“ and “Standard Edition 2“ of course.

The second node is added using the “addnode” procedure:

oracle@seha01% $ORACLE_HOME/addnode/ -silent CLUSTER_NEW_NODES=seha02

That’s it for the software installation.

Create Database

For a long time I’m using dbca to create a new database. I don’t execute the creation via dbca but use the generated scripts instead. Again because of the many blogs on how to create a SE2 database I’ll skip that part.

There is no indication that SEHA is being used in the scripts because dbca doesn’t know that feature. But here is a script excerpt.

oracle@seha01[CARAJAN]% more CARAJAN.sql
set verify off
ACCEPT sysPassword CHAR PROMPT 'Enter new password for SYS: ' HIDE
ACCEPT systemPassword CHAR PROMPT 'Enter new password for SYSTEM: ' HIDE
ACCEPT pdbAdminPassword CHAR PROMPT 'Enter new password for PDBADMIN: ' HIDE
host /u01/app/oracle/product/19/dbhome_1/bin/srvctl add database -d CARAJAN -o /u01/app/oracle/product/19/dbhome_1 -n CARAJAN -x seha
01 -a "DATA,FRA"
host /u01/app/oracle/product/19/dbhome_1/bin/srvctl disable database -d CARAJAN
host /u01/app/oracle/product/19/dbhome_1/bin/orapwd file=/u01/app/oracle/product/19/dbhome_1/dbs/orapwCARAJAN force=y format=12
host /u01/app/grid/product/19/gridhome/bin/setasmgidwrap o=/u01/app/oracle/product/19/dbhome_1/bin/oracle

The database has already been created as cluster resource. The missing part is the second node which we now need to add:

oracle@seha01[CARAJAN]% srvctl modify database -db CARAJAN -node seha01,seha02

No idea why but the password is not yet stored in ASM but in ORACLE_HOME/dbs. So we need to change that:

grid@seha01[CARAJAN]% asmcmd pwcopy /u01/app/oracle/product/19/dbhome_1/dbs/orapwCARAJAN +DATA/CARAJAN/orapwCARAJAN 
oracle@seha01[CARAJAN]% srvctl modify database -db CARAJAN -pwfile +DATA/CARAJAN/orapwCARAJAN

That’s all: SEHA is ready to go!


The installation is pretty simple and the first tests are promising. The take over and instance start in case of a server failure takes about one minute. The relocation of the database also works.

oracle@seha01[CARAJAN]% srvctl relocate database -db CARAJAN -node seha0

But finally I encountered a problem::

For best practice you should create your own services for application connectivities. So I created a PDB named JOHANNES and an associated service named DEMO. As long as the service was active I was unable to relocate the database. The shutdown of the original instance fails while closing the PDB. And the new instance cannot be started properly. If I stop the service before I initiate the relocation everything works fine.

More information about SEHA can be found in other blogs. I would like to mention Markus Michalewicz and Markus Flechtner

Good luck for your tests and implementations and stay heathy.


The problem that relocation doesn’t work with services has been fixed in the meantime (see Bug 31128434).

2 comments on “Standard Edition High Availability

Thanks Johannes for sharing.

I have a question: did you get a chance to test different failure scenarios with SEHA? I was specifically looking for SEHA behaviour when there is a network failure on Active node.

Unfortunately I only tested server crashes not network failures. But as soon as I find some time I will continue with testing.

Leave a Reply

Your email address will not be published. Required fields are marked *

What can CarajanDB do for you?