miércoles, 2 de mayo de 2018

Instala Oracle 18c sobre Linux 6 y crea una nueva base de datos.


Como comenté en mi articulo anterior, el instalador para Oracle 18c On-premise se encontrará disponible para descarga recién en Julio de este año. Sin embargo, existe una forma de poder probar la versión 18c en estos momentos.  Es posible descargar el instalador para Exadata-SuperCluster y probarlo en nuestras maquinas virtuales o en algún ambiente de pruebas.

ES MUY IMPORTANTE ACLARAR que esta versión no esta soportada por lo que no deben utilizar este instalador para ambientes de producción.  Es necesario esperar a Julio para poder tener la versión oficial para ambientes On-premise.

Aquí les enseño como conseguir la versión Oracle 18c para Linux y además les muestro como poder crear una base de datos nueva sin incurrir en errores propios de la instalación.



Instalación Oracle 18c

1.     Descargamos el instalador Oracle 18c para Exadata desde la página: https://edelivery.oracle.com


2.     Nos autenticamos a la pagina con nuestro usuario de Oracle Support y buscamos el instalador con las palabras claves “oracle database”



3.     Seleccionamos el instalador de base de datos Oracle 18c para Linux y lo descargamos.


4.     Una vez descargado lo copiamos al servidor de pruebas que vamos a utilizar.


[oracle@oracle18c dbs]$ cd /u01/Instaladores/
[oracle@oracle18c Instaladores]$ ls -l Oracle_database_18_0_0_0.zip

-rw-r--r--. 1 oracle oinstall 3760936065 Mar  9 10:49 Oracle_database_18_0_0_0.zip


5.     Antes de instalar Oracle 18c debemos de revisar que los pre-requisitos de sistema operativo se cumplan correctamente. 
Lo requisitos para Oracle 18c son muy parecidos a los requisitos de Oracle 12c y los puedes revisar en mis artículos anteriores:

6.     El instalador descargado ZIP tiene la misma característica que el instalador de la Infraestructura Grid para Oracle 12c Release 2.  Ya viene con todos los archivos y solo se debe descomprimir en la dirección donde queremos instalar el motor de base de datos.


[oracle@oracle18c Instaladores]$ mv Oracle_database_18_0_0_0.zip /u01/app/oracle/product/18.0.0/dbhome_1/.
[oracle@oracle18c Instaladores]$ cd /u01/app/oracle/product/18.0.0/dbhome_1

[oracle@oracle18c dbhome_1]$ unzip -q Oracle_database_18_0_0_0.zip


7.     Una vez que se descomprime, debemos de activar una sesión grafica en nuestro servidor. Para mi caso utilizo VNC.


[oracle@oracle18c ~]$ vncserver

New 'oracle18c.oracle.com:1 (oracle)' desktop is oracle18c.oracle.com:1

Starting applications specified in /home/oracle/.vnc/xstartup
Log file is /home/oracle/.vnc/oracle18c.oracle.com:1.log


8.  Con la sesión gráfica y con los archivos descomprimidos en la ruta de instalación ORACLE_HOME 18c procedemos a configurar el motor de base de datos.  Ejecutamos el comando runInstaller


[oracle@oracle18c ~]$ cd /u01/app/oracle/product/18.0.0/dbhome_1
[oracle@oracle18c dbhome_1]$ ./runInstaller


9.  Al ejecutar el comando runInstaller nos muestra la primera pantalla de Instalación. En esta pantalla seleccionamos la opción “Set Up Software Only”


10.  Procedemos a configurar Oracle 18c como Single Instance.


11.  Seleccionamos la edición Enterprise.


12.  Definimos la variable ORACLE_BASE.  ORACLE_HOME ya no se define porque ya se tiene descomprimido los archivos en dicho directorio.


13.  Definimos los grupos de sistema operativo (Igual que en Oracle 12c)


14.  Se realiza la comprobación del servidor para la instalación.



15.  Procedemos con la revisión de la configuración y luego la instalación del motor de base de datos.


































16.  Ejecutamos el comando root.sh y finalizamos la instalación. 
Para esta instalación tenemos la opción de poder instalar Oracle Trace File Analyzer (TFA), yo recomiendo instalarlo también.


[root@oracle18c ~]# /u01/app/oracle/product/18.0.0/dbhome_1/root.sh

Performing root user operation.

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/18.0.0/dbhome_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The contents of "dbhome" have not changed. No need to overwrite.
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root script.
Now product-specific root actions will be performed.
Do you want to setup Oracle Trace File Analyzer (TFA) now? yes|[no] : yes
Installing Oracle Trace File Analyzer (TFA).
Log File: /u01/app/oracle/product/18.0.0/dbhome_1/install/root_oracle12c.oracle.com_2018-05-01_17-02-35-897672224.log
Finished installing Oracle Trace File Analyzer (TFA)


Una vez instalado el motor podemos proceder a crear nuevas bases de datos.



Creación de una base de datos Oracle 18c.


Al momento de ejecutar el comando DBCA para crear una base de datos nueva, la instalación fallará con el siguiente error: 

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


Este error se debe a la librería principal de Oracle llamada libserver18.a. Como esta librería viene de un instalador Exadata no esta soportado para funcionar correctamente en un ambiente No-Exadata.

Algunos foros sugieren reemplazar este archivo con el archivo de un motor instalado en un ambiente Cloud. Sin embargo, yo no cuento con un ambiente Cloud por lo que decido tomar otra opción.  Resolver el problema definiendo el parámetro oculto:

”_exadata_feature_on” = true

Con este parámetro el error ya no se presenta al momento de levantar la base de datos en mi ambiente de pruebas.

Para lograr definir este parámetro ejecuto el comando DBCA pero en la opción final, selecciono SOLO la opción de generar los scripts de creación de base de datos. 


Una vez creados los scripts lo que tengo que hacer es agregar el parámetro ”_exadata_feature_on” al 
archivo init.ora que se crea en la carpeta scripts.

[oracle@oracle12c ~]$ cat /u01/app/oracle/admin/cdb1/scripts/init.ora

##############################################################################
# Copyright (c) 1991, 2013 by Oracle Corporation
##############################################################################

###########################################
# System Managed Undo and Rollback Segments
###########################################
undo_tablespace=UNDOTBS1

_exadata_feature_on=true



Finamente ejecuto el comando SH que se genera con el DBCA para poder crear la base de datos de manera manual.  

[oracle@oracle18c scripts]$ cd /u01/app/oracle/admin/cdb1/scripts
[oracle@oracle18c scripts]$ sh cdb1.sh
You should Add this entry in the /etc/oratab: cdb1:/u01/app/oracle/product/18.0.0/dbhome_1:Y

SQL*Plus: Release 18.0.0.0.0 Production on Tue May 1 18:36:18 2018
Version 18.1.0.0.0

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

Enter new password for SYS:
Enter new password for SYSTEM:

Enter password for SYS:


SQL> connect "SYS"/"&&sysPassword" as SYSDBA
Connected.
SQL> alter session set container=PDB1;

Session altered.

SQL> set echo on
SQL> spool /u01/app/oracle/admin/cdb1/scripts/postPDBCreation.log append
SQL> Select count(*) from dba_registry where comp_id = 'DV' and status='VALID';

  COUNT(*)
----------
         0

SQL> alter session set container=CDB$ROOT;

Session altered.

SQL> exit;
Disconnected from Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.1.0.0.0
[oracle@oracle12c scripts]$



Al finalizar la instalación compruebo que la base de datos se haya creado correctamente.


SQL*Plus: Release 18.0.0.0.0 Production on Tue May 1 19:54:05 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> select open_mode from v$database;

OPEN_MODE
--------------------
READ WRITE

SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 PDB1                           READ WRITE NO



hasta el momento es la mejor manera que he podido encontrar para poder superar el error de creación de bases de datos. 
Una vez que el instalador oficial se encuentre disponible no tendremos que seguir este procedimiento, pero por ahora es divertido probar Oracle 18c y sus nuevas funcionalidades de esta manera.


2 comentarios:

  1. Al momento de ejecutar el ./runInstaller me sale un error: ./runInstaller: line 67: /u01/app/oracle/product/18.3.0/dbhome_1/perl/bin/perl: cannot execute binary file

    ResponderBorrar
    Respuestas
    1. Hola juan, revisa que hayas descomprimido el instalador con el usuario oracle. Al parecer es un problema de permisos.

      Borrar