29 julio 2020

¿Qué es la arquitectura de datos?


En tecnología de la información, la arquitectura de datos se compone de modelos, políticas, reglas o estándares que rigen qué datos se recopilan y cómo se almacenan, organizan, integran y utilizan en los sistemas de datos y en las organizaciones. [1] Los datos suelen ser uno de varios dominios de arquitectura que forman los pilares de una arquitectura empresarial o arquitectura de solución. [2]
[1] Business Dictionary - Data Architecture*TOGAF® 9.1 - Phase C: Information Systems Architectures - Data Architecture
[2] What is data architecture GeekInterview, 2008-01-28, accessed 2011-04-28



La arquitectura de datos define los flujos de información en una organización y cómo se controlan. Un arquitecto de datos es responsable de comprender los objetivos comerciales y la infraestructura y los activos de datos existentes; definición de principios de arquitectura de datos; y dar forma a la arquitectura de datos empresariales para proporcionar mayores beneficios a la organización.
Algunos conceptos básicos en arquitectura de datos:
  • Modelo de datos conceptual: muestra entidades de datos como clientes, productos y transacciones, y su semántica.
  • Modelo lógico: define los datos con el mayor detalle posible, incluidas las relaciones entre los elementos de datos, pero sin considerar cómo se almacenan o administran los datos.
  • Modelo de datos físicos: define cómo se representan y almacenan los datos, por ejemplo, en un archivo plano, base de datos, almacén de datos, almacén de valores clave.


¿Quién está involucrado en la arquitectura de datos?
Los siguientes roles existen para ayudar a dar forma y mantener una arquitectura de datos moderna:

  • Arquitecto de datos: define la visión de los datos en función de los requisitos comerciales, los traduce a los requisitos tecnológicos y define los estándares y principios de datos.
  • Responsable de proyectos: supervisa proyectos que modifican flujos de datos o crean nuevos flujos de datos.
  • Arquitecto de soluciones: diseña sistemas de datos para cumplir con los requisitos empresariales.
  • Arquitecto en la nube o ingeniero de centro de datos: prepara la infraestructura en la que se ejecutarán los sistemas de datos, incluidas las soluciones de almacenamiento.
  • DBA o ingeniero de datos: crea sistemas de datos, los completa con datos y se ocupa de la calidad de los datos.
  • Analista de datos: un usuario final de la arquitectura de datos, lo utiliza para crear informes y administrar una fuente de datos continua para la empresa.
  • Científicos de datos: también usuarios de la arquitectura de datos, que aprovechan para extraer datos de la organización para obtener nuevas perspectivas.

El papel del arquitecto de datos

¿Qué habilidades ayudan a alguien a convertirse en un arquitecto de datos?

  • Comprender y comunicar cómo los datos impulsan el negocio.
  • Capaz de trabajar con diversas fuentes de datos, comprender su estructura, contenido y significado.
  • Profundamente informado sobre herramientas y tecnologías de datos.

¿Cómo se puede formar un candidato a ser arquitecto de datos?
La capacitación de arquitectos de datos generalmente ocurre en el trabajo, en roles relacionados con datos como ingeniero de datos, científico de datos o arquitecto de soluciones. No existe un programa de certificación o capacitación estándar de la industria para arquitectos de datos, pero es valioso para los arquitectos tener certificación en las plataformas de datos primarias utilizadas por su organización. Algo así como un OCP, en el caso de Bases de datos Oracle.

¿Cuáles son los roles y responsabilidades del arquitecto de datos?
·         Traduce los requisitos del cliente o de su organización a especificaciones técnicas:
o   flujos de datos
o   transformaciones
o   integraciones
o   bases de datos
o   almacenes de datos (datawarehouse)

  • Define los estándares y los principios de la arquitectura de datos: modelado, metadatos, seguridad, datos de referencia como códigos de productos y categorías de clientes, y datos maestros como clientes, proveedores, materiales y empleados.
  • Define una arquitectura de referencia: un patrón que otros en la organización pueden seguir para crear y mejorar los sistemas de datos.
  • Define los flujos de datos: qué partes de la organización generan datos, qué datos requieren para funcionar, cómo se gestionan los flujos de datos y cómo cambian los datos en la transición.
  • Colaboración y coordinación: los proyectos de datos a menudo abarcan múltiples departamentos y partes interesadas, así como socios y proveedores externos; El arquitecto de datos es un punto focal que coordina a todas las partes en torno a los objetivos de la organización.


¿Cómo puede ayudar la tecnología?
Hace muchos años, la infraestructura de datos era monolítica. Las organizaciones invirtieron millones en grandes sistemas que almacenarían y procesarían todos los datos de la organización. Con el advenimiento de la tecnología de código abierto y las metodologías ágiles, los sistemas de datos se están volviendo más simples y más livianos, en algunos casos, y al mismo tiempo más efectivos y más flexibles.

Las herramientas tecnológicas que nos encontramos son:

  • Contenedores: plataformas como Docker y Kubernetes ayudan a acelerar e implementar la infraestructura de datos con solo hacer clic en un botón, y orquestar sistemas complejos de manera flexible y escalable.
  • Almacén de datos: una piedra angular de la infraestructura de datos de la vieja escuela, los almacenes de datos siguen siendo importantes, pero se están trasladando a la nube e interactuando con lagos de datos, bases de datos tradicionales y fuentes de datos no estructuradas
  • Base de datos relacional: los antiguos dominadores como Oracle, DB2, o incluso SQL Server, todavía están en uso, pero las alternativas de código abierto como MariaDB, MySQL y PostgreSQL están en todas partes
  • Base de datos NoSQL: almacenas cantidades masivas de datos semiestructurados y no estructurados. Las soluciones populares son Redis, MongoDB o Cassandra.
  • Transmisión en tiempo real: nuevas herramientas como Apache Kafka, ElasticSearch Logstash, Flume y AWS Kinesis ayudan a transmitir grandes volúmenes de datos desde los registros del sistema y los sistemas de producción.
  • Microservicios y computación sin servidor: los sistemas de datos creados utilizando microservicios o funciones como servicio (FaaS) son unidades independientes que exponen una interfaz estándar, lo que permite a los arquitectos de datos componer y organizar entornos de datos para satisfacer las necesidades del negocio.



Prácticas que mejorarán la arquitectura de datos
Las siguientes prácticas pueden ayudarnos a lograr una arquitectura de datos más efectiva:

  • Vea los datos como activos compartidos: elimine los silos organizativos y vea los datos de los clientes de manera integral, combinando datos de todas las partes de la organización.
  • Diseñar e implementar las interfaces adecuadas para que los usuarios consuman datos: los datos son insignificantes si no se pueden consumir de manera conveniente. Las interfaces pueden ser paneles basados ​​en web, BI, consultas SQL, R o cualquier otra cosa que los usuarios comerciales o analistas utilicen para obtener información.
  • Asegurar el control de acceso: clasifique los datos de acuerdo con su sensibilidad e importancia comercial, y diseñe cuidadosamente los controles de acceso para garantizar que los datos estén fácilmente disponibles, pero solo para aquellos que lo requieran.
  • Apoyar la administración del dato: los administradores de datos son expertos en la materia que pueden ayudar a limpiar, verificar y agregar datos de la organización. Por ejemplo, un gerente de línea de productos que tiene una visión especial de miles de productos. Construya una comunidad de administradores de datos, contribuyentes y ciudadanos de datos que puedan mejorar la calidad de los datos para todos.
  • Conservación de los datos: considere qué datos son realmente procesables para diferentes roles organizativos y cree procesos para seleccionar los datos más relevantes. Más allá de la curación de arriba hacia abajo, permita a los usuarios realizar fácilmente filtros y consultas para obtener datos relevantes más rápido.
  • Elimine las copias y el movimiento de datos: en las grandes organizaciones, es difícil estandarizar los datos sin reglas estrictas que sofocan la creatividad. Esfuércese por crear formatos y estructuras de datos que alienten a los usuarios a colaborar en las mismas entidades de datos, en lugar de crear múltiples versiones de la misma entidad.
  • Automatizar todo lo que sea posible: la clave para una arquitectura de datos eficiente.




29 marzo 2019

¿Hay vida más allá de Oracle? KQL: Kibana Query Language




Este tutorial es una explicación breve sobre cómo escribir consultas en Kibana, en la barra de búsqueda en la parte superior, o en Elasticsearch, utilizando la consulta de cadena de consulta. El lenguaje de consulta utilizado es en realidad el lenguaje de consulta de Apache Lucene, ya que es Lucene  el motor utilizado en Elasticsearch para indexar datos.

Comprender cómo se indexan sus datos en Elasticsearch influye en gran medida en qué y cómo puede buscar con sus consultas. Por eso esta no solo será otra entrada del Lucene query parser.

Por lo tanto, el tema de este tutorial no es solo explicar el lenguaje de consulta, sino también explicar por qué puede o no encontrar sus documentos almacenados en Elasticsearch.

Indexación de documentos
Primero, es crucial entender cómo Elasticsearch indexa los datos. Por lo tanto, ponemos los siguientes dos documentos en nuestra instancia de Elasticsearch.
:

{
  "title": "Lord Jim",
  "author": "Joseph Conrad"
}
{
  "title": "The Last Command",
  "author": "Timothy Zahn"
}
{
  "title": "Heart of Darkness",
  "author": "Joseph Conrad"
}


Si no cambiamos nada en las asignaciones de Elasticsearch para ese índice, Elasticsearch detectará automáticamente la cadena como el tipo de ambos campos al insertar el primer documento.

¿Qué hace un analizador?
Un analizador tiene varios tokenizadores y / o filtros adjuntos. El tokenizer obtendrá el valor del campo que se debe indexar (por ejemplo, "The Heart of Darkness") y puede dividir el valor en varios fragmentos que el usuario debería poder buscar (más en un momento). Los filtros de un analizador pueden transformar o filtrar tokens que produce el tokenizador.

Todas las fichas resultantes se almacenarán en un llamado índice invertido. Ese índice contendrá todos los tokens producidos por el analizador y un enlace a cuál de los documentos los contenían.

Por lo tanto, si el usuario presenta Elasticsearch con una palabra de búsqueda, solo tiene que buscarlo en el índice invertido y verá instantáneamente qué documentos debe devolver. Dado que no especificamos ninguna asignación para nuestro índice de Elasticsearch, los campos de la cadena de tipo se analizarán con el Analizador Estándar de forma predeterminada.

Este analizador dividirá primero el valor del campo en palabras (utilizará caracteres de espacio y puntuación como límites) y luego utilizará un filtro para transformar todas las fichas en minúsculas. Después de insertar los dos documentos anteriores, el índice invertido para el campo de título se vería de la siguiente manera, con 1 que se refiere al primer documento “Lord Jim”, 2 al segundo. "The Last Command" y 3 al tercero que se refieren al "The heart of Darkness":

Término
Documento
lord
1
jim
1
the
2,3
last
2
command
2
heart
3
of
3
darkness
3


También se creará un índice invertido para el campo de autor. Este contendrá cuatro entradas: una para “Timothy”, otra para  “Zahn” una para "Joseph" y otra para "Conrad" que están vinculadas a ambos documentos.

Ese índice invertido ahora permite a Elasticsearch buscar rápidamente qué documentos devolver para una búsqueda si el usuario busca "guía". Además, los Términos-Agregación en Elasticsearch / Kibana solo analizan ese índice invertido y devuelven los términos que tienen los documentos más / menos (según el orden especificado por el usuario) adjuntos.

Mapeos en Elasticsearch
Si inserta datos en elasticsearch, eso no es realmente texto, pero, por ejemplo, una URL o similar que el análisis predeterminado no tiene mucho sentido. Especialmente si va a visualizar sus datos con Kibana, no desea que un gráfico de las URL más visitadas contenga una entrada para "http" y la ruta de acceso se divide en cada barra. Le gustaría tener una entrada por dominio real. Lo que desea es que Elasticsearch no analice los valores de sus documentos.

Por lo tanto, debe definir una asignación para su índice manualmente. Esto no está cubierto en ese tutorial, pero eche un vistazo a la documentación oficial. Si específica “index: not_analyzed“ en el mapeo, el índice invertido para el campo del título se vería de la siguiente manera:


Término
Documento
Lord Jim
1
The Last Commnad
2
The heart of darkness
3

Y el índice invertido del campo de autor ahora se vería así.

Término
Documento
Joseph Conrad
1,3
Timothy Zahn
2


Como ves, Elasticsearch ya no divide los valores y tampoco los transforma en minúsculas. Ya sea que sus valores sean analizados o no (es decir, qué términos están en el índice invertido) tienen un gran impacto en qué y cómo puede buscar, como veremos en las siguientes secciones.

Cuando hablamos de los "datos analizados", esto significa que tiene los datos en los campos de cadena analizados. Cuando hablamos de "datos no analizados", esto significa que usted tiene una asignación que tiene ambos campos como no analizados.

Ahora explicaremos cómo Elasticsearch indexa los datos, podemos continuar con el tema real: la búsqueda.

Las siguientes consultas siempre se pueden usar en Kibana en la parte superior de la pestaña Descubrir, su visualización y / o paneles de control. Además, estas consultas se pueden usar en la consulta de cadena de consulta cuando se habla directamente con Elasticsearch.

Empecemos con el autor de la consulta bastante simple: joseph. Si ingresa esta consulta en el conjunto de datos analizado, Elasticsearch devolverá ambos documentos. ¿Por qué? Buscará el término "joseph" en el índice invertido para el campo del autor. Está allí enlazando a ambos documentos, por lo que Elasticsearch devolverá esos dos documentos como resultados.

Si utilizará la misma búsqueda en el conjunto de datos no analizados, no obtendrá ningún resultado. ¿Por qué? Elasticsearch busca de nuevo "joseph" en el índice invertido. No hay ninguna entrada para solo "joseph" como término (solo para "Joseph Conrad"), por lo que no devolverá ningún resultado.

Si intenta buscar el autor: Conrard (primera letra en mayúscula) en los datos analizados, obtendrá como resultado ambos documentos. ¿Por qué? Debido a que Elasticsearch reconoce que el campo del autor ha sido analizado e intenta aplicar el mismo analizador a su consulta de búsqueda "Conrad", significa que también se transformará en minúsculas antes de que se busque en el índice invertido. Por eso sigue encontrando los documentos. La misma consulta en datos no analizados aún no producirá ningún resultado, ya que no hay ninguna entrada para "Joseph" (solo para "Joseph Conrad").

06 febrero 2019

Oracle 12C: Dos características interesantes en cuanto a seguridad

Hay muchas características nuevas en la base de datos de 12c que me gustan y que he discutido y hablado sobre ellas con varios colegas. Dos simples adiciones a la base de datos 12c hacen mi vida mucho más fácil en lo relativo a la seguridad de las bases de datos. El requisito era bloquear las cuentas de usuario que no hayan iniciado sesión en la base de datos durante 60 días consecutivos.

Last Login Time 

En las versiones anteriores a Oracle Database 12c (12.1) para averiguar cuándo un usuario inició sesión por última vez con éxito en la base de datos, debemos habilitar la auditoria de sesión, lo que conlleva cierta sobrecarga y el DBA debe configurar rutinas para limpiar la tabla de auditoria, etc. En 11g En la base de datos, tuve que habilitar la auditoría de sesión (mantener los registros de auditoria de la sesión durante al menos 61 días) y escribir un SQL que consultara a DBA_USERS y DBA_AUDIT_SESSION para enumerar a todos los usuarios activos que no usaron la base de datos durante 60 días.

En 12.1, Oracle registra automáticamente el tiempo de inicio de sesión exitoso en la tabla SYS.USER $ y está visible en DBA_USERS. La columna LAST_LOGIN de DBA_USERS muestra la última hora de inicio de sesión del usuario en la base de datos. En la base de datos 12.1, mi requisito se cumple al escribir un SQL simple contra DBA_USERS utilizando la columna LAST_LOGIN. No se requiere auditoria. El resultado se utiliza para crear SQL dinámico para bloquear cada cuenta mediante la instrucción ALTER USER ACCOUNT LOCK (similar a 11g).
Por cierto, notó que cuando inicie sesión en la base de datos utilizando SQL * Plus, también verá el último tiempo de inicio de sesión.

Bloqueo de cuenta inactiva

Mi requerimiento se automatizó completamente en la base de datos 12.2. Oracle introdujo el parámetro INACTIVE_ACCOUNT_TIME para los perfiles de usuario. El parámetro del perfil INACTIVE_ACCOUNT_TIME bloquea una cuenta de usuario que no ha iniciado sesión en la instancia de la base de datos en un número específico de días. El valor predeterminado para INACTIVE_ACCOUNT_TIME es 35. La configuración mínima es 15 y la máxima es 24855.

21 enero 2019

¿Cómo encontrar los metadatos de cualquier objeto en Oracle Database?


Normalmente nos vemos en la situación de necesitar definición de tablas, índices, vistas, etc. para replicar la estructura en otra base de datos. Oracle tiene un comando muy útil para encontrar la definición de metadatos de la estructura diversa. Este comando es muy útil para extraer los metadatos de cualquier objeto, como tabla, índice, vistas, vistas materializadas.


La salida de la consulta es de tipo de carácter large. Por favor, establezca la longitud length antes de comenzar la consulta.

Ejemplos variados:


Como es sabido, tenemos un comando para toda la creación de objetos en la base de datos Oracle. Este es un comando bastante poderoso y podemos usarlo para extraer la definición de tabla de todas las tablas en el esquema también.




15 enero 2019

¿Qué es Oracle Flex ASM?

No descubro nada si digo que Oracle Real Application Cluster (RAC) es un producto bien conocido entre las soluciones de Oracle para mantener una alta disponibilidad de los datos de cualquier negocio. Gracias a Oracle RAC puedes balancear la carga de trabajo, esta  se comparte entre todos los nodos del clúster, con la configuración de tolerancia N-1 en caso de fallas de nodo, siendo N es el número total de nodos. Desde las primeras versiones Oracle RAC está mejorando constantemente en cada versión y esta vez no fue diferente. 
La nueva versión 12.1.0.1 incorpora dos propiedades llamadas:
  • Flex ASM
  • Flex Cluster

,que dan soporte a los requisitos de demanda en entornos orientados a la computación en nube.

En la versión 12c Oracle RAC introduce dos nuevos conceptos:
  • Nodos Hub: están conectados entre sí a través de una red privada y tienen acceso directo al almacenamiento compartido, al igual que las versiones anteriores. Estos nodos son los que acceden directamente al Oracle Cluster Registry (OCR) y Voiting Disk (VD).
  • Nodos leaf: estos nodos son más ligeros y no están conectados entre ellos, ni acceden al almacenamiento compartido como los nodos de concentrador. Cada nodo hoja se comunica con el nodo concentrador que está conectado y está conectado al clúster a través del nodo concentrador vinculado. 

Esta topología permite que los servidores de aplicaciones débilmente acoplados formen un clúster con servidores de bases de datos estrechamente acoplados. Los servidores estrechamente acoplados son servidores centrales que comparten el almacenamiento para dispositivos de base de datos, OCR y Voiting Disk (VD), así como la comunicación de igual a igual con otros servidores centrales en el clúster. Un servidor débilmente acoplado es un servidor Leaf que tiene una asociación de comunicación suelta con un solo Servidor Hub en el clúster y no requiere almacenamiento compartido ni comunicación de igual a igual con otros Servidores Hub o Leaf en el clúster, excepto para comunicarse con el Hub al que está asociado. En la versión de Oracle database 12.1.0.1, los servidores Leaf están diseñados para una mayor disponibilidad de aplicaciones y administración de recursos de múltiples niveles.



Lo bueno de Flex ASM es que el bloqueo de una instancia de ASM no arrastra las instancias de base de datos en el host. Imagine un entorno de base de datos como servicio en, por ejemplo, una máquina Exadata X3-8,  esta máquina viene con 8s80c160t y 2 TB de memoria más 8 discos internos para binarios de Oracle. Esto debería ser una gran cantidad de equipos para consolidar sus bases de datos. 
Ahora imagina lo que sucede si la instancia de ASM se bloquea ... o mejor no.  Al introducir Oracle uzca Flex ASM puedes elegir el modo ASM durante la instalación de Grid Infrastructure 12c o habilitarlo más tarde. 

Antes de la puesta en marcha de Oracle 12c, para que una instancia de base de datos use ASM, se esperaba que la instancia de ASM esté funcionando en todos los nodos antes de que se active la instancia de la base de datos. Si la instancia de ASM no aparece, significa que la instancia de la base de datos que utiliza ASM en el nivel de almacenamiento no se puede activar. Esto implicaliteralmente que no se puede acceder a la instancia de la base de datos sin importar las tecnologías puestas en uso, es decir:
  • RAC
  • ASM
  • almacenamiento compartido

Al lanzar Oracle 12c, la restricción anterior se abordó con la función denominada Oracle Flex ASM, que principalmente tiene una función para conmutar por error a otro nodo del clúster. 

Esencialmente una arquitectura de Hub y Leaf, la conexión de un nodo fallido se transfiere sin problemas a otro nodo participante mediante una instancia de ASM de reemplazo por Oracle Clusterware. El número de instancias de ASM que se ejecutan en un clúster dado se denomina cardinalidad de ASM con un valor predeterminado de 3. Sin embargo, el valor de cardinalidad se puede modificar con el comando Clusterware.

Mejores prácticas en Oracle Flex ASM

  • Si tenemos un despliegue en modo mixto, recomendamos establecer la cardinalidad con el parámetro: ALL
  • ¿Cuantas instancias ASM son necesarias?
    • Para menos de cuatro nodos, una instancia ASM en cada nodo
    • Para cuatro o mas nodos: Tres instancias ASM o todas si hay bases de datos pre 12c.
  • ¿Cuantos Disk Groups son necesarios?
    • 3 DATA, FRA y GRID
      • GRID DG para OCR, Voting File, SPFILE
      • Utiliza la redundancia externa para la mayoría de las matrices de almacenamiento de gama alta
  • ¿Qué tamaño y cuántos discos hay en un grupo de discos?
    • Discos mínimos: 4 veces el número de rutas para cada grupo de discos
      • Grupo de discos de redundancia normal con rutas múltiples de 2 vías> = 8 discos
    • Máximo: <1000 discos en un grupo de discos
      • Tiempos de descubrimiento de disco largos y adiciones frecuentes de capacidad con demasiados discos

Oracle FLEX ASM

Arquitectónicamente, Oracle Flex Cluster se compone de una arquitectura de Hub y Leaf donde  los nodos de Hub únicamente tendrán acceso directo tanto a Oracle Cluster Registry (OCR) y al Voting Disk (VD). Sin embargo, la aplicación puede acceder a la base de datos a través de los nodos Leaf sin que la instancia de ASM NO se ejecute en los nodos Leaf. La conexión a la base de datos se realiza a través de Hub, lo que la hace transparente para la aplicación.

¿Cómo implementamos Oracle FLEX ASM?
  • Pure 12c Flex ASM (misma versión)
    • Tanto la infraestructura de Grid (GI) como la base de datos se ejecutan en Oracle 12c
  • Pre Oracle 12c Mixto (diferentes versiones)
Como instancia normal de ASM, se ejecutará en cada nodo con la configuración de Flex para admitir la base de datos pre 12c. El parámetro de compatibilidad del grupo de discos ASM se utiliza para administrar la compatibilidad entre y entre las instancias de base de datos. La ventaja de este enfoque es que si una instancia de la base de datos Oracle 12c pierde conectividad con una instancia de ASM, entonces las conexiones de la base de datos cambiarán a otra instancia de ASM en un servidor diferente. Este failover se logra estableciendo la cardinalidad a todos.
Se han implementado algunas mejoras:

  • Oracle Flex ASM admite tamaños de LUN más grandes para clientes de Oracle Database 12c.
  • El número máximo de grupos de discos admitidos es 511, se ha aumentado desde 63.
  • La reconexión de una instancia de base de datos hacia otra instancia de ASM es automática.
  • La instancia de ASM usa Automatic Memory Management (AMM)
  • Ningún parámetro especifico es requerido dentro de la base de datos para usar "Oracle Flex ASM".
  • Ahora hay un comando para renombrar un "ASM Disk" en un "Disk Group".

Oracle RAC 12c con Oracle FLEX ASM 

La configuración estándar de Oracle FLEX ASM sería:

Error de instancia de ASM en la configuración de Oracle Flex ASM:

1. Autentícate en la instancia RAC (rac1)
[oracle@oel6-112-rac1 Desktop]$ hostname
oel6-112-rac1.localdomain

2. Comprueba el estado de las instancias de la base de datos de ASM y RAC
[oracle@oel6-112-rac1 Desktop]$ ps -ef | grep pmon
oracle    3325     1  0 17:39 ?        00:00:00 asm_pmon_+ASM1
oracle    3813     1  0 17:40 ?        00:00:00 mdb_pmon_-MGMTDB
oracle    5806     1  0 17:42 ?        00:00:00 ora_pmon_orcl1
oracle    6193     1  0 17:42 ?        00:00:00 apx_pmon_+APX1

3. Comprueba el estado de la instancia de ASM en las instancias de la base de datos de RAC desde la instancia 1 (rac1)
[oracle@oel6-112-rac1 Desktop]$ srvctl status asm
ASM is running on oel6-112-rac2,oel6-112-rac1

4. Comprueba el estado de Cluster en instance1 (rac1)
[oracle@oel6-112-rac1 Desktop]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

5. Comando para verificar si Oracle Flex ASM está habilitado o no (rac1)
[oracle@oel6-112-rac1 Desktop]$ asmcmd
ASMCMD> showclustermode
ASM cluster : Flex mode enabled
ASMCMD> showclusterstate
Normal

6. Comando para cambiar la cardinalidad del ASM (rac1)
[oracle@oel6-112-rac1 Desktop]$ srvctl status asm -detail
ASM is running on oel6-112-rac2,oel6-112-rac1
ASM is enabled.
[oracle@oel6-112-rac1 Desktop]$ srvctl config asm -detail
ASM home: /u01/app/12.1.0/grid
Password file: +DATA/orapwASM
ASM listener: LISTENER
ASM is enabled.
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM

7. Comando para verificar si Oracle Flex ASM está habilitado o no (rac2)
[oracle@oel6-112-rac2 Desktop]$ asmcmd
ASMCMD> showclustermode
ASM cluster : Flex mode enabled
ASMCMD> showclusterstate
Normal
ASMCMD> exit

8. Cómo cambiar la cardinalidad del ASM (rac2)
[oracle@oel6-112-rac2 Desktop]$ srvctl config  asm -detail
ASM home: /u01/app/12.1.0/grid
Password file: +DATA/orapwASM
ASM listener: LISTENER
ASM is enabled.
ASM instance count: 3
Cluster ASM listener: ASMNET1LSNR_ASM

9. Bajar la instancia de ASM en la instancia de la base de datos de RAC1 (rac1)
[oracle@oel6-112-rac1 Desktop]$ srvctl stop asm -node oel6-112-rac1 -stopoption abort -force

10. Comprueba el estado de la instancia de ASM en la instancia de la base de datos de RAC1 (rac1)
[oracle@oel6-112-rac1 Desktop]$ srvctl status asm
PRCR-1070 : Failed to check if resource ora.asm is registered
Cannot communicate with crsd

11. Comprobación del estado de los servicios de clúster en RAC Database instance1 (rac1)
[oracle@oel6-112-rac1 Desktop]$ crsctl check cluster
CRS-4535: Cannot communicate with Cluster Ready Services
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

12. Verificación del estado de la base de datos de ASM y RAC en la instancia 1 (rac1)
[oracle@oel6-112-rac1 Desktop]$ ps -ef | grep pmon
oracle    3813     1  0 17:40 ?        00:00:00 mdb_pmon_-MGMTDB
oracle    5806     1  0 17:42 ?        00:00:00 ora_pmon_orcl1
oracle    6193     1  0 17:42 ?        00:00:00 apx_pmon_+APX1

Aquí, una instancia de base de datos está asociada con la instancia ASM específica que se ejecuta en el nodo específico. Si, por alguna razón, si la instancia de ASM no se pudo activar / los servicios se desactiva, la instancia de la base de datos se puede activar ya que la instancia de la base de datos buscará una instancia de ASM que se ejecute en el mismo grupo. La Figura 3 muestra la alta característica disponible de Flex ASM.

13. Compruebe el estado de la instancia de la base de datos de RAC que se ejecuta sin la instancia de ASM en la instancia de base de datos de RAC1 (rac1)
[oracle@oel6-112-rac1 Desktop]$ . oraenv
ORACLE_SID = [orcl1] ? orcl1
ORACLE_HOME = [/home/oracle] ? /u01/app/oracle/product/12.1.0/db_1
The Oracle base remains unchanged with value /u01/app/oracle
14. nicie sesión en la instancia de la base de datos desde la instancia de la base de datos RAC1 (rac1)
[oracle@oel6-112-rac1 Desktop]$ sqlplus /nolog
SQL*Plus: Release 12.1.0.1.0 Production on Wed Sep 25 18:24:36 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

SQL> connect sys/oracle@orcl as sysdba
Connected.

SQL> select instance_name,instance_number from gv$instance;


INSTANCE_NAME           INSTANCE_NUMBER
-------------------------------------------
orcl2                         2
orcl1                         1
SQL> select instance_name,instance_number from v$instance;


INSTANCE_NAME           INSTANCE_NUMBER
-------------------------------------------
orcl2                         2

SQL> connect sys/oracle@orcl as sysdba
Connected.

SQL> select instance_name,instance_number from gv$instance;

INSTANCE_NAME           INSTANCE_NUMBER
-------------------------------------------
orcl1                         1

15. Conexión a la instancia ASM de la instancia de la base de datos de RAC2 (rac2) desde la instancia de la base de datos de RAC1 (rac1)
[oracle@oel6-112-rac1 Desktop]$ . oraenv
ORACLE_SID = [orcl1] ? +ASM2
ORACLE_HOME = [/home/oracle] ? /u01/app/12.1.0/grid
The Oracle base remains unchanged with value /u01/app/oracle

[oracle@oel6-112-rac1 Desktop]$ asmcmd --privilege sysasm --inst +ASM2

ASMCMD> lsdg
State    Type    Rebal  Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
MOUNTED  EXTERN  N         512   4096  1048576     15342     4782                0            4782              0             Y  DATA/
ASMCMD>

Oracle RAC 11.2 o anteriores con Oracle FLEX ASM 

Como se mencionó en la introducción anterior para Oracle 12c, la asociación de ASM a la instancia de la base de datos es de naturaleza específica. Esto significa que si una instancia de ASM no se pudo activar, entonces la instancia de la base de datos asociada en ese nodo / ASM no se puede activar, lo que hace que la base de datos sea inaccesible.


1. Inicie sesión en la instancia de RAC Database1 (rac1)
login as: oracle
oracle@192.168.xx.xx's password:
Last login: Fri Sep 27 06:05:44 2013

2. Compruebe el estado de las instancias de la base de datos de ASM y RAC:
[oracle@rac1 ~]$ ps -ef | grep pmon
oracle    3053     1  0 05:56 ?        00:00:00 asm_pmon_+ASM1
oracle    3849     1  0 05:57 ?        00:00:00 ora_pmon_flavia1

3. Comprueba el estado de la instancia de ASM en la instancia de la base de datos de RAC1 (rac1)
[oracle@rac1 ~]$ srvctl status asm
ASM is running on rac2,rac1

4. Comprueba el estado de Cluster en RAC Database instance1 (rac1)
[oracle@rac1 ~]$ crsctl check cluster
CRS-4537: Cluster Ready Services is online
CRS-4529: Cluster Synchronization Services is online
CRS-4533: Event Manager is online

5. Detén la instancia de ASM en la instancia de la base de datos de RAC1 (rac1)
[oracle@rac1 ~]$ srvctl stop asm -n rac1 -o abort -f

6. Compruebe el estado de la instancia de ASM en la instancia de la base de datos de RAC1 (rac1)
[oracle@rac1 ~]$ srvctl status asm
ASM is running on rac2

7. Compruebe el estado de la instancia de la base de datos de ASM y RAC (rac1)
[oracle@rac1 ~]$ ps -ef | grep pmon
oracle    7885  5795  0 06:20 pts/0    00:00:00 grep pmon