Instalación de Oracle Database 23c Free Developer Release

Hace unas semanas fue liberada la versión Oracle Database 23c Free Developer Release, es una versión gratuita de Oracle Database 23c que ofrece a los desarrolladores acceso anticipado a las nuevas funciones de desarrollo de aplicaciones de Oracle Database 23c.

Vamos a realizar la instalación en nuestra virtual de Oracle Linux 8, con los siguientes pasos:

  • Habilitamos el canal de Oracle Linux 8 Developer
[root@localhost ~]# dnf install -y oraclelinux-developer-release-el8
Última comprobación de caducidad de metadatos hecha hace 0:13:45, el mié 07 jun 2023 12:35:54 CST.
Dependencias resueltas.
===================================================================================================================================================================================================================
 Paquete                                                            Arquitectura                            Versión                                       Repositorio                                         Tam.
===================================================================================================================================================================================================================
Instalando:
 oraclelinux-developer-release-el8                                  x86_64                                  1.0-7.el8                                     ol8_baseos_latest                                   16 k

Resumen de la transacción
===================================================================================================================================================================================================================
Instalar  1 Paquete

Tamaño total de la descarga: 16 k
Tamaño instalado: 18 k
Descargando paquetes:
oraclelinux-developer-release-el8-1.0-7.el8.x86_64.rpm                                                                                                                              26 kB/s |  16 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                               26 kB/s |  16 kB     00:00     
Ejecutando verificación de operación
Verificación de operación exitosa.
Ejecutando prueba de operaciones
Prueba de operación exitosa.
Ejecutando operación
  Preparando          :                                                                                                                                                                                        1/1 
  Instalando          : oraclelinux-developer-release-el8-1.0-7.el8.x86_64                                                                                                                                     1/1 
  Verificando         : oraclelinux-developer-release-el8-1.0-7.el8.x86_64                                                                                                                                     1/1 

Instalado:
  oraclelinux-developer-release-el8-1.0-7.el8.x86_64                                                                                                                                                               

¡Listo!

  • Instalamos el RPM de Oracle Database Preinstall
[root@localhost ~]# dnf install -y oracle-database-preinstall-23c
Última comprobación de caducidad de metadatos hecha hace 0:53:56, el mié 07 jun 2023 13:11:24 CST.
Dependencias resueltas.
===================================================================================================================================================================================================================
 Paquete                                                     Arquitectura                        Versión                                                      Repositorio                                     Tam.
===================================================================================================================================================================================================================
Instalando:
 oracle-database-preinstall-23c                              x86_64                              1.0-0.5.el8                                                  ol8_developer                                   30 k
Instalando dependencias:
 compat-openssl10                                            x86_64                              1:1.0.2o-4.el8_6                                             ol8_appstream                                  1.1 M
 glibc-devel                                                 x86_64                              2.28-225.0.2.el8                                             ol8_baseos_latest                               85 k
 ksh                                                         x86_64                              20120801-257.0.1.el8                                         ol8_appstream                                  929 k
 libnsl                                                      x86_64                              2.28-225.0.2.el8                                             ol8_baseos_latest                              107 k
 libxcrypt-devel                                             x86_64                              4.1.1-6.el8                                                  ol8_baseos_latest                               25 k
 lm_sensors-libs                                             x86_64                              3.4.0-23.20180522git70f7e08.el8                              ol8_baseos_latest                               59 k
 make                                                        x86_64                              1:4.2.1-11.el8                                               ol8_baseos_latest                              498 k
 sysstat                                                     x86_64                              11.7.3-9.0.1.el8                                             ol8_appstream                                  427 k

Resumen de la transacción
===================================================================================================================================================================================================================
Instalar  9 Paquetes

Tamaño total de la descarga: 3.2 M
Tamaño instalado: 9.4 M
Descargando paquetes:
(1/9): libxcrypt-devel-4.1.1-6.el8.x86_64.rpm                                                                                                                                       90 kB/s |  25 kB     00:00    
(2/9): glibc-devel-2.28-225.0.2.el8.x86_64.rpm                                                                                                                                     277 kB/s |  85 kB     00:00    
(3/9): libnsl-2.28-225.0.2.el8.x86_64.rpm                                                                                                                                          343 kB/s | 107 kB     00:00    
(4/9): lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64.rpm                                                                                                                  535 kB/s |  59 kB     00:00    
(5/9): make-4.2.1-11.el8.x86_64.rpm                                                                                                                                                3.0 MB/s | 498 kB     00:00    
(6/9): compat-openssl10-1.0.2o-4.el8_6.x86_64.rpm                                                                                                                                  5.8 MB/s | 1.1 MB     00:00    
(7/9): sysstat-11.7.3-9.0.1.el8.x86_64.rpm                                                                                                                                         4.7 MB/s | 427 kB     00:00    
(8/9): oracle-database-preinstall-23c-1.0-0.5.el8.x86_64.rpm                                                                                                                       513 kB/s |  30 kB     00:00    
(9/9): ksh-20120801-257.0.1.el8.x86_64.rpm                                                                                                                                         2.9 MB/s | 929 kB     00:00    
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                              4.6 MB/s | 3.2 MB     00:00     
Ejecutando verificación de operación
Verificación de operación exitosa.
Ejecutando prueba de operaciones
Prueba de operación exitosa.
Ejecutando operación
  Preparando          :                                                                                                                                                                                        1/1 
  Instalando          : libxcrypt-devel-4.1.1-6.el8.x86_64                                                                                                                                                     1/9 
  Instalando          : glibc-devel-2.28-225.0.2.el8.x86_64                                                                                                                                                    2/9 
  Ejecutando scriptlet: glibc-devel-2.28-225.0.2.el8.x86_64                                                                                                                                                    2/9 
  Instalando          : make-1:4.2.1-11.el8.x86_64                                                                                                                                                             3/9 
  Ejecutando scriptlet: make-1:4.2.1-11.el8.x86_64                                                                                                                                                             3/9 
  Instalando          : compat-openssl10-1:1.0.2o-4.el8_6.x86_64                                                                                                                                               4/9 
  Ejecutando scriptlet: compat-openssl10-1:1.0.2o-4.el8_6.x86_64                                                                                                                                               4/9 
  Instalando          : ksh-20120801-257.0.1.el8.x86_64                                                                                                                                                        5/9 
  Ejecutando scriptlet: ksh-20120801-257.0.1.el8.x86_64                                                                                                                                                        5/9 
  Instalando          : lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64                                                                                                                                 6/9 
  Ejecutando scriptlet: lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64                                                                                                                                 6/9 
  Instalando          : sysstat-11.7.3-9.0.1.el8.x86_64                                                                                                                                                        7/9 
  Ejecutando scriptlet: sysstat-11.7.3-9.0.1.el8.x86_64                                                                                                                                                        7/9 
  Instalando          : libnsl-2.28-225.0.2.el8.x86_64                                                                                                                                                         8/9 
  Instalando          : oracle-database-preinstall-23c-1.0-0.5.el8.x86_64                                                                                                                                      9/9 
  Ejecutando scriptlet: oracle-database-preinstall-23c-1.0-0.5.el8.x86_64                                                                                                                                      9/9 
  Verificando         : glibc-devel-2.28-225.0.2.el8.x86_64                                                                                                                                                    1/9 
  Verificando         : libnsl-2.28-225.0.2.el8.x86_64                                                                                                                                                         2/9 
  Verificando         : libxcrypt-devel-4.1.1-6.el8.x86_64                                                                                                                                                     3/9 
  Verificando         : lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64                                                                                                                                 4/9 
  Verificando         : make-1:4.2.1-11.el8.x86_64                                                                                                                                                             5/9 
  Verificando         : compat-openssl10-1:1.0.2o-4.el8_6.x86_64                                                                                                                                               6/9 
  Verificando         : ksh-20120801-257.0.1.el8.x86_64                                                                                                                                                        7/9 
  Verificando         : sysstat-11.7.3-9.0.1.el8.x86_64                                                                                                                                                        8/9 
  Verificando         : oracle-database-preinstall-23c-1.0-0.5.el8.x86_64                                                                                                                                      9/9 

Instalado:
  compat-openssl10-1:1.0.2o-4.el8_6.x86_64               glibc-devel-2.28-225.0.2.el8.x86_64 ksh-20120801-257.0.1.el8.x86_64                   libnsl-2.28-225.0.2.el8.x86_64  libxcrypt-devel-4.1.1-6.el8.x86_64
  lm_sensors-libs-3.4.0-23.20180522git70f7e08.el8.x86_64 make-1:4.2.1-11.el8.x86_64          oracle-database-preinstall-23c-1.0-0.5.el8.x86_64 sysstat-11.7.3-9.0.1.el8.x86_64

¡Listo!
  • Podemos descargar el RPM de instalación de Oracle Database Free 23c Developer y lo podemos hacer desde el siguiente enlace: https://www.oracle.com/database/technologies/free-downloads.html
  • Teniendo ya descargado el RPM, en mi caso lo coloqué en la carpeta tmp, se procede a realizar la instalación
[root@localhost ~]# dnf -y localinstall /tmp/oracle-database-free-23c-1.0-1.el8.x86_64.rpm
Última comprobación de caducidad de metadatos hecha hace 1:13:43, el mié 07 jun 2023 13:11:24 CST.
Dependencias resueltas.
===================================================================================================================================================================================================================
 Paquete                                                        Arquitectura                                 Versión                                      Repositorio                                         Tam.
===================================================================================================================================================================================================================
Instalando:
 oracle-database-free-23c                                       x86_64                                       1.0-1                                        @commandline                                       1.6 G

Resumen de la transacción
===================================================================================================================================================================================================================
Instalar  1 Paquete

Tamaño total: 1.6 G
Tamaño instalado: 5.2 G
Descargando paquetes:
Ejecutando verificación de operación
Verificación de operación exitosa.
Ejecutando prueba de operaciones
Prueba de operación exitosa.
Ejecutando operación
  Preparando          :                                                                                                                                                                                        1/1 
  Ejecutando scriptlet: oracle-database-free-23c-1.0-1.x86_64                                                                                                                                                  1/1 
  Instalando          : oracle-database-free-23c-1.0-1.x86_64                                                                                                                                                  1/1 
  Ejecutando scriptlet: oracle-database-free-23c-1.0-1.x86_64                                                                                                                                                  1/1 
[INFO] Executing post installation scripts...
[INFO] Oracle home installed successfully and ready to be configured.
To configure Oracle Database Free, optionally modify the parameters in '/etc/sysconfig/oracle-free-23c.conf' and then run '/etc/init.d/oracle-free-23c configure' as root.

  Verificando         : oracle-database-free-23c-1.0-1.x86_64                                                                                                                                                  1/1 

Instalado:
  oracle-database-free-23c-1.0-1.x86_64                                                                                                                                                                            

¡Listo!

Para esta instalación nuestro ORACLE_HOME será: /opt/oracle/product/23c/dbhomeFree

  • Oracle nos proporciona un script para poder configurar nuestra nueva base de datos y la contraseña para los usuarios SYS, SYSTEM y PDBADMIN:
[root@localhost dbs]# /etc/init.d/oracle-free-23c configure
Specify a password to be used for database accounts. Oracle recommends that the password entered should be at least 8 characters in length, contain at least 1 uppercase character, 1 lower case character and 1 digit [0-9]. Note that the same password will be used for SYS, SYSTEM and PDBADMIN accounts:
Confirm the password:
Configuring Oracle Listener.
Listener configuration succeeded.
Configuring Oracle Database FREE.
Introduzca la contraseña de usuario SYS: 
********
Introduzca la contraseña de usuario SYSTEM: 
********
Introduzca la contraseña de usuario de PDBADMIN: 
*********
Preparar para funcionamiento de base de datos
7% completado
Copiando archivos de base de datos
29% completado
Creando e iniciando instancia Oracle
30% completado
33% completado
36% completado
39% completado
43% completado
Terminando creación de base de datos
47% completado
49% completado
50% completado
Creando Bases de Datos de Conexión
54% completado
71% completado
Ejecutando acciones posteriores a la configuración
93% completado
Ejecutando archivos de comandos personalizados
100% completado
Creación de la base de datos terminada. Consulte los archivos log de /opt/oracle/cfgtoollogs/dbca/FREE
 para obtener más información.
Información de Base de Datos:
Nombre de la Base de Datos Global:FREE
Identificador del Sistema (SID):FREE
Para obtener información detallada, consulte el archivo log "/opt/oracle/cfgtoollogs/dbca/FREE/FREE.log".

Connect to Oracle Database using one of the connect strings:
     Pluggable database: localhost.localdomain/FREEPDB1
     Multitenant container database: localhost.localdomain

Con los pasos anteriores ya tendremos nuestra instancia funcionando con las credenciales que le hemos establecido y lista para hacer todas las pruebas que necesitemos.

[root@localhost bin]# ps -ef | grep pmon
oracle      6589    2411  0 15:00 ?        00:00:00 db_pmon_FREE

Instalación de MariaDB en Archlinux

Actualizamos los paquetes del sistema antes que nada:

$>: sudo pacman -Syu

Desde los repositorios encontramos el paquete MariaDB

$>: sudo pacman -S mariadb

Lo que nos recomienda al terminar la instalación de MariaDB es ejecutar el siguiente script para inicializar el directorio de datos:

$>: mariadb-install-db --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Después de la instalación podemos habilitar el servicio mysqld:

$>: sudo systemctl enable mysqld

y seguidamente iniciamos el servicio:

$>: sudo systemctl start mysqld

Para hacer la configuración de credenciales del usuario root de base de datos utilizamos el script mysql_secure_installation que ya debería estár habilitado en el sistema:

$>: sudo mysql_secure_installation

Con las configuraciones anteriores ya tendremos habilitado el acceso a MariaDB:

$>: mysql -u root -p

Instalación de Oracle Grid Infrastructure 19c en Oracle Linux 7 [Paso a paso]

Para comenzar, existen algunos prerrequisitos que hay que cumplir para poder iniciar la instalación de Grid Infrastructure, los cuales, se pueden hacer manualmente o a través de un paquete destinado a realizar esta tarea. En esta ocasión vamos a instalar el paquete que se encuentra en los repositorios de Oracle Linux:

# yum install -y oracle-database-preinstall-19c.x86_64

Es necesario configurar OracleASM:

# oracleasm configure -i
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver.  The following questions will determine whether the driver is
loaded on boot and what permissions it will have.  The current values
will be shown in brackets ('[]').  Hitting  without typing an
answer will keep that current value.  Ctrl-C will abort.
Default user to own the driver interface []: oracle
Default group to own the driver interface []: dba
Start Oracle ASM library driver on boot (y/n) [n]: y
Scan for Oracle ASM disks on boot (y/n) [y]: y
Writing Oracle ASM library driver configuration: done

Se prepara el disco que se va a utilizar para la creación de la unidad +DATA. En esta practica se tiene un disco duro externo de 20GB y aún no tiene creada ninguna partición, por lo que se procede a crearla con fdisk:

# fdisk -l
Disk /dev/sdb: 18.3 GB, 18260131840 bytes, 35664320 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

Se crea la nueva partición:

# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xadc62055.

Orden (m para obtener ayuda): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 
Using default response p
Número de partición (1-4, default 1): 
Primer sector (2048-35664319, valor predeterminado 2048): 
Se está utilizando el valor predeterminado 2048
Last sector, +sectors or +size{K,M,G} (2048-35664319, valor predeterminado 35664319): 
Se está utilizando el valor predeterminado 35664319
Partition 1 of type Linux and of size 17 GiB is set

Y se escriben los cambios:

Orden (m para obtener ayuda): w
¡Se ha modificado la tabla de particiones!

Llamando a ioctl() para volver a leer la tabla de particiones.
Se están sincronizando los discos.

Verificamos que todo haya quedado bien en la nueva partición:

# fdisk -l
Disposit. Inicio    Comienzo      Fin      Bloques  Id  Sistema
/dev/sdb1            2048    35664319    17831136   83  Linux

Todo está listo para hacer la creación de nuestra unidad lógica +DATA con la herramienta oracleasm:

# oracleasm createdisk DATA /dev/sdb1 
Writing disk header: done
Instantiating disk: done

En este punto ya tenemos lista nuestra unidad +DATA.

Antes de seguir el proceso, es necesario cambiar la contraseña a nuestro usuario oracle:

# passwd oracle
Cambiando la contraseña del usuario oracle.
Nueva contraseña: 
Vuelva a escribir la nueva contraseña: 
passwd: todos los símbolos de autenticación se actualizaron con éxito.

Procedemos a crear el directorio en donde será instalado grid:

# mkdir -p /u01/app/19.3.0/grid/

Podemos descargar la versión de Oracle Grid Infrastructure desde https://www.oracle.com/database/technologies/oracle19c-linux-downloads.html.

Para poder hacer la instalación debemos de cambiar los permisos a la carpeta antes creada para el usuario oracle y su grupo oinstall:

chown -r oracle:oinstall /u01/

Copiamos el archivo descargado LINUX.X64_193000_grid_home.zip a la carpeta grid y procedemos a descompimir:

# unzip LINUX.X64_193000_grid_home.zip

Necesitaremos instalar el paquete cvuqdisk, que lo podemos encontrar en la ruta «Grid_home/cv/rpm»:

# rpm -i cvuqdisk-1.0.10-1.rpm

Iniciamos el asistente para la instalación de Oracle Grid Infrastructure:

# ./gridSetup.sh

En este post se realizará la instalación de un StandAlone:

En la creación de grupo de disco de ASM, nuestro disco duro es de tipo «Externo» y cambiamos la ruta de acceso de detección por el directorio en donde anteriormente se creó nuestro disco DATA (/dev/oracleasm/disks/):

Para esta practica, vamos a asignar la misma contraseña para la cuenta SYS y ASMSNMP:

Asignamos los roles a cada uno de los grupos de Grid:

Configuramos el directorio base para Grid:

Y seguimos con el directorio de inventario:

En la instalación es necesario ejecutar algunos scripts desde root pero podemos configurar en esta sección las credenciales de root para que la ejecución sea automática:

En la siguiente comprobación nos aparecerán los puntos que son necesarios de solucionar, en mi caso me marca una advertencia por poca memoria RAM pero fue solucionado realizando el aumento:

Como último paso, nos muestra un resumen de las configuraciones que se aplicaran en la instalación:

Si todo está correcto, procedemos a iniciar la instalación:

En nuestro caso le dimos credenciales de root por lo tanto los scripts que son necesarios ejecutar en la instalación se ejecutaron automáticamente.

Con lo anterior, ya tendremos instalado nuestro Grid Infrastructure:

Solo nos quedaría hacer la instalación de Oracle Database 19c, pero eso queda para otro post.

PL/SQL package SYS.DBMS_BACKUP_RESTORE version in TARGET database is not current

Después de una actualización de Oracle Database de la versión19.3.0.0.0 a 19.16.0.0.0, tuve el inconveniente al acceder a RMAN el cuál mostraba el siguiente mensaje:

$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Mon Aug 3 14:26:41 2022
Version 19.16.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

PL/SQL package SYS.DBMS_BACKUP_RESTORE version 19.03.00.00 in TARGET database is not current
PL/SQL package SYS.DBMS_RCVMAN version 19.03.00.00 in TARGET database is not current
connected to target database: XXXX

El mensaje anterior también se podía apreciar en el Alert.log.

Verificando en Oracle Support, nos comentan que este error se presenta seguido de aplicar un parche Oracle y que estos paquetes no se compilan cuando se realiza la actualización.

La solución es sencilla, realizando la compilación de los siguientes paquetes:

$ sqlplus / as sysdba
SQL> @$ORACLE_HOME/rdbms/admin/dbmsrman.sql
SQL> @$ORACLE_HOME/rdbms/admin/dbmsbkrs.sql
SQL> @$ORACLE_HOME/rdbms/admin/prvtrmns.plb
SQL> @$ORACLE_HOME/rdbms/admin/prvtbkrs.plb

Podemos comprobar que al ingresar a RMAN y verificar en el Alert.log que el mensaje ya no nos aparece.

Agregar nuevo disco a Diskgroup en Oracle Grid 19c

State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 512 4096 2194304 209588 1260 0 1260 0 N DATA/

Vamos a suponer que únicamente se ha agregado un nuevo disco duro y es necesario realizar la creación de la nueva partición y hacer un formateo de la misma.

Desde la herramienta fdisk podemos realizar esta tarea:

root@pruebas~# fdisk /dev/sdb

Con el comando ‘n‘ se realiza la creación de una nueva partición. Dejamos todos los valores por default ya que vamos a utilizar todo el espacio del nuevo disco duro.

Con el comando ‘w‘ confirmamos que se escriban los cambios que se han realizado.

Luego de haber creado la partición, se realiza el formateo

root@pruebas~# mkfs.ext4 /dev/sdb1

A nivel de sistema operativo nuestro nuevo disco duro está preparado.

Seguidamente, haciendo uso de la herramienta oracleasm realizamos la creación y etiquetado de un nuevo disco duro.

root@pruebas~# oracleasm createdisk ASMDISK3 /dev/sdb1

Desde SQLPlus agregamos el nuevo disco duro al diskgroup que ya está creado, en nuestro caso es +DATA

SQL> ALTER DISKGROUP DATA ADD DISK '/dev/oracleasm/disks/ASMDISK3' NAME ASMDISK3 REBALANCE POWER 100;

Con lo anterior, podemos verificar desde asmcmd que se han agregado los nuevo 200Gb de espacio.

[grid@pruebas ~]$ asmcmd lsdg
State Type Rebal Sector Logical_Sector Block AU Total_MB Free_MB Req_mir_free_MB Usable_file_MB Offline_disks Voting_files Name
MOUNTED EXTERN N 512 512 4096 4194304 409588 204384 0 204384 0 N DATA/

EDIT: 04/08/2022

Eliminar un disco del diskgroup:

Para eliminar es necesario quitar el disco primeramente del diskgroup que tenemos configurado en ASM, lo cual lo hacemos de la siguiente manera:

$ sqlplus / as sysasm
SQL> ALTER DISKGROUP DATA DROP DISK 'ASMDISK4';

En mi caso mi diskgroup tiene el nombre DATA y el disco que quiero quitar tiene el nombre ASMDISK4.

Seguidamente podemos devolver el disco al sistema operativo:

Primero escaneamos los discos disponibles con OracleASM

# oracleasm scandisks
Reloading disk partitions: done
Cleaning any stale ASM disks...
Scanning system for ASM disks...
[root@pruebas disks]# oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
[root@pruebas disks]# oracleasm configure
ORACLEASM_ENABLED=true
ORACLEASM_UID=grid
ORACLEASM_GID=oinstall
ORACLEASM_SCANBOOT=true
ORACLEASM_SCANORDER=""
ORACLEASM_SCANEXCLUDE=""
ORACLEASM_SCAN_DIRECTORIES=""
ORACLEASM_USE_LOGICAL_BLOCK_SIZE="false"

Por último lo eliminamos del ASM:

# oracleasm deletedisk ASMDISK4
Clearing disk header: done
Dropping disk: done