Blog 
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 acfstoolsdrive.sh:

grid@seha01% vi $ORACLE_HOME/lib/acfstoolsdriver.sh
#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/LINUX.X64_193000_db_home.zip
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/addnode.sh -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
@/u01/app/oracle/admin/CARAJAN/scripts/CreateDB.sql
@/u01/app/oracle/admin/CARAJAN/scripts/CreateDBFiles.sql
@/u01/app/oracle/admin/CARAJAN/scripts/CreateDBCatalog.sql
@/u01/app/oracle/admin/CARAJAN/scripts/CreateClustDBViews.sql
@/u01/app/oracle/admin/CARAJAN/scripts/lockAccount.sql
@/u01/app/oracle/admin/CARAJAN/scripts/postDBCreation.sql

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!

Conclusion

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 https://blogs.oracle.com/maa/standard-edition-2-announcing-standard-edition-high-availability and Markus Flechtner https://www.markusdba.net/2020/05/11/standard-edition-high-availability-first-impressions/

Good luck for your tests and implementations and stay heathy.

Addendum:

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

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

Guten Tag Herr Ahrends,

ich habe Ihren Beitrag und alles verfügbare Material im Internet gelesen, aber ich bin nicht in der Lage, die SEHA2 zu konfigurieren:

[FATAL] [INS-06006] Die passwortlose SSH-Verbindung konnte zwischen den folgenden Knoten nicht eingerichtet werden: [ora].
URSACHE: Entweder ist die passwortlose SSH-Verbindung zwischen den angegebenen Knoten nicht eingerichtet oder sie sind nicht erreichbar. Weitere Einzelheiten finden Sie in den Protokollen.
AKTION: Weitere Einzelheiten finden Sie in den Protokollen oder wenden Sie sich an die Oracle Support Services.
*WEITERE DETAILS*
PRVF-5311 : Die Datei “/tmp/ora.getFileInfo1990453.out” existiert entweder nicht oder ist auf dem Knoten “ora” nicht zugänglich.

-mit Grid diesen Fehler:

[FATAL] [INS-41006] Virtuelle Hostnamen sind nicht für alle zu konfigurierenden Knoten angegeben.
ACTION: Virtuelle Hostnamen sind optional. Wenn sie jedoch einmal für einen Knoten des Clusters angegeben wurden, müssen sie bei der Konfiguration für alle Knoten angegeben werden.

— Ich habe keine Probleme mit der Verbindung oder dem Netzwerk.

Haben Sie irgendwelche Vorschläge?

Hallo Herr Pindo,
es gibt einige Gründe für diese Fehlermeldung. Es würde aber zu weit führen, Sie hier im Blog zu beschreiben, daher würde ich vorschlagen, dass Sie sich einfach per Mail bei mir melden.

Danke

Leave a Reply

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

What can CarajanDB do for you?