Saludos, a quien no le da miedo cuando escuchas Parche, bueno el parchado de la base de datos es una tarea que no se debe omitir en la administracion de nuestra base de datos y tampoco tenerle miedo, pero el hecho que diga que se debe de tener miedo no quiere decir que no tengamos precauciones.
Que es un parche?
Los parche que libera Oracle en su mayoría son soluciones(Fixes) a errores (Bugs) reportados, vulnerabilidades, rendimiento, entre otros, por ello es su importancia de revisar que soluciona y si aplica a nuestra arquitectura.
Los parches se los clasifica en tres grupos:
Que es un parche?
Los parche que libera Oracle en su mayoría son soluciones(Fixes) a errores (Bugs) reportados, vulnerabilidades, rendimiento, entre otros, por ello es su importancia de revisar que soluciona y si aplica a nuestra arquitectura.
Los parches se los clasifica en tres grupos:
- Security Patch Update (SPU). Parche que contiene reparaciones a vulnerabilidades que pueden ser perjudiciales para la seguridad de la información.
- Patch Set Updates (PSU). Parche que contiene reparaciones a errores encontrados, esto errores pueden se de alto impacto, mediano o bajo para la operación de la base de datos, en este grupo de parche se incluye los SPU, el cual lo describimos en el anterior punto.
- Bundle Patch (BP). Parche orientadoa productos, como ejemplo alguna mejora o funcionalidad, este parche incluye los parches SPU y PSU.
Como sabemos que parche aplicar?
Para ello debemos leer los avisos que nos llegan de liberaciones de parches y ver el contenido para ver si aplica a nuestra arquitectura.
Otra forma es apoyandonos del Soporte de Oracle y en la seccion de "Patchs & Update" realizar la busqueda. Existen 3 opciones de busqueda, en lo particula prefiero la opcion "Recommended Patch Advisor", aqui seleccionamos nuestro producto, version y plataforma y nos arroja los parches recomedados.
Aqui nos aparece los parches recomendados y podemos descargarlos y tambien revisar el contenido del parche README.HTML, debemos revisar que soluciona, si lo necesitamos, pre-requisitos, consideraciones previas y consideraciones post.
Aplicar el parche
Una vez que hemos encontrado los parches procedemos a descargarlos, en mi ejemplo descargue un BP(Bundle Patch) 26161724, ahora si podemos a aplicarlos con la utilidad OPATCH, pero como les dige no hay que tener miedo, pero no por esto no dejar de tener precaución, por eso mi recomendacion es primero aplicar el parche en ambientes no productivos como uno de desarrollo o pruebas, hago incapie en esto por que hay que prevenir y probar que todo funcione en estos ambientes antes de aplicar en producció, aunque OPATCH tambien dispone de un rollback del parche por cualquier inconveniente que nos genere la aplicación del parche. Leer el documento README.HTML del parche, en el se incluye los pasos a seguir y las consideraciones.Pasos
- Descomprimir el zip
Setear variables de ambiente
REM Es importantes seter la ruta del OPATCH para que funcione >set ORACLE_HOME=D:\oracle\product\12.1.0\dbhome_1 >set path=%ORACLE_HOME%\perl\bin;%ORACLE_HOME%\OPatch;%path% |
- Bajar Instancias de base de datos y servicios
REM Bajar la instancia Oracle (Em mi ejemplo es una instancia simple) set ORACLE_SID=ORCL >SQLPLUS / AS SYSDBA SQL>shutdown immediate; REM Bajar servicio de Windows C:\>net stop msdtc El servicio de Coordinador de transacciones distribuidas está deteniéndose. El servicio de Coordinador de transacciones distribuidas se detuvo correctamente. |
- AplicarParche con OPATCH
REM no dirigimos a la ruta del parche que descomprimos >cd D:\OraInstall\parches\p26161724_121020_MSWIN-x86-64\26161724 REM Aplicar Parche >opatch apply Oracle Interim Patch Installer version 12.1.0.1.3 Copyright (c) 2017, Oracle Corporation. All rights reserved. Oracle Home : D:\oracle\product\12.1.0\dbhome_1 Central Inventory : C:\Program Files\Oracle\Inventory from : n/a OPatch version : 12.1.0.1.3 OUI version : 12.1.0.2.0 Log file location : D:\oracle\product\12.1.0\dbhome_1\cfgtoollogs\opatch\26161724_Aug_24_2017_14_59_32\apply2017-08-24_1 4-59-32PM_1.log Applying interim patch '26161724' to OH 'D:\oracle\product\12.1.0\dbhome_1' Verifying environment and performing prerequisite checks... Patch 26161724: Optional component(s) missing : [ oracle.rdbms.tg4ifmx, 12.1.0.2.0 ] , [ oracle.rdbms.tg4msql, 12.1.0.2. 0 ] , [ oracle.oraolap, 12.1.0.2.0 ] , [ oracle.rdbms.tg4adbs, 12.1.0.2.0 ] , [ oracle.rdbms.tg4db2, 12.1.0.2.0 ] , [ or acle.oraolap.api, 12.1.0.2.0 ] , [ oracle.rdbms.tg4ims, 12.1.0.2.0 ] , [ oracle.usm, 12.1.0.2.0 ] , [ oracle.rdbms.ic, 1 2.1.0.2.0 ] , [ oracle.has.cfs, 12.1.0.2.0 ] , [ oracle.rdbms.tg4tera, 12.1.0.2.0 ] , [ oracle.rdbms.tg4sybs, 12.1.0.2.0 ] , [ oracle.has.cvu, 12.1.0.2.0 ] , [ oracle.has.crs, 12.1.0.2.0 ] , [ oracle.ldap.ztk, 12.1.0.2.0 ] All checks passed. Please shutdown Oracle instances running out of this ORACLE_HOME on the local system. (Oracle Home = 'D:\oracle\product\12.1.0\dbhome_1') Is the local system ready for patching? [y|n]//Digita Y y dale Enter y User Responded with: Y Backing up files... Patching component oracle.network.rsf, 12.1.0.2.0... Patching component oracle.swd.oui.core.min, 12.1.0.2.0... Patching component oracle.has.db, 12.1.0.2.0... Patching component oracle.odbc.ic, 12.1.0.2.0... Patching component oracle.rdbms.hsodbc, 12.1.0.2.0... Patching component oracle.has.common, 12.1.0.2.0... Patching component oracle.assistants.server, 12.1.0.2.0... Patching component oracle.ordim.server, 12.1.0.2.0... Patching component oracle.has.common.cvu, 12.1.0.2.0... Patching component oracle.ctx.atg, 12.1.0.2.0... Patching component oracle.sdo.locator, 12.1.0.2.0... Patching component oracle.oraolap.dbscripts, 12.1.0.2.0... Patching component oracle.sqlplus, 12.1.0.2.0... Patching component oracle.sqlplus.ic, 12.1.0.2.0... Patching component oracle.precomp.common.core, 12.1.0.2.0... Patching component oracle.oracore.rsf, 12.1.0.2.0... Patching component oracle.rdbms.rsf.ic, 12.1.0.2.0... Patching component oracle.ctx, 12.1.0.2.0... Patching component oracle.precomp.common, 12.1.0.2.0... Patching component oracle.rdbms.dbscripts, 12.1.0.2.0... Patching component oracle.usm.deconfig, 12.1.0.2.0... Patching component oracle.ntrdbms.oraconfig, 12.1.0.2.0... Patching component oracle.ldap.rsf.ic, 12.1.0.2.0... Patching component oracle.ntoledb.odp_net_2, 12.1.0.2.0... Patching component oracle.rdbms.dv, 12.1.0.2.0... Patching component oracle.clrintg.ode_net_2, 12.1.0.2.0... Patching component oracle.has.rsf, 12.1.0.2.0... Patching component oracle.javavm.containers, 12.1.0.2.0... Patching component oracle.rdbms.install.plugins, 12.1.0.2.0... Patching component oracle.rdbms, 12.1.0.2.0... Patching component oracle.ntoramts, 12.1.0.2.0... Patching component oracle.ldap.owm, 12.1.0.2.0... Patching component oracle.has.deconfig, 12.1.0.2.0... Patching component oracle.ntrdbms.admin, 12.1.0.2.0... Patching component oracle.rdbms.util, 12.1.0.2.0... Patching component oracle.ldap.client, 12.1.0.2.0... Patching component oracle.rdbms.rman, 12.1.0.2.0... Patching component oracle.xdk.rsf, 12.1.0.2.0... Patching component oracle.ldap.rsf, 12.1.0.2.0... Patching component oracle.xdk.parser.java, 12.1.0.2.0... Patching component oracle.ntoledb, 12.1.0.2.0... Patching component oracle.rdbms.rsf, 12.1.0.2.0... Patching component oracle.precomp.rsf, 12.1.0.2.0... Patching component oracle.nlsrtl.rsf, 12.1.0.2.0... Patching component oracle.network.aso, 12.1.0.2.0... Patching component oracle.network.listener, 12.1.0.2.0... Patching component oracle.ordim.jai, 12.1.0.2.0... Patching component oracle.aspnet_2, 12.1.0.2.0... Patching component oracle.precomp.lang, 12.1.0.2.0... Patching component oracle.rdbms.deconfig, 12.1.0.2.0... Patching component oracle.ordim.client, 12.1.0.2.0... Patching component oracle.ldap.security.osdt, 12.1.0.2.0... Verifying the update... "Found msvcrt.dll in Oracle_Home\BIN." "Deleting Oracle_Home\BIN\msvcrt.dll, as the OS loads msvcrt.dll from C:\WINDOWS\System32\ directory." Patch 26161724 successfully applied Log file location: D:\oracle\product\12.1.0\dbhome_1\cfgtoollogs\opatch\26161724_Aug_24_2017_14_59_32\apply2017-08-24_14 -59-32PM_1.log OPatch succeeded. |
- Iniciar servicios, instancias y actualizar los SQL con datapatcha
REM Iniciar la instancia set ORACLE_SID=ORCL >SQLPLUS / AS SYSDBA SQL>startup REM Iniciar servicios de Windows C:\>net start msdtc El servicio de Coordinador de transacciones distribuidas está deteniéndose. El servicio de Coordinador de transacciones distribuidas se detuvo correctamente. >datapatch -verbose SQL Patching tool version 12.1.0.2.0 Production on Thu Aug 24 15:23:54 2017 Copyright (c) 2012, 2017, Oracle. All rights reserved. Log file for this invocation: D:\oracle\product\12.1.0\dbhome_1\cfgtoollogs\sqlpatch\sqlpatch_5684_2017_08_24_15_23_54\s qlpatch_invocation.log Connecting to database...Database SQL Patching tool complete on Thu Aug 24 15:23:54 2017 |
- Aplicamos los SQL del parche a la base de datos con el datapach
En el %ORACLE_HOME%\Opactch ejecutar datapach cd D:\oracle\product\12.1.0\dbhome_1d\Opatch D:\oracle\product\12.1.0\dbhome_1\OPatch>datapatch.bat SQL Patching tool version 12.1.0.2.0 Production on Mon Copyright (c) 2012, 2017, Oracle. All rights reserved. Connecting to database...OK Bootstrapping registry and package to current versions...done Determining current state...done Adding patches to installation queue and performing prereq checks...done Installation queue: Nothing to roll back The following patches will be applied: 26161724 (WINDOWS DB BUNDLE PATCH 12.1.0.2.170718(64bit):26161724) 21554480 () Installing patches... Patch installation complete. Total patches installed: 2 Validating logfiles...done SQL Patching tool complete on Mon Oct |
- Revisar objetos descompilados
Ahora si, tenermos parchada nuestra base de datos y debemos probar su funcionalidad.
Si por algun motivo necesitamos reversar elparche lo podemos realizar el comando OPATCH, solo le tenemos que pasar como parametro ROLLBACK y el id del parche a reversar 26161724:
REM desinstalar parche >opatch rollback -id 26161724 |
No hay comentarios:
Publicar un comentario