Creating and running an Oracle 18.0.0.0.0 DB instance on Oracle Linux

This post is also available in: Português

In my previous post I showed how to install the Oracle 18c Exadata binaries in a Oracle Linux 7. Next step is to create and run a database in this environment.

Note that this is intended for study only and test the amazing new features of 18c, following this article can make you probably face very weird problems and don't open any SR in case you face those errors because the steps below are not supported by oracle.

The biggest problem of running the Exadata binaries on a non-exa env is that when you try to run a "startup nomount", you get a weird: ORA-12754: Feature 'startup' is disabled due to missing capability 'Runtime Environment'.

[oracle@ora18cserver ~]$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 Production on Mon Feb 26 12:02:07 2018
Version 18.1.0.0.0

Copyright (c) 1982, 2017, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount;
ORA-12754: Feature 'startup' is disabled due to missing capability 'Runtime Environment'.
SQL> 

This error ends up preventing you from creating or stating any instance, even with dbca.

After investigating, I've found out that one library is causing it:

  • $ORACLE_HOME/lib/libserver18.a - Size: 442 MB

This is the main oracle database library and it is responsible for trowing the error above. Disassembling a library and modifying it contents to avoid the error above is not something people can easily do (and probably even not legal). So my advise is to replace it with a working one, after installing the binaries.

However, you are probably asking where can you find a working version of this library? My recommendation is to create an Oracle Cloud trial account and deploy a 18c DB in your own Oracle Cloud environment.

I've written another article showing step by step how to create a 18c in Oracle Cloud. Take a look.

UPDATE:

After publishing this article, I've received a few feedback of other methods people used to create the DB. Two of them brought my attention:

Continuing with the library method, let me do a demo in my environment running in a Virtualbox, after I got the libserver18.a from my OPC.

First, let's try to start the instance in nomount and check what happens:

[oracle@ora18cserver ~]$ export ORACLE_HOME=/u01/app/oracle/product/18.0.0/dbhome_1
[oracle@ora18cserver ~]$ export ORACLE_SID=orcl
[oracle@ora18cserver ~]$ export PATH=$PATH:$ORACLE_HOME/bin
[oracle@ora18cserver ~]$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 Production on Mon Feb 26 21:51:12 2018
Version 18.1.0.0.0

Copyright (c) 1982, 2017, Oracle.  All rights reserved.


Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.1.0.0.0

SQL> startup nomount;
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/18.0.0/dbhome_1/dbs/initorcl.ora'
SQL> exit
Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.1.0.0.0
[oracle@ora18cserver ~]$

I forgot the pfile:

[oracle@ora18cserver ~]$ echo "db_name=orcl" > $ORACLE_HOME/dbs/initorcl.ora
[oracle@ora18cserver ~]$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 Production on Mon Feb 26 21:58:29 2018
Version 18.1.0.0.0

Copyright (c) 1982, 2017, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount;
ORA-12754: Feature 'startup' is disabled due to missing capability 'Runtime Environment'.
SQL> exit
Disconnected
[oracle@ora18cserver ~]$

So here is the point we got the ORA-12754 error.

Now let me replace the lib for the one from my OPC environment and see what happens:

[oracle@ora18cserver ~]$ cd $ORACLE_HOME/lib
[oracle@ora18cserver lib]$ mv libserver18.a libserver18.a.orig
[oracle@ora18cserver lib]$ unzip ~/libserver18.a.zip -d ./
Archive:  /home/oracle/libserver18.a.zip
  inflating: ./libserver18.a         
[oracle@ora18cserver lib]$ cd
[oracle@ora18cserver ~]$ relink all
writing relink log to: /u01/app/oracle/product/18.0.0/dbhome_1/install/relink_2018-02-26_22-01-57PM.log
[oracle@ora18cserver ~]$ sqlplus / as sysdba

SQL*Plus: Release 18.0.0.0.0 Production on Mon Feb 26 22:02:54 2018
Version 18.1.0.0.0

Copyright (c) 1982, 2017, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup nomount;
ORACLE instance started.

Total System Global Area  243266936 bytes
Fixed Size		    8656248 bytes
Variable Size		  180355072 bytes
Database Buffers	   50331648 bytes
Redo Buffers		    3923968 bytes
SQL> exit
Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.1.0.0.0
[oracle@ora18cserver lib]$

Note that the file libserver18.a.zip in my home is the lib file from my OPC. Also, I had to run a relink all in the end. Otherwise the error would persist.

ORA-12754 error is not showing anymore, let's create an instance with dbca!

I won't cover here all the steps of dbca here because you are probably very used to it.

Wait until all the actions are performed:

And after some time it completed:

And lastly we can see we have our 18c database running in the Virtualbox:

 

Happy 18c playing.

 

Have you enjoyed? Please leave a comment or give a 👍!

13 comments

Skip to comment form

    • Pankaj Dhar on March 1, 2018 at 16:54
    • Reply

    I tried your both documents and it works except the issue with lib.
    Do you mind sharing libserver18.a?

      • Pankaj Dhar on March 2, 2018 at 17:24
      • Reply

      Instead of changing lib file one can get the database running as follows -
      1. instead of creating database using dbca, use dbca to get the scripts.
      2. there will be 3 init* files. Modify all of them just place _exadata_feature_on=true.
      3. execute xxxx.sh script to run and build database.

      1. And thanks for sharing this method, this is amazing!

        • Roua Fouad on March 22, 2018 at 17:20
        • Reply

        please I do as you exactly modify and I didnot face the erro but I donot know how to execute xxxx.sh script to run and build database ? could you help me please ...

          • Londi Tangu on March 27, 2018 at 17:50
          • Reply

          From directory where the script is stored and run

          $ ./xxxx.sh

        • Londi Tangu on March 23, 2018 at 16:12
        • Reply

        Amazing. Worked like a charm Pankaj! Thanks for sharing.

      2. Alternate you can create a database template and modify it with "_exadata_feature_on=true" parameter.

    1. Hi Pankaj,
      I've posted an article showing how to create your 18c in OPC. Take a look.
      Regards,
      RJ

    • mazen on March 14, 2018 at 09:13
    • Reply

    hi all ,
    just in case someone would like to upgrade grid infrastructure from 12.2 to 18c , create pfile from the current spfile before upgrading. it would startup next time unless you add _exadata_feature_on=true to the pfile and startup from pfile=xxx
    thx all.

  1. hi all,

    while installing the database using dbca method i am getting below error. can you any one please help me on this.

    DBT-06303 unable to check if location is on ACFS.

    • sovann on March 26, 2018 at 06:56
    • Reply

    Hello RJ,
    can you upload libserver18.a.zip . ? after I startup db but I cannot open db

  2. To good.

    Without enabling exadata feature in init file how a database can be created with binary of oracle exadata.
    The init file from script doesn't have this hidden parameter.

    • Bob Bryla on June 8, 2018 at 23:18
    • Reply

    Trying a fresh install of 18c GI on my OL 7.4 VM, the installer works until it gets to the ASMCA step -- then I get the ORA-12754. I see that there is a "libserver18.a" in the Grid Home -- would that be the same one that would work for the DB Home? I also was thinking to try the "_exadata_feature_on"=true parameter trick -- but not sure where I'd set it for ASM.

Leave a Reply

Your email address will not be published.