This post is also available in: English
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:
- https://mahmoudhatem.wordpress.com/2018/03/01/playing-with-oracle-db-18c-on-premises-before-official-release/ by Hatem Mahmoud, which involves using systemtap interceptions.
- Changing hidden parameter "_exadata_feature_on=true" before starting nomount the DB. Add this custom parameter in dbca or in your init file. Thanks Pankaj Dhar for showing me that.
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 👍!