Archivo

Posts Tagged ‘BestPractices’

Oracle Streams y su integración con Enterprise Manager 12c

marzo 16, 2016 2 comentarios

Oracle Streams permite la replicación de objetos y datos dentro de la misma base de datos o a otra base de datos. La replicación puede ser unidireccional o bidireccional y podemos replicar DML y DDL.

La configuración de Oracle Streams puede incluir toda la base de datos o únicamente un esquema o, si se quiere ser más específico, sólo determinadas tablas.

Si escogemos una replicación por esquema podremos poner excepción a determinadas tablas y si replicamos DDL las nuevas tablas creadas se irán incorporando al proceso de réplica.

En este post no vamos entrar en un profundo nivel técnico de lo que es Oracle Streams, lo que haremos es ver cómo se puede simplificar enormemente este proceso a través de Oracle Enterprise Manager 12c Cloud Control o, lo que es lo mismo, veremos cómo configurar Oracle Streams sin tener apenas conocimiento de esta herramienta.

Para este Laboratorio se ha dispuesto dos bases de datos Oracle 11.2.0.4:

Oracle Clusterware = STREAMSP (base de datos Origen)

Oracle Standalone = STREAMSY (base de datos Destino)

2016-01-14 10_32_16-All Targets - Oracle Enterprise Manager

La replicación es recomendable realizarla desde otro usuario que no sea SYS y que tenga los privilegios adecuados; así nos lo recordara Enterprise Manager.

2016-01-14 10_34_21-Oracle Enterprise Manager (SYSMAN) - Replication

Dado esto el primer paso que haremos será completar estos dos prerrequisitos:

Base de datos en modo archivelog:

2016-01-14 10_39_38-oracle@es1testdb01v_~ - Xshell 4

2016-01-14 10_39_24-oracle@es2testdb01v_~ - Xshell 4

Creación del usuario para Streams (este usuario hay que crearlo en las dos bases de datos):

2016-01-14 10_40_56-oracle@es1testdb01v_~ - Xshell 4

Leer más…

Reinicio automático de Oracle Database (Oracle Restart)

Oracle Clusterware es una capa de software que permite añadir alta disponibilidad, inicialmente pensada para Base de Datos (Oracle Real Application Clusters -RAC-). 

Esta capa de software la podemos implementar de distintas maneras y para distintos propósitos que no tienen que se necesariamente Base de Datos. Entre las posibles configuración tenemos:

  • Oracle RAC
  • Oracle RAC One Node
  • Oracle Standalone
  • Oracle Restart

En este post nos ocuparemos de Oracle Restart. Esta opción de configuración se limita a la instalación y configuración del software de Clusterware sin configurar ASM, solo los servicios de HA para proveer un arranque automático tanto a las DDBB como Listeners que tengamos configurados en el servidor.

En este ejemplo partiremos de un entorno de Base de Datos Oracle 11g R2 en el que ya tenemos instalado y configurado 2 Bases de Datos y, asumiendo que realizamos Backups y las Bases de Datos esta en modo archivado, sólo nos queda integrar Oracle Restart para poder cumplir un nivel Bronce.

Lo primero que haremos será instalar esta capa en el servidor descrito previamente.

Para ello descargaremos los Binarios correspondientes desde OTN . A continuación movemos este software al servidor y descomprimimos el zip.

Lanzamos el runInstaller:

2015-11-23 21_04_07-Oracle Grid Infrastructure - Setting up Grid Infrastructure - Step 1 of 10

Leer más…

Oracle MAA – Arquitecturas de referencia

diciembre 17, 2015 Deja un comentario

Oracle MAA best practices definen cuatro arquitecturas de referencia de alta disponibilidad que se ocupan de la gama completa de la disponibilidad y protección de datos requeridos por las empresas de todos los tamaños y líneas de negocio. Las arquitecturas o niveles se designan como Platino, Oro, Plata y Bronce.

MAA01

BRONZE

El nivel Bronze es el más indicado para las bases de datos donde un simple reinicio o restaurar la copia de seguridad es “HA enough”.

El nivel Bronze se basa en una sola instancia de base de datos Oracle con las MAA best practices, que utilizan muchas capacidades de protección de datos y alta disponibilidad que se incluye con cada licencia Oracle Enterprise Edition.

El Backup utilizando Oracle Recovery Manager (RMAN) proporciona protección de los datos y se utiliza para restaurar las bases de datos. La política de retención para los Backup’s vendrá dada por el RTO que tengamos. En los entornos productivos la necesidad de archivelog es imprescindible.

SILVER

El nivel Silver proporciona un nivel adicional de alta disponibilidad para las bases de datos que requieren unos tiempos mínimos, o cero, de inactividad en caso de problemas con la instancia de base de datos o fallo en el servidor, así como muchas tareas de mantenimiento planificado. El nivel de Silver agrega tecnología de Clustering, ya sea Oracle RAC u Oracle RAC One Node.

A este escenario le sumaríamos los pertinentes Backup’s con RMAN.

Estos Backup’s los podremos ir optimizando conforme a la arquitectura Silver que tengamos. Es decir: si se trata de un Cluster de base de datos, y manejamos grandes volúmenes Very Large Database (VLDB), la mejor solución para reducir la ventana será paralelizar el Backup, lanzándolo desde todos los nodos; a esta opción de Backup le podemos añadir compresión, dado que esta opción no requiere licenciamiento adicional.

Este es un ejemplo de cómo alocar canales en varios nodos de un RAC:

ALLOCATE CHANNEL ch00 TYPE ‘SBT_TAPE’ PARMS=”ENV=(NB_ORA_CLIENT=srvcrmp01-vip)” CONNECT=’sys/password@CRM1′;
ALLOCATE CHANNEL ch01 TYPE ‘SBT_TAPE’ PARMS=”ENV=(NB_ORA_CLIENT=srvcrmp02-vip)” CONNECT=’sys/password@CRM2′;

GOLD

El nivel Gold aumenta las expectativas, sustancialmente, para aplicaciones críticas de negocio que no pueden aceptar la vulnerabilidad a los puntos de fallo individuales. Este nivel añade tecnologías de replicación de bases de datos Oracle. En esta arquitectura se puede incluir, además: Oracle Active Data Guard, para poder descargar de trabajo la base de datos primaria (necesita un licenciamiento adicional y también está incluida en la licencia de GoldenGate) y Oracle GoldenGate, que sincroniza una o varias réplicas de la base de datos de producción, para proporcionar una protección de datos en tiempo real y disponibilidad. La replicación de bases de datos aware mejora sustancialmente la alta disponibilidad y protección de datos,  más allá de lo que es posible con las tecnologías de replicación de almacenamiento.

PLATINUM

El nivel Platinum introduce varias nuevas capacidades de Oracle Database 12c y muchas características que se han mejorado con la última versión. Estas capacidades incluyen: Application Continuity y Active Data Guard Far Sync para la protección con cero pérdida de datos a cualquier distancia, mejoras en Oracle GoldenGate para zero downtime ante actualizaciones y migraciones, y Global Data Services para la gestión automática del workload balancing en entornos de bases de datos replicadas. Cada una de estas tecnologías requiere un esfuerzo adicional para ponerlas en práctica, pero entregan un valor sustancial para las aplicaciones más críticas, en las que el tiempo de inactividad y la pérdida de los datos no son una opción.

En la Siguiente tabla podemos ver un resumen de los distintos niveles de protección y perdida de datos:

Table01

 

Para mas información sobre Oracle MAA os dejo este enlace a otro post muy interesante:

¿Tengo que instalar los “Oracle Critical Patch Update” en mis entornos?

febrero 3, 2011 2 comentarios

Periódicamente (en la actualidad cada tres meses) Oracle envía a sus clientes notificaciones de la salida de los “Critical Patch Updates“:

Mail de Oracle Sobre CPU's

La mayoría de clientes se preguntan si deben instalar estos parches en sus entornos y qué ventajas/inconvenientes tendrían en caso de hacerlo.

Leer más…

Categorías:Seguridad Etiquetas: , ,

Piensa en Web, pantallas ligeras y rápidas

Para aquellos equipos acostumbrados al desarrollo en entornos cliente-servidor, el paso al desarrollo de aplicaciones web no debería únicamente implicar el cambio de herramientas y tecnología a usar por parte del equipo de programación. Es tarea del equipo de analistas funcionales entender los cambios en la interficie de usuario, o a nivel transaccional que el paradigma web conlleva. Debemos tener en cuenta que un diseño funcional donde en una pantalla ponemos dos o tres relaciones maestro-detalle con multitud de ítems, si bien será implementable en web, su rendimiento será muy pobre, y además estaremos mareando al usuario llenando su navegador con una cantidad excesiva de información.
En un caso como el planteado, si realmente el usuario va a tener que rellenar toda esa información, lo más indicado sería presentarle la información en bloques (como en un wizard, con botones de “anterior” y “siguiente”; en cambio, si los datos a introducir or modificar es una parte del total, lo mejor sería que el usuario pudiera navegar a los diferentes bloques que él seleccione.

Cito un par de factores importantes que deberían ser tenidos en cuenta:

  • Layout: En un entorno tipo Cliente-Servidor (como Oracle Forms) disponemos de un runtime propietario y controlado que nos permite entre otras cosas el posicionamiento absoluto de items. En cambio en el entorno web no sabemos a priori sobre qué navegador va a correr nuestra aplicación. Incluso diferentes versiones del mismo navegador (léase MS Explorer) tienen comportamientos diferentes. Debemos asegurarnos que nuestra aplicación sea capaz de mostrarse correctamente en cualquier navegador. El uso de componentes estándar de ADF 11g simplifica en gran medida este punto.
  • Simplicidad: El tráfico que genera una aplicación web es significativamente mayor que el generado por una aplicación Cliente-Servidor ejecutada en un entorno de tres capas (con servidor de aplicaciones), y además la representación es más lenta (el navegador debe interpretar el código html, javascript, css, etc que le llega). Para no penalizar el rendimiento de la aplicación, es aconsejable “aligerar” al máximo las pantallas. Al mismo tiempo estaremos generando pantallas más “atómicas”, y por tanto, más fáciles de reutilizar desde diferentes puntos de la aplicación. Frameworks como ADF 11g facilitan este tipo de diseños, mediante el uso de task flows.

Consideraciones generales sobre recursividad

noviembre 22, 2010 1 comentario

La utilización de técnicas de recursividad dentro de la programación en cualquier tipo de lenguaje (en este caso PL/SQL) dota al código de un gran nivel de ‘factores de calidad’ (calidad + simplicidad + potenciabilidad). Características que conjuntamente con las de elegancia y sencillez dotan a esta técnica como de uso muy recomendable.

Unos de los casos más representativos de la aplicación de esta técnica, por su propia definición, es la del cálculo matemático del ‘factorial’ de un número:

n! = n * (n-1) * (n-2) * (n-3) * … * 1

Indicar como excepción a la recursividad tradicional, situaciones en las que la información susceptible de tratamiento está ubicada en la Base de Datos en un modelo de ‘Estructura Jerárquica‘. Esta puede ser tratada por ‘SQL‘ mediante consultas ‘jerárquicamente relacionales‘ (‘CONNECT BY PRIOR …‘). A esta excepción se le denomina ‘recursividad por estructura en relación reflexiva‘  (ver más detalladamente a continuación).

Leer más…

Categorías:Metodología Etiquetas: , , ,

¿Dónde está ubicada la lógica de negocio de tu aplicación? (2) – Caso práctico de desacoplamiento

En uno de nuestros clientes se me planteó como objetivo de un proyecto independizar la capa de negocio de la capa de presentación, desacoplándola totalmente para que pudiera ser reutilizada desde cualquier entorno gráfico y dispositivo móvil, en una posible evolución a orientación a servicios (SOA).

Lo primero que revisé fue la estructura interna de la aplicación para determinar qué cambios se debían realizar para dejarla lo más reutilizable posible. Después tocó evaluar en tiempo, coste y recursos esos cambios, tratándolos como si fuesen un proyecto más. Aquí pensé en los responsables y en cómo iban a enfocarlos de cara a obtener la aprobación desde arriba ya que este tipo de proyectos son difíciles de justificar delante de los gestores, pues consumen recursos, cuestan dinero y no aportan ninguna nueva funcionalidad. Pero este coste se debe conocer pues con él pueden decidir si la opción de adaptar para el cambio resulta más barata o más cara que empezar todo de nuevo, en cuyo caso también se debe valorar lo que representa la pérdida de toda la inversión y trabajo efectuado hasta el momento.

Leer más…