Mostrando entradas con la etiqueta Oracle Database. Mostrar todas las entradas
Mostrando entradas con la etiqueta Oracle Database. Mostrar todas las entradas

20 enero 2021

Monitoreo de índices de bases de datos

 


Para aquellos que no están familiarizados con él, el monitoreo de índices es la forma de Oracle de rastrear si se está utilizando un índice, lo que le permite saber si es necesario. 

Dos cosas a tener en cuenta: 

  • No siempre marca un índice como usado, incluso si se usa. Si no se usa en un plan de ejecución, pero se usa para hacer cumplir una clave externa o restricción única, no se marcará como usado. 
  • La vista utilizada para observar el uso de índices es específica del esquema. Es posible que esté monitoreando índices, pero los índices no aparecerán en v $ object_usage a menos que inicie sesión como propietario del esquema. Es mejor ir directamente a la consulta subyacente para ver todos los índices supervisados (consulta a continuación).
Dado que la supervisión de índices es de muy bajo costo, tiene sentido activarla para todos los índices candidatos. Los índices en FK y los índices únicos funcionan incluso si no se utilizan en los planes de ejecución, por lo que no son candidatos para descartarse. Aquí está la consulta para obtener todos los índices no únicos, que no son de FK (se supone que no hay PK concatenados; si tiene eso, la consulta se vuelve más complicada):

SELECT 'ALTER INDEX '||ic.index_name||' MONITORING USAGE;'

  FROM all_ind_columns ic, all_indexes i

 WHERE i.uniqueness = 'NONUNIQUE' --don't monitor unique indexes

   AND i.table_owner = 'SCHEMA_OWNER_HERE'

   AND ic.index_owner = i.owner

   AND ic.index_name = i.index_name

   AND ic.position = 1

   AND NOT EXISTS (SELECT 'x' --Don't monitor indexes on FK's

                     FROM all_cons_columns cc, all_constraints c

                    WHERE ic.table_name = cc.table_name

                      AND ic.column_name = cc.column_name

                      AND c.constraint_name = cc.constraint_name

                      AND c.constraint_type IN ('R'));

Aquí está la consulta para ver los objetos monitoreados si no ha iniciado sesión como propietario del esquema:

select d.username, io.name, t.name,
       decode(bitand(i.flags, 65536), 0, 'NO', 'YES'),
       decode(bitand(ou.flags, 1), 0, 'NO', 'YES'),
       ou.start_monitoring,
       ou.end_monitoring 
from sys.obj$ io, sys.obj$ t, sys.ind$ i, sys.object_usage ou,
     dba_users d
where io.owner# = d.user_id
  AND d.username = 'SCHEMA_OWNER_HERE'
  and i.obj# = ou.obj#
  and io.obj# = ou.obj#
  and t.obj# = i.bo#;

Y aquí hay un ejemplo de monitoreo de índices en acción, incluido el uso de índice único que no se marca:
CREATE TABLE test_monitoring AS SELECT level id, dbms_random.value(1,1000) value FROM dual CONNECT BY LEVEL <= 5000;

Table created.

CREATE UNIQUE INDEX test_monitoring_idx ON test_monitoring(id);

Index created.

ALTER INDEX test_monitoring_idx MONITORING USAGE;

Index altered.

--Using index for PK enforcement - does not flag the index as used:
INSERT INTO test_monitoring VALUES (100,0);
INSERT INTO test_monitoring VALUES (100,0)
*
ERROR at line 1:
ORA-00001: unique constraint (BAYPAS.TEST_MONITORING_IDX) violated 

SELECT index_name, used FROM v$object_usage WHERE index_name = UPPER('test_monitoring_idx');

INDEX_NAME                     USE                                              
------------------------------ ---                                              
TEST_MONITORING_IDX            NO                                               

--But we run a select that will use the index


SELECT * FROM test_monitoring WHERE id = 100;

        ID      VALUE                                                           
---------- ----------                                                           
       100   255.5571                                                           

--And now the index shows up as used:
SELECT index_name, used FROM v$object_usage WHERE index_name = 'TEST_MONITORING_IDX';

INDEX_NAME                     USE                                              
------------------------------ ---                                              
TEST_MONITORING_IDX            YES

19 enero 2021

¿Cómo seguir utilizando Flash en 2021? Para poder ejecutar Oracle Database Control

 

¿Cómo seguir utilizando Flash en 2021?

Lo más indicado es no utilizar Flash desde 2021 en adelante, pero sabemos que algunas empresas y organismos no han actualizado a tiempo sus sistemas para que eso sea posible. Algunos organismos públicos están enviando comunicaciones sobre cómo seguir utilizando Adobe Flash a partir del 1 de enero. 

  • Descargar un navegador que no deshabilite el funcionamiento de Flash
  • Actualización de Adobe Flash Player
  • Configurar Adobe Flash Player para que permita el acceso al servicio afectado
Hay que tener en cuenta que, dado que uno de los pasos del proceso consiste en la actualización de Adobe Flash Player, la fecha límite para poder realizarlo es el 31 de diciembre de 2020. Lo primero es descargar Pale Moon, un navegador libre basado en el navegador Firefox que ha garantizado la continuidad del funcionamiento de Adobe Flash Player. Una vez instalado, descargado el idioma español (o el deseado), es necesario tener Adobe Flash Player actualizado a la última versión.

Ahora crearemos un archivo con el bloc de notas y el siguiente contenido:

EnableAllowList=1
AllowListRootMovieOnly=1
AllowListUrlPattern=https://LAPTOP-3RJGV85G:1158/em
SilentAutoUpdateEnable=0
AutoUpdateDisable=1
EOLUninstallDisable=1

Ese fichero lo guardaremos como mms.cfg y lo copiaremos en:

32 bits

  • C:/Windows/system32/Macromed/Flash

64 bits
  • C:/Windows/SysWOW64/Macromed/Flash
  • C:/Windows/system32/Macromed/Flash



Se recomienda hacer una copia de seguridad del fichero mms.cfg original, antes de nada. En caso de necesitar acceder a otras aplicaciones flash es necesario añadir al archivo mms.cfg una línea por cada aplicación:

AllowListUrlPattern=http[s]://[DOMINIO_APLICACION/

Desinstalación manual y limpia de Oracle 11g Enterprise Edition para Windows

 



Advertencia: la edición del registro puede causar problemas en su PC. Si tiene problemas al intentar desinstalar Oracle de su estación de trabajo de Windows, o no puede desinstalar las instalaciones de Oracle de manera limpia y adecuada, se pueden utilizar los siguientes pasos para desinstalar todos los productos de Oracle instalados actualmente en la estación de trabajo:

  • Desinstale todos los componentes de Oracle mediante Oracle Universal Installer (OUI).
  • Elimine la clave HKEY_LOCAL_MACHINE / SOFTWARE / ORACLE que contiene entradas de registro para todos los productos de Oracle utilizando regedit.
  • Elimine cualquier referencia a servicios / componentes de Oracle en la siguiente ubicación de registro: HKEY_LOCAL_MACHINE / SYSTEM / CurrentControlSet / Services /. Busca entradas clave que comiencen con "Ora" que obviamente están relacionadas con Oracle.
  • Reinicie la estación de trabajo.
  • Elimina el directorio ORACLE_BASE. (es decir, C: \ Oracle)
  • Elimine el directorio C: \ Archivos de programa \ Oracle.
  • Vacíe el directorio temporal.
  • Vacía la papelera de reciclaje.
Con esto, la computadora está más o menos libre de cualquier componente de Oracle, lo que le permite reinstalar Oracle si es necesario.

28 noviembre 2020

Copias de seguridad gestionadas por el usuario en Oracle

 

Empezaremos esta entrada en el blog, con la ortodoxia de una definición canónica de copia de seguridad (backup).

Definición: La copia de seguridad es una copia real y coherente de los datos de la base de datos que podría usarse para reconstruir los datos después de un incidente.

Hay dos tipos de respaldo
  • Copia de seguridad física
  • Copia de seguridad lógica


Copia de seguridad física (Physical Backup)

Copia de todos los archivos de datos físicos necesarios para realizar la restauración y recuperación de la base de datos,
Este tipo de copia de seguridad incluye una copia de los archivos siguientes
  • Archivos de información
  • Controlar archivos
  • Archivos de parámetros
  • Archivos de registro archivados
Las diferentes opciones para realizar copias de seguridad físicas son
  • Técnicas gestionadas por el usuario
  • RMAN (Recovery Manager)

Copia de seguridad lógica (Logical Backup)

Oracle utiliza la bomba de datos de Oracle para permitirnos generar una copia de seguridad lógica que se puede utilizar para migrar datos, incluso hacer una recuperación parcial o total de la base de datos.
  • exp / expdp
  • imp / impdp

Diferencia entre restauración y recuperación

Restaurar: acto que implica la restauración de todos los archivos que serán necesarios para recuperar su base de datos a un estado consistente. por ejemplo, copiando todos los archivos de respaldo desde una ubicación de respaldo como TAPE o DISK

Recuperar: es un proceso para aplicar todos los registradores de transacciones en el registro de archivo, avanzando su base de datos hasta un punto en el tiempo.

Copias de seguridad gestionadas por el usuario

Backpup en Frio

Esta es la única forma posible para que el DBA realice una copia de seguridad coherente de la base de datos independientemente del modo de la base de datos (archivelog o noarchivelog). A continuación se explican los pasos:
  • Si la base de datos se está ejecutando, bájela completamente en un modo consistente (usando el apagado (solo NORMAL / INMEDIATO / TRANSACCIONAL). Esto asegurará que el encabezado de todos los archivos de la base de datos se actualice al mismo SCN
  • Copia de seguridad de todos los archivos de datos, archivos de control, archivos de parámetros mediante el comando de copia del sistema operativo
  • Iniciar la base de datos
  • Archive todos los registros de rehacer no archivados utilizando el siguiente comando y cópielos en la ubicación de la copia de seguridad.
alter tablespace SIGE_TBS offline normal;

Copia de seguridad de datos sin conexión (Offline)

Suponga que desea realizar una copia de seguridad sin conexión de uno o más espacios de tabla, el método de copia de seguridad sin conexión le ayudará a lograr lo mismo, tenga en cuenta que el espacio de tabla SYSTEM y el espacio de tabla UNDO con deshacer activo no se pueden desconectar.
suponga que el espacio de tabla es SIGE_TBS:

  • Identifique todos los archivos de datos asociados con el espacio de tabla mediante la vista dba_data_files

select tablespace_name,file_name from dba-data_files from dba_data_files where tablespace_name='SIGE_TBS';

  • Ponga el espacio de tabla fuera de línea usando la prioridad normal (no use temporal e inmediato, requerirá recuperación en el momento de poner el espacio de tabla en línea)

alter tablespace SIGE_TBS offline normal;

  • Haga una copia de seguridad de todos los archivos de datos relacionados con el espacio de tabla mediante el comando de copia del sistema operativo.
  • Ponga el tablespace en línea.

alter tablespace SIGE_TBS online;

Archive todos los registros de rehacer no archivados y copie el registro archivado en la ubicación de la copia de seguridad.

alter system archive log current;

Backups en caliente

Esto se ha introducido en la versión 6 de Oracle, pero inicialmente estaba vinculado solo al espacio de tabla, a partir de la versión 10 también incluían toda la base de datos. Esto nos permite realizar copias de seguridad en caliente de la base de datos o el espacio de tabla sin necesidad de cerrar la base de datos.
Al realizar una copia de seguridad en caliente, Oracle deja de registrar puntos de control en todos los archivos de datos asociados.
A continuación se muestran dos cosas que suceden internamente mientras la base de datos se pone en modo BEGIN BACKUP:

  • Se establece una bandera de respaldo activo en el encabezado del archivo de datos
  • Se produce un punto de control, parpadeo de todos los bloques sucios de la memoria al disco, sincronizando todos los encabezados de los archivos de datos al mismo SCN y congelando los encabezados para lograr coherencia, protección y capacidad de recuperación.
Se pueden realizar copias de seguridad en caliente en toda la base de datos, el espacio de tabla o incluso a nivel de contenedor, esto requiere un proceso de recuperación después de que se restaure la copia de seguridad, por lo que siempre realice una copia de seguridad de todos los archivos de registro archivados necesarios.

Copia de seguridad en caliente de toda la base de datos
Para realizar este tipo de copia de seguridad, debemos poner nuestra base de datos en modo de copia de seguridad usando 'alter database begin backup;'
Este es el tipo más común de copia de seguridad administrada por el usuario que utiliza DBA en todo el mundo.
A continuación se muestran los pasos:
  • Coloque la base de datos en modo de respaldo.
alter database begin backup;
  • Haga una copia de seguridad de todos los archivos de datos y archivos de parámetros utilizando el comando de copia del sistema operativo-
  • Saque la base de datos del modo de respaldo.
alter database end backup;
  • Archivar todos los registros no archivados y copiarlos como respaldo.
  • Crear copia del archivo de control como seguimiento.
alter system archivelog current;
  • modifique el archivo de control de copia de seguridad de la base de datos a '/control_file.trc;
alter system archive log current;


Copia de seguridad en caliente de la base de datos de contenedores
Como se introdujo en Oracle 12c, puede realizar una copia de seguridad administrada por el usuario de toda la base de datos del contenedor o del único PDB raíz o individual.

Base de datos de contenedores completa:

A continuación se muestran los pasos mencionados:
  • Inicie sesión en la base de datos utilizando un usuario que tenga privilegios de sysdba o sysbackup.
sqlplus /nolog

connect system@container1

  • Coloque su base de datos en modo de respaldo.ç
alter database begin backup;
  • Modificar la base de datos comenzar la copia de seguridad;
select file_name from dba_data_files;
  • Identifique todas las bases de datos relacionadas con la base de datos del contenedor usando el siguiente comando.
select file_name from dba_data_files;
  • Copie toda la base de datos usando el comando de copia del sistema operativo.
  • Saque la base de datos del modo de respaldo.
alter database end backup;
  • Archivar todos los registros no archivados y copiarlos como respaldo.
alter system archivelog current;
  • Crear copia del archivo de control como seguimiento.
alter database backup controlfile to '/control_file.trc;

ROOT solo o PDB individual

A continuación se muestran los sencillos pasos para completar la copia de seguridad en caliente de root contenedor o base de datos conectable individual.

  • Conectar a la raíz o base de datos conectable individuo con usuario tenga privilegios SYSDBA o sysbackup.
sqlplus /nolog
connect system

alter session set container= tech_pdb;

  • Identifique todos los archivos de datos que forman parte de PDB usando la vista dba_data_files.

select file_name from dba_data_files;
  • Coloque la base de datos conectable en modo de respaldo.
alter pluggable database tech_pdb begin backup;
  • Copie todos los archivos de datos usando el comando de copia del SO.
  • Saque la PDB del modo de inicio de copia de seguridad.
alter pluggable database tech_pbd end backup;
  • Archivar todos los registros no archivados y copiarlos como respaldo
alter system archivelog current;
  • Crear una copia del archivo de control como seguimiento

alter database backup controlfile to '/control_file.trc;

Controlar la copia de seguridad de archivos
Hay dos formas de recuperar el control
  • Copia de seguridad binaria
  • Copia de seguridad de archivos de texto
Tener una copia de seguridad válida del archivo de control de una base de datos es crucial para la recuperación exitosa de la base de datos.

Copia de seguridad binaria
Se puede realizar una copia binaria del archivo de control mediante una declaración SQL. Esta copia contiene información adicional, como el historial de registro de rehacer archivado, rango fuera de línea para espacios de tabla de solo lectura y fuera de línea, entradas de archivos temporales y conjuntos de respaldo de RMAN y copias de datos.
comando para tomar una copia de seguridad binaria.

alter database backup controlfile to '';

Copia de seguridad de archivos de texto
Este tipo de copia de seguridad contiene una instrucción create controlfile basada en el archivo de control actual en uso. Este tipo de copia de seguridad se puede realizar mientras la base de datos está en modo de montaje o abierto. Esto se genera como archivo de seguimiento y se puede modificar fácilmente.
A continuación se muestran algunas declaraciones utilizadas para crear una copia de seguridad basada en texto del archivo de control.

1. alter database backup controlfile to trace;
2. alter database backup controlfile to trace resetlogs;
3. alter database backup controlfile to trace noresetlogs;
4. alter database backup controlfile to trace as '';
5. alter database backup controlfile to trace as '' reuse;
6. alter database backup controlfile to trace as '' resetlogs;
7. alter database backup controlfile to trace as '' noresetlogs;

24 noviembre 2020

Oracle 10g: Diferencia entre usar srvctl y usar sqlplus para iniciar / detener una o más instancias de base de datos Oracle

 


El desafío

Hemos tenido algunos casos en los que parecía que iniciar bases de datos RAC 10g a través de sqlplus causaba problemas de rendimiento (alta carga en el servidor de la base de datos). Reiniciar los nodos usando srvctl pareció resolver el problema de rendimiento. Nos surgió una pregunta pregunta es

 "¿Hay alguna diferencia entre usar srvctl y usar sqlplus para iniciar o detener uno o más nodos de base de datos"?

La realidad

Existen algunas diferencias entre el uso de las utilidades SQLPLUS y SRVCTL.
  • La parte común es que SRVCTL utiliza SQLPLUS para iniciar / detener las instancias.
  • La herramienta SRVCTL gestiona la información de configuración que utilizan otras herramientas de Oracle. Por ejemplo, Enterprise Manager usa la información de configuración que SRVCTL genera para descubrir y monitorear nodos en su clúster.
  • Tener en cuenta que el comando "srvctl start database / instance" no iniciará todos los servicios habilitados y no en ejecución que tengan las instancias enumeradas como instancias preferidas o disponibles en 10g.
  • Ambos deberían resultar en el inicio de la instancia, pero Oracle siempre recomienda el uso de SRVCTL debido al hecho de que SRVCTL hace más, es decir, SRVCTL realizará un análisis de dependencia e informará sobre problemas relacionados con el clúster si existen, de una mejor manera que SQLPLUS, que puede decir simplemente que la instancia no se está iniciando. El comando SRVCTL intentará iniciar recursos dependientes (como vip / ons / listeners) en caso de que no se estén ejecutando.
  • La utilidad SRVCTL siempre realiza algún tipo de pre-inicio de las instancias, como actualizar la información de OCR (Oracle cluster registry) en lugar de esperar a que el script de verificación del recurso de instancia detecte el inicio de esta instancia y actualice el OCR.
  • Con SRVCTL, la configuración del sistema operativo del usuario raíz se utiliza ya que se hereda de crsd.bin que iniciará las instancias como usuario de Oracle. Con SQLPLUS, se utiliza la configuración del sistema operativo del usuario de Oracle. Tener diferentes configuraciones de usuario para root u oracle hará que el rendimiento pueda ser diferente (sga fragmentado o no, otra configuración de proyecto "solaris", ...)

11 septiembre 2020

Características claves de Oracle Autonomous Database.

Hoy traigo las principales ideas que han comentado los miembros de Oracle Corp. En una videoconferencia que han tenido la amabilidad de invitarme. Dentro de estas características claves, en la base de datos autónoma de Oracle 19C tenemos:

Autoconducción (Self Driving)
  • Capacidades y beneficios de las bases de datos Autónomas
  • Manejo de Atributos
  • Ajuste automático de sentencias
  • Escalado Automático
  • Indexación automatizada
  • Gestión Automatizada

Auto asegurado (Self Securing)
  • Autoreparación del Hardware
  • Autoreparación del Software
  • Resolución automática de incidencias mediante Machine Learning (ML)
  • Arquitectura de Máxima Disponibilidad (MAA)

Auto Reparado (Self reparing)
  • Seguridad en la base de datos autónoma
  • Cifrado por defecto
  • Auto-parcheado
  • Protección frente a ataques externos
  • Separación de roles
  • Auditoria

Autoconducción (Self Driving)


Capacidades y beneficios de las bases de datos Autónomas

Manejo de Atributos




Ajuste automático de sentencias

Escalado Automático

Indexación automatizada

Gestión Automatizada




Auto asegurado (Self Securing)

Autoreparación del Hardware


Autoreparación del Software


Resolución automática de incidencias mediante Machine Learning (ML)


Arquitectura de Máxima Disponibilidad (MAA)



Auto Reparado (Self reparing)


Seguridad en la base de datos autónoma


Cifrado por defecto


Auto-parcheado


Protección frente a ataques externos


Separación de roles


Auditoria





Estos han sido los factores claves de la Base de datos Autónoma de Oracle.






















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