jueves, 7 de diciembre de 2023

Parchado de base de datos Oracle 19c e

 Saludos, este blog tiene como objetivo explicar paso a paso como el parchado de una base de datos Oracle 19c, en si desde la versión 12 se mantienen la misma metodología.

A continuación el resumen de los pasos:

1.     Identificar que parche se necesita y oracle home
2.     Descargar parche
3.     Subir parche al host  y Descomprimir parche
4.     Listar los parches que se encuentran aplicados
5.     Verificar posibles conflictos
6.     Detener la base de datos y el listener
7.     Respaldar el oracle home
8.     Respaldar el oracle inventory
9.     Aplicar patch
10.        Listar los parches aplicados
11.        Levantar la base de datos
12.        Aplicar los cambios del SQL asociados al parche
13.        Revisar en el SQL el patch aplicado y revisar si hay objetos descompilados
14.        Levantar el listener


 

1.      Identificar que parche se necesita y oracle home

Para aplicar un parche a la base de datos oracle primero debemos tener en cuenta que sistema operativo tenemos, la arquitectura, edición de la base de datos y versión.

Sistema operativo



Base de datos



Identificar el Oracle Home

[root@oracledb01 ~]# su - oracle
[oracle@oracledb01 ~]$ . oraenv
ORACLE_SID = [orcldb] ?
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@oracledb01 ~]$ echo $ORACLE_HOME
/u01/app/oracle/product/19.3/db_home


 

2.      Descargar parche

Con los datos previos procedemos a buscar el parche adecuado en el Oracle Support 


Vemos las recomendaciones y seleccionamos el patch para base de datos y descargamos la mas reciente


3.      Subir parche al host  y Descomprimir parche

En el host de base de datos subimos el parche descargado, para luego descomprimir. Vamos a usar una carpeta de trabajo backup



Descomprimimos

cd /u01/app/backup/
unzip p35320081_190000_Linux-x86-64.zip
 Archive:  p35320081_190000_Linux-x86-64.zip
 Done
ll

 

La carpeta descomprimida es la 35320081, ahí se encuentra el patch


4.      Listar los parches que se encuentran aplicados

[oracle@oracledb01 backup]$ /u01/app/oracle/product/19.3/db_home/OPatch/opatch lsinv -oh /u01/app/oracle/product/19.3/db_home
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2023, Oracle Corporation.  All rights reserved.
Oracle Home       : /u01/app/oracle/product/19.3/db_home
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.3/db_home/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.3/db_home/cfgtoollogs/opatch/opatch2023-12-06_18-19-49PM_1.log
Lsinventory Output file location : /u01/app/oracle/product/19.3/db_home/cfgtoollogs/opatch/lsinv/lsinventory2023-12-06_18-19-49PM.txt
--------------------------------------------------------------------------------
Local Machine Information::
Hostname: oracledb01
ARU platform id: 226
ARU platform description:: Linux x86-64
 
Installed Top-level Products (1):
 
Oracle Database 19c                                                  19.0.0.0.0
There are 1 products installed in this Oracle Home.
 
 
Interim patches (2) :
 
Patch  29585399     : applied on Thu Apr 18 03:21:33 EDT 2019
Unique Patch ID:  22840393
Patch description:  "OCW RELEASE UPDATE 19.3.0.0.0 (29585399)"
   Created on 9 Apr 2019, 19:12:47 hrs PST8PDT
     Bugs fixed:
       29380527, 29381000, 29382296, 29391301, 29393649, 29402110, 29411931
       29413360, 29457319, 29465047
 
Patch  29517242     : applied on Thu Apr 18 03:21:17 EDT 2019
Unique Patch ID:  22862832
Patch description:  "Database Release Update : 19.3.0.0.190416 (29517242)"
   Created on 17 Apr 2019, 23:27:10 hrs PST8PDT
     Bugs fixed:
       29273735, 29273847, 29274428, 29274564, 29274627, 29275461, 29278218
       29279658, 29279751, 29279854, 29282898, 29285503, 29285788, 29285956
       29286037, 29287130, 29287705, 29292837, 29293072, 29297863, 29297915
       29298220, 29299049, 29299082, 29299844, 29301566, 29302963, 29303918
       29304781, 29311588, 29312310, 29312734, 29312753, 29313347, 29313417
       29313525, 29314539, 29318410, 29319441, 29321489, 29323946, 29324568
       29325087, 29325105, 29325257, 29325993, 29327044, 29329087, 29331209
       29331380, 29331493, 29332771, 29333500, 29337310, 29338315, 29338453
       29338780, 29338913, 29339155, 29341209, 29343086, 29346943, 29347620
       29348176, 29350052, 29351386, 29351716, 29351749, 29352867, 29353271
       29355654, 29356547, 29356752, 29358828, 29360672, 29361801, 29363151
       29364171, 29364177, 29367019, 29367561, 29368253, 29373418, 29373588
       29374179, 29377986, 29378029, 29379978, 29382784, 29385652, 29386502
       29386635, 29386660, 29387274, 29388094, 29388524, 29388830, 29389889
       29390435, 29394140, 29394749, 29397954, 29398863, 29399100, 29399121
       29405012, 29405651, 29412066, 29412269, 29417884, 29423826, 29429264
       29429566, 29431485, 29435652, 29438736, 29439522, 29450421, 29451386
       29452576, 29452953, 29457807, 29460252, 29462957, 29486181, 29507616
       29521748, 29530812, 29531654, 29557336, 29558975, 29601461
--------------------------------------------------------------------------------
OPatch succeeded.


5.      Verificar posibles conflictos

Antes de aplicar verificaremos si el parche no muestra conflictos con la actual instalación

[oracle@oracledb01 ~]$ /u01/app/oracle/product/19.3/db_home/OPatch/opatch prereq CheckConflictAgainstOHWithDetail -ph /u01/app/backup/35320081/
Oracle Interim Patch Installer version 12.2.0.1.17
Copyright (c) 2023, Oracle Corporation.  All rights reserved.
 
PREREQ session
 
Oracle Home       : /u01/app/oracle/product/19.3/db_home
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.3/db_home/oraInst.loc
OPatch version    : 12.2.0.1.17
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.3/db_home/cfgtoollogs/opatch/opatch2023-12-07_08-09-05AM_1.log
 
Invoking prereq "checkconflictagainstohwithdetail"
 
Prereq "checkConflictAgainstOHWithDetail" passed.
 
OPatch succeeded.

El parche no muestra conflictos

 

6.      Detener la base de datos y el listener

Detener base de datos

[oracle@oracledb01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Dec 7 08:25:31 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle.  All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.

Detener el listener

[oracle@oracledb01 ~]$ lsnrctl stop
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 07-DEC-2023 08:28:15
Copyright (c) 1991, 2019, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledb01)(PORT=1521)))
The command completed successfully


7.      Respaldar el oracle home

En caso de un fallo en la aplicación del parche debemos restaurar estos archivos

[oracle@oracledb01 /]$ cd $ORACLE_BASE/product
[oracle@oracledb01 product]$ ll
total 0
drwxrwxr-x. 3 oracle oinstall 21 Dec  1 10:28 19.3 ß
[oracle@oracledb01 product]$ tar -pcvf /u01/app/backup/oh_backup19_3.tar 19.3


 

8.      Respaldar el oracle inventory

Identificar donde esta la cartpeta inventory y respaldar para que en un caso de un fallo en la aplicación del parche debemos restaurar estos archivos

[oracle@oracledb01 product]$ cat /etc/oraInst.loc
inventory_loc=/u01/app/oraInventoryß
inst_group=oinstall
[oracle@oracledb01 product]$ cd /u01/app/
[oracle@oracledb01 app]$ ll
total 0
drwxr-xr-x  3 oracle oinstall 111 Dec  7 08:44 backup
drwxrwxr-x. 9 oracle oinstall 115 Dec  4 13:30 oracle
drwxrwx---. 4 oracle oinstall  78 Dec  7 08:09 oraInventoryß
[oracle@oracledb01 app]$ tar -pcvf /u01/app/backup/oi_backup19_3.tar oraInventory

 

9.      Aplicar patch

Ahora si, aplicar el patch

[oracle@oracledb01 db_home]$ cd /u01/app/backup/35320081
[oracle@oracledb01 35320081]$ /u01/app/oracle/product/19.3/db_home/OPatch/opatch apply -oh /u01/app/oracle/product/19.3/db_home -local
Oracle Interim Patch Installer version 12.2.0.1.40
Copyright (c) 2023, Oracle Corporation.  All rights reserved.
 
 
Oracle Home       : /u01/app/oracle/product/19.3/db_home
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.3/db_home/oraInst.loc
OPatch version    : 12.2.0.1.40
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.3/db_home/cfgtoollogs/opatch/opatch2023-12-07_09-20-48AM_1.log
 
Verifying environment and performing prerequisite checks...
OPatch continues with these patches:   35320081
 
Do you want to proceed? [y|n] y
User Responded with: Y
All checks passed.
 
Please shutdown Oracle instances running out of this ORACLE_HOME on the local system.
(Oracle Home = '/u01/app/oracle/product/19.3/db_home')
 
 
Is the local system ready for patching? [y|n] y
User Responded with: Y
Backing up files...
Applying interim patch '35320081' to OH '/u01/app/oracle/product/19.3/db_home'
ApplySession: Optional component(s) [ oracle.network.gsm, 19.0.0.0.0 ] , [ oracle.rdbms.ic, 19.0.0.0.0 ] , [ oracle.rdbms.tg4db2, 19.0.0.0.0 ] , [ oracle.tfa, 19.0.0.0.0 ] , [ oracle.rdbms.tg4msql, 19.0.0.0.0 ] , [ oracle.options.olap, 19.0.0.0.0 ] , [ oracle.ons.cclient, 19.0.0.0.0 ] , [ oracle.network.cman, 19.0.0.0.0 ] , [ oracle.rdbms.tg4ifmx, 19.0.0.0.0 ] , [ oracle.rdbms.tg4sybs, 19.0.0.0.0 ] , [ oracle.net.cman, 19.0.0.0.0 ] , [ oracle.rdbms.tg4tera, 19.0.0.0.0 ] , [ oracle.sdo.companion, 19.0.0.0.0 ] , [ oracle.oid.client, 19.0.0.0.0 ] , [ oracle.xdk.companion, 19.0.0.0.0 ] , [ oracle.ons.eons.bwcompat, 19.0.0.0.0 ] , [ oracle.options.olap.api, 19.0.0.0.0 ] , [ oracle.jdk, 1.8.0.191.0 ]  not present in the Oracle Home or a higher version is found.
Patching component oracle.rdbms, 19.0.0.0.0...
Patching component oracle.rdbms.util, 19.0.0.0.0...
Patching component oracle.rdbms.rsf, 19.0.0.0.0...
Patching component oracle.assistants.acf, 19.0.0.0.0...
Patching component oracle.assistants.deconfig, 19.0.0.0.0...
Patching component oracle.assistants.server, 19.0.0.0.0...
Patching component oracle.blaslapack, 19.0.0.0.0...
Patching component oracle.buildtools.rsf, 19.0.0.0.0...
Patching component oracle.ctx, 19.0.0.0.0...
Patching component oracle.dbdev, 19.0.0.0.0...
Patching component oracle.dbjava.ic, 19.0.0.0.0...
Patching component oracle.dbjava.jdbc, 19.0.0.0.0...
Patching component oracle.dbjava.ucp, 19.0.0.0.0...
Patching component oracle.duma, 19.0.0.0.0...
Patching component oracle.javavm.client, 19.0.0.0.0...
Patching component oracle.ldap.owm, 19.0.0.0.0...
Patching component oracle.ldap.rsf, 19.0.0.0.0...
Patching component oracle.ldap.security.osdt, 19.0.0.0.0...
Patching component oracle.marvel, 19.0.0.0.0...
Patching component oracle.network.rsf, 19.0.0.0.0...
Patching component oracle.odbc.ic, 19.0.0.0.0...
Patching component oracle.ons, 19.0.0.0.0...
Patching component oracle.ons.ic, 19.0.0.0.0...
Patching component oracle.oracore.rsf, 19.0.0.0.0...
Patching component oracle.perlint, 5.28.1.0.0...
Patching component oracle.precomp.common.core, 19.0.0.0.0...
Patching component oracle.precomp.rsf, 19.0.0.0.0...
Patching component oracle.rdbms.crs, 19.0.0.0.0...
Patching component oracle.rdbms.dbscripts, 19.0.0.0.0...
Patching component oracle.rdbms.deconfig, 19.0.0.0.0...
Patching component oracle.rdbms.oci, 19.0.0.0.0...
Patching component oracle.rdbms.rsf.ic, 19.0.0.0.0...
Patching component oracle.rdbms.scheduler, 19.0.0.0.0...
Patching component oracle.rhp.db, 19.0.0.0.0...
Patching component oracle.sdo, 19.0.0.0.0...
Patching component oracle.sdo.locator.jrf, 19.0.0.0.0...
Patching component oracle.sqlplus, 19.0.0.0.0...
Patching component oracle.sqlplus.ic, 19.0.0.0.0...
Patching component oracle.wwg.plsql, 19.0.0.0.0...
Patching component oracle.xdk.parser.java, 19.0.0.0.0...
Patching component oracle.ldap.ssl, 19.0.0.0.0...
Patching component oracle.ctx.rsf, 19.0.0.0.0...
Patching component oracle.rdbms.dv, 19.0.0.0.0...
Patching component oracle.rdbms.drdaas, 19.0.0.0.0...
Patching component oracle.network.client, 19.0.0.0.0...
Patching component oracle.rdbms.hsodbc, 19.0.0.0.0...
Patching component oracle.network.listener, 19.0.0.0.0...
Patching component oracle.ldap.rsf.ic, 19.0.0.0.0...
Patching component oracle.dbtoolslistener, 19.0.0.0.0...
Patching component oracle.nlsrtl.rsf, 19.0.0.0.0...
Patching component oracle.xdk.xquery, 19.0.0.0.0...
Patching component oracle.rdbms.install.common, 19.0.0.0.0...
Patching component oracle.ovm, 19.0.0.0.0...
Patching component oracle.oraolap, 19.0.0.0.0...
Patching component oracle.rdbms.rman, 19.0.0.0.0...
Patching component oracle.install.deinstalltool, 19.0.0.0.0...
Patching component oracle.rdbms.install.plugins, 19.0.0.0.0...
Patching component oracle.rdbms.lbac, 19.0.0.0.0...
Patching component oracle.sdo.locator, 19.0.0.0.0...
Patching component oracle.oraolap.dbscripts, 19.0.0.0.0...
Patching component oracle.oraolap.api, 19.0.0.0.0...
Patching component oracle.ctx.atg, 19.0.0.0.0...
Patching component oracle.javavm.server, 19.0.0.0.0...
Patching component oracle.rdbms.hs_common, 19.0.0.0.0...
Patching component oracle.xdk, 19.0.0.0.0...
Patching component oracle.xdk.rsf, 19.0.0.0.0...
Patching component oracle.ldap.client, 19.0.0.0.0...
Patching component oracle.mgw.common, 19.0.0.0.0...
Patching component oracle.odbc, 19.0.0.0.0...
Patching component oracle.precomp.lang, 19.0.0.0.0...
Patching component oracle.precomp.common, 19.0.0.0.0...
Patching component oracle.jdk, 1.8.0.201.0...
Patch 35320081 successfully applied.
Sub-set patch [29517242] has become inactive due to the application of a super-set patch [35320081].
Please refer to Doc ID 2161861.1 for any possible further required actions.
Log file location: /u01/app/oracle/product/19.3/db_home/cfgtoollogs/opatch/opatch2023-12-07_09-20-48AM_1.log
 
OPatch succeeded.

 

10.      Listar los parches aplicados

 

[oracle@oracledb01 35320081]$ /u01/app/oracle/product/19.3/db_home/OPatch/opatch lsinv -oh /u01/app/oracle/product/19.3/db_home
Oracle Interim Patch Installer version 12.2.0.1.40
Copyright (c) 2023, Oracle Corporation.  All rights reserved.
 
 
Oracle Home       : /u01/app/oracle/product/19.3/db_home
Central Inventory : /u01/app/oraInventory
   from           : /u01/app/oracle/product/19.3/db_home/oraInst.loc
OPatch version    : 12.2.0.1.40
OUI version       : 12.2.0.7.0
Log file location : /u01/app/oracle/product/19.3/db_home/cfgtoollogs/opatch/opatch2023-12-07_09-34-18AM_1.log
 
Lsinventory Output file location : /u01/app/oracle/product/19.3/db_home/cfgtoollogs/opatch/lsinv/lsinventory2023-12-07_09-34-18AM.txt
--------------------------------------------------------------------------------
Local Machine Information::
Hostname: oracledb01
ARU platform id: 226
ARU platform description:: Linux x86-64
 
Installed Top-level Products (1):
 
Oracle Database 19c                                                  19.0.0.0.0
There are 1 products installed in this Oracle Home.
 
 
Interim patches (2) :
 
Patch  35320081     : applied on Thu Dec 07 09:23:53 EST 2023
Unique Patch ID:  25314491
Patch description:  "Database Release Update : 19.20.0.0.230718 (35320081)"
   Created on 15 Jul 2023, 12:54:11 hrs UTC
   Bugs fixed:
     10123661, 1297945, 14570574, 14735102, 15931756, 15959416, 16662822
     16664572, 16750494, 17275499, 17395507, 17428816, 17468475, 17562236
     
     35285795, 35286006, 35313797, 35314366, 35320424, 35331461, 35336918
     35378997, 35383562, 35399131, 35406065, 35406883, 35412130, 35412492
     35412607, 35414664, 35429800, 35432001, 35471762, 35486570, 35500783
     35511113, 35516861, 35519977, 7391838, 8460502, 8476681, 9002767
 
Patch  29585399     : applied on Thu Apr 18 03:21:33 EDT 2019
Unique Patch ID:  22840393
Patch description:  "OCW RELEASE UPDATE 19.3.0.0.0 (29585399)"
   Created on 9 Apr 2019, 19:12:47 hrs PST8PDT
   Bugs fixed:
     27222128, 27572040, 27604329, 27760043, 27877830, 28302580, 28470673
     
     29380527, 29381000, 29382296, 29391301, 29393649, 29402110, 29411931
     29413360, 29457319, 29465047, 3
--------------------------------------------------------------------------------
OPatch succeeded.

 

 

11.      Levantar la base de datos

 

[oracle@oracledb01 db_home]$ cd $ORACLE_HOME
[oracle@oracledb01 db_home]$ . oraenv
ORACLE_SID = [orcldb] ?
The Oracle base remains unchanged with value /u01/app/oracle
[oracle@oracledb01 db_home]$ sqlplus / as sysdba
 
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Dec 7 09:41:20 2023
Version 19.20.0.0.0
 
Copyright (c) 1982, 2022, Oracle.  All rights reserved.
 
Connected to an idle instance.
 
SQL> startup
ORACLE instance started.
 
Total System Global Area 3154113376 bytes
Fixed Size                  8930144 bytes
Variable Size             637534208 bytes
Database Buffers         2499805184 bytes
Redo Buffers                7843840 bytes
Database mounted.
Database opened.
SQL> SELECT NAME,OPEN_MODE FROM V$DATABASE;
 
NAME      OPEN_MODE
--------- --------------------
ORCLDB    READ WRITE
 
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0

 

 

12.      Aplicar los cambios del SQL asociados al parche

 

[oracle@oracledb01 db_home]$ /u01/app/oracle/product/19.3/db_home/OPatch/datapatch -verbose
SQL Patching tool version 19.20.0.0.0 Production on Thu Dec  7 09:54:41 2023
Copyright (c) 2012, 2023, Oracle.  All rights reserved.
 
Log file for this invocation: /u01/app/oracle/cfgtoollogs/sqlpatch/sqlpatch_16308_2023_12_07_09_54_41/sqlpatch_invocation.log
 
Connecting to database...OK
Gathering database info...done
Bootstrapping registry and package to current versions...done
Determining current state...done
 
Current state of interim SQL patches:
  No interim patches found
 
Current state of release update SQL patches:
  Binary registry:
    19.20.0.0.0 Release_Update 230715022800: Installed
  SQL registry:
    Applied 19.3.0.0.0 Release_Update 190410122720 successfully on 01-DEC-23 11.53.19.721928 AM
 
Adding patches to installation queue and performing prereq checks...done
Installation queue:
  No interim patches need to be rolled back
  Patch 35320081 (Database Release Update : 19.20.0.0.230718 (35320081)):
    Apply from 19.3.0.0.0 Release_Update 190410122720 to 19.20.0.0.0 Release_Update 230715022800
  No interim patches need to be applied
 
Installing patches...
Patch installation complete.  Total patches installed: 1
 
Validating logfiles...done
Patch 35320081 apply: SUCCESS
  logfile: /u01/app/oracle/cfgtoollogs/sqlpatch/35320081/25314491/35320081_apply_ORCLDB_2023Dec07_09_55_13.log (no errors)
SQL Patching tool complete on Thu Dec  7 10:00:35 2023

 

13.      Revisar en el SQL el patch aplicado y revisar si hay objetos descompilados

 

Revisar el patch sql aplicado

[oracle@oracledb01 db_home]$ sqlplus / as sysdba
 
SQL*Plus: Release 19.0.0.0.0 - Production on Thu Dec 7 10:20:54 2023
Version 19.20.0.0.0
 
Copyright (c) 1982, 2022, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.20.0.0.0
 
SQL> SET LINESIZE 500
SQL> SELECT TO_CHAR(action_time, 'YYYY-MM-DD')Fecha,action,status,substr(description,1,55) descrp,patch_id pacth FROM  sys.dba_registry_sqlpatch ORDER by action_time;
 
FECHA      ACTION          STATUS                    DESCRP                                                       PACTH
---------- --------------- ------------------------- ------------------------------------------------------- ----------
2023-12-01 APPLY           SUCCESS                   Database Release Update : 19.3.0.0.190416 (29517242)      29517242
2023-12-07 APPLY           SUCCESS                   Database Release Update : 19.20.0.0.230718 (35320081)     35320081
 

 

Verificar si hay objetos descompilados

SQL> select count(*) from dba_objects where status='INVALID';
 
  COUNT(*)
----------
         0
 
SQL>

 

14.      Levantar el listener

Y por último levantar el listener

[oracle@oracledb01 db_home]$ lsnrctl start
 
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 07-DEC-2023 10:25:50
 
Copyright (c) 1991, 2023, Oracle.  All rights reserved.
 
Starting /u01/app/oracle/product/19.3/db_home/bin/tnslsnr: please wait...
 
TNSLSNR for Linux: Version 19.0.0.0.0 - Production
System parameter file is /u01/app/oracle/product/19.3/db_home/network/admin/listener.ora
Log messages written to /u01/app/oracle/diag/tnslsnr/oracledb01/listener/alert/log.xml
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledb01.endara.com.ec)(PORT=1521)))
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledb01)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                07-DEC-2023 10:25:50
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19.3/db_home/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oracledb01/listener/alert/log.xml
Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledb01.endara.com.ec)(PORT=1521)))
The listener supports no servicesß Esperer un minute y revisar el STATUS
The command completed successfully
 
[oracle@oracledb01 db_home]$ lsnrctl status
 
LSNRCTL for Linux: Version 19.0.0.0.0 - Production on 07-DEC-2023 10:27:54
 
Copyright (c) 1991, 2023, Oracle.  All rights reserved.
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracledb01)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 19.0.0.0.0 - Production
Start Date                07-DEC-2023 10:25:50
Uptime                    0 days 0 hr. 2 min. 4 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/product/19.3/db_home/network/admin/listener.ora
Listener Log File         /u01/app/oracle/diag/tnslsnr/oracledb01/listener/alert/log.xml
Listening Endpoints Summary...
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracledb01.endara.com.ec)(PORT=1521)))
    (DESCRIPTION=(ADDRESS=(PROTOCOL=tcps)(HOST=oracledb01.endara.com.ec)(PORT=5500))(Security=(my_wallet_directory=/u01/app/oracle/admin/orcldb/xdb_wallet))(Presentation=HTTP)(Session=RAW))
Services Summary...
Service "orcldb" has 1 instance(s).
  Instance "orcldb", status READY, has 1 handler(s) for this service...
Service "orcldbXDB" has 1 instance(s).
  Instance "orcldb", status READY, has 1 handler(s) for this service...
The command completed successfully

 


viernes, 1 de diciembre de 2023

Instalar Oracle 19C en Red Hat Linux 8

 Saludos,

Este blog explicare paso a paso los requisitos e instalación de la base de datos Oracle 19C para Red Hat Linux 8 (RHL8).

Recursos

  • IP:192.168.20.23
  • HOST:oracledb01
  • SO RHL8
  • 10G Ram 4Cpus y 200GB de disco
  • Usuario:root


Pre-Requisitos y Configuraciones

1.     Preparar Sistema Operativo

Vemos la versión

sudo subscription-manager list

 

sudo yum update



Instalar editor nano

sudo yum install nano



2.     Instalar componente para la instalación grafica

En mi caso tengo RHL sin la interfaz grafica por lo que necesito instalar este componente pero Si tiene GUI(escritorio con interfaz gráfica GNOME o KDE) no es necesario realizar esta instalación.



En mi caso no tengo GUI ni X11-forwarding, X11-forwarding este componente nos permitirá vía shh ejecutar la instalación grafica de Oracle con el cliente MobaXTerm sin necesidad de un escritorio  y luego de la instalación necesitamos reiniciar.

sudo yum install xterm* xorg*

sudo reboot


Nota: Debes de tener la suscripción activa o crear una cuenta gratis en redhat para que puedas registrar. https://access.redhat.com/discussions/6394941

3.     Desactivar Firewalld

Para nuestro ejercicio vamos a desactivar el firewall de redhat pero en un escenario real es mejor agregar las reglas de input a los puertos que usa oracle

sudo systemctl stop firewalld

sudo systemctl disable firewalld




4.     Nombre del servidor

Editar el archivo /etc/hosts, vamos a indicar el nombre del servidor el cual será oracledb01.endara.com.ec para que resuelva la ip 192.168.20.23

sudo nano /etc/hosts



También lo realizamos con el comando hostnamectl

sudo hostnamectl set-hostname oracledb01.endara.com.ec

sudo reboot


Nota: Si la instalación la realizas sobre instancias en la nube debe de validar los parámetros de initcloud para que el nombre no cambie.

5.     Prerequisitos Oracle

Instalar desde yum en linea

sudo yum install -y oracle-database-preinstall-19c


O descarga el oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm de los pre requisitos y lo instalamos de forma local

Bounce | Red Hat Customer Portal

curl -o /tmp/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm https://public-yum.oracle.com/repo/OracleLinux/OL8/appstream/x86_64/getPackage/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm

yum -y localinstall /tmp/oracle-database-preinstall-19c-1.0-1.el7.x86_64.rpm





6.     Usuario oracle y parametros

Setear la clave del Usuario oracle

sudo passwd oracle



Modificar archivo /etc/selinux/config y cambiar el parámetro SELINUX=disabled

sudo nano /etc/selinux/config



7.     Crear oracle home y dar los permisos

Vamos a crear todo el directorio requerido para la instalación de los archivos binarios de Oracle y donde se alojaran los archivos de la base de datos.

mkdir -p /u01/app/oracle/product/19.3/db_home
mkdir -p /u02/oradata
chown -R oracle:oinstall /u01
chown -R oracle:oinstall /u02
chmod -R 775 /u01
chmod -R 775 /u02



1.     Variables de ambiente

Crear las variables de ambiente para que se carguen en la sesión del usuario oracle.

su - oracle

 Creamos directorio donde alojaremos el script

mkdir /home/oracle/scripts

 Creamos archivo setEnv.sh para establecer las variables

nano /home/oracle/scripts/setEnv.sh

 Pegamos la configuración

export TMP=/tmp
export TMPDIR=$TMP
export ORACLE_HOSTNAME=oracledb01.mavesa.com.ec
export ORACLE_UNQNAME=orcldb
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3/db_home
export ORA_INVENTORY=/u01/app/oraInventory
export ORACLE_SID=orcldb
export PDB_NAME=noracle
export DATA_DIR=/u02/oradata
export PATH=/usr/sbin:/usr/local/bin:$PATH
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

 Agregamos la linea en el bash profile del usuario oracle para que al iniciar sesión cargue las variables

echo ". /home/oracle/scripts/setEnv.sh" >> /home/oracle/.bash_profile
echo "export PATH" >> /home/oracle/.bash_profile

 

Con Usuario root cambiamos los permisos de /home/oracle/scripts/setEnv.sh

sudo chown -R oracle:oinstall /home/oracle/scripts
sudo chmod u+x /home/oracle/scripts/setEnv.sh


Para comprobar que las variables cargan correctamente iniciamos como usuario oracle y vemos la variable ORACLE_HOME, si muestra valor esta todo OK

su oracle
echo $ORACLE_HOME


9.     Descargar el instalador de oracle, subirlo al servidor y descomprimir

Descargar en la siguiente dirección

https://www.oracle.com/dz/database/technologies/oracle19c-linux-downloads.html


En una sesión del usuario oracle


Una vez descargado lo subimos al servidor con la ayuda del MobaXterm o un winscp


Nos dirigimos a la ruta del oracle home : /u01/app/oracle/product/19.3/db_home





Descomprimimos el zip

cd /u01/app/oracle/product/19.3/db_home
unzip -oq LINUX.X64_193000_db_home.zip


Editamos el archivo cvu_config y cambiamos el parámetro CV_ASSUME_DISTID=OEL8.9

nano $ORACLE_HOME/cv/admin/cvu_config


Instalacion

 

1.     Habilitar permisos X11


Con el usuario oracle realizaremos la instalación, pero antes vamos a con validemos si tenemos acceso a la opción grafica X11 que en unos de los primeros paso hablitamos.

xhost +

En el mensaje anterior indica que ninguna ip esta habilitada para ejecutar el xhost, la procederemos agregar

DISPLAY=192.168.20.29:0.0; export DISPLAY
echo $DISPLAY
xhost +

 


2.     Ejecutar asistente de instalación

Ahora si, empezamos la ejecución de la instalación desde la ruta /u01/app/oracle/product/19.3/db_home

cd /u01/app/oracle/product/19.3/db_home
./runInstaller


3.     Tipo de instalación de base de datos

Vamos a instalar el software y crear la base de datos


4.     Seleccionar clase de la instancia.

Pueden seleccionar la Desktop class si están haciendo una practica en su lapto o desktop, en mi caso usar la Server Class(Mas pasos de instalación)


5. Seleccionar la edición. 


6.     Seleccionar el directorio base de oracle. 



7.     Tipo de configuración

Dependiendo del tipo de transacciones seleccionamos Genera / Transaccional o Data Warehousing

8.     DBName y  SID


 9.     Configuración instancia

Seleccionamos la memoria recomendada, charset (en mi caso uso WE8MSWIN1252) e instalo el esquema de ejemplo.


 

10.     Configuración almacenamiento

Es una buena practica separa la unidad de binarios oracle y datos.



 11.     Credenciales y seguridades



 

12.     Ejecuciones desde el root

Se necesitaran realizar ejecuciones via ssh con privilegios root


13.     Validaciones antes de la instalación

En mi caso me sale alerta de memoria, pero en este caso omitiré


14.     Instalación en progreso

Previo a esto ingresamos las credenciales de root, damos click en yes para que se ejecuten los scripts ssh con privilegios root


Instalación finalizada



Probar la conexión 


Listo, todo funcionando!!!