Me es util Multitenant?

Ultimamente he estado en varios clientes que me preguntan sobre la funcionalidad de Multitenant de 12c. Las dudas mas comunes son en que les puede resultar interesante. Qué más puedo decir aparte de lo que hay escrito en la documentacion? Consolidacion, mejor uso de recursos, facilidad de movimiento de datos y sobre todo el tema de parcheo.

 

En este blog vamos a hablar lo de facilidad de movimiento de datos y la consolidacion porque, muchos clientes cuando ven la *facilidad de mover datos* lo que se les ocurre primero es el tema de refresco de entornos. Es cierto que clonar, mover los PDB no es complicado pero el primer paso es poner las bases de datos de origen, sea NON-CDB o PDB, en READ-ONLY…. Como? Como vamos a poner en modo lectura las bases de datos de produccion? Porque en muchas ocasiones los refrescos de entornos vienen de entornos de produccion. Uno puede argumentar que se puede duplicar el PDB de origen a una instancia auxiliar pero que diferencia hay entre eso y un duplicate de RMAN de toda la vida?

 

En cuanto a la consolidacion estuve hablando con unos clientes que tienen miles de bases de datos y parece que les encantaria consolidar unos cuantos cientos en un CDB con los cientos de PDB (12.1 soporta 254 PDB en un CDB, en 12.2 sera de 4096), suena muy bien porque parcheas una parcheas los cientos que has consolidado, reduccion de OPEX a tope. Pero me gustaria ver la organizacion y coordinacion en cuanto hay que hacer una parada con cientos de aplicaciones que dependen de esa base de datos.

 

Yo personalmente no considero muy util Multitenant excepto clientes con una cantidad ingente de bases de datos o cuando se pueda clonar ONLINE los PDBs (quizas en 12.2 que esta apunto de caer?). Sobre todo porque es una opcion que requiere licencia aparte, si no fuese de pago seria mucho mas atractivo adoptar esta funcionalidad porque tal como esta ahora la reduccion de coste que se puede conseguir de hardware y OPEX se va a ir por la parte de licencias.

6 años despues, Oracle Certified Master 12c

Después de 6 años he vuelto a realizar un nuevo examen de OCM, el Upgrade a OCM 12c. Esta vez el examen lo he realizado en Utrecht, Holanda, hace una semana con el formador/examinador Harald Van Breederode, quien creo que forma parte del equipo que desarrolla el curriculum de OCM.

 

El examen ha sido duro, no vamos a fingir que fue algo sencillo, creo que es el más duro de los 3 examenes de OCM que he realizado hasta la fecha. Las tareas en si no es que fuesen muy complejas pero el tiempo era muy justito, no se podía permitir parar ni un segundo. También achaco que no he realizado la preparación como las otras veces, ahora con niños en casa es bastante más complicado dedicarse horas para la preparación, calculo que habré dedicado entre las teorias (lectura) y las practicas unos 15, 20 días. Otra de las pegas que he encontrado es que no conté que había que usar el teclado en Holandes, quizás tenía que haber examinado en Londres que me resultaría mas familiar…..

 

Después de una semana, ayer concretamente, me llegó el mail de felicitación de Oracle University por la aprobación del examen. Esta vez como ha costado un poco más sabe mas a gloria. Y ahora a esperar para la proxima, otros 6 años más?

ACFS y ASM Preferred Read

Desde la 12c Oracle esta potenciando de manera considerabe el ACFS. Desde la 12.1 es posible ya alojar los ficheros de la base de datos sobre este Filesystem que corre por encima de ASM. Si no me equivoco ODA (Oracle Database Apliance) por defecto crea la base de datos sobre ACFS y Exadata tabmbien lo soporta.

Desde principios del año he estado ayudando a un cliente a migrar unos RAC que tiene de 11.2.0.4 a 12.1.0.2. Le comenté al cliente acerca de ACFS que sería buena opción para ellos por el mero hecho de que prefieren ver los ficheros con los comandos de sistema operativo, es buena opcion porque el origen era Linux y ACFS en Linux funciona realmente bien. En AIX no lo tengo muy claro porque he tenido varis episodios de problemas de rendimiento de ACFS sobre AIX y despues de parches y parches siguen sin funcionar como uno desee.

Pues bien, todos los RAC de este cliente utiliza mirroring de ASM por su definicion de arquitectura, todos los datos se escriben a dos cabinas de discos para tener una redundancia fisica. Estaban utilizando extensivamente los Preferred Reads de ASM en 11.2 y teniamos dudas de que si esta funcionalidad funciona con ACFS, teniamos dudas porque es un Filesystem Posix y no teniamos muy claro si las lecturas se podia redireccionar como queremos.

Hice unas pruebas en una maqueta y comprobé que si puede usar Preferred Read el ACFS.

 

Diskgroup ACFSDATA02 con dos Failgroups, X1_ACFSDATA02 y X2_ACFSDATA02. Las pruebas se han lanzado desde el nodo 2 y este es el resultado:

 

Antes de generar lecturas:

select inst_id, GROUP_NUMBER,DISK_NUMBER,FAILGROUP,NAME,READS,WRITES from gv$asm_disk where GROUP_NUMBER = 6 order by inst_id, FAILGROUP, name

   INST_ID GROUP_NUMBER DISK_NUMBER FAILGROUP     NAME                    READS     WRITES
---------- ------------ ----------- ------------- ------------------ ---------- ----------
         1            6           0 X1_ACFSDATA02 X1_ACFSDATA02_0001         17          1
         1            6           1 X2_ACFSDATA02 X2_ACFSDATA02_0001          6          1
         2            6           0 X1_ACFSDATA02 X1_ACFSDATA02_0001         46       5640
         2            6           1 X2_ACFSDATA02 X2_ACFSDATA02_0001       2422       5640

Despues de generar las lecturas:

select inst_id, GROUP_NUMBER,DISK_NUMBER,FAILGROUP,NAME,READS,WRITES from gv$asm_disk where GROUP_NUMBER = 6 order by inst_id, FAILGROUP, name

   INST_ID GROUP_NUMBER DISK_NUMBER FAILGROUP     NAME                    READS     WRITES
---------- ------------ ----------- ------------- ------------------ ---------- ----------
         1            6           0 X1_ACFSDATA02 X1_ACFSDATA02_0001         17          1
         1            6           1 X2_ACFSDATA02 X2_ACFSDATA02_0001          6          1
         2            6           0 X1_ACFSDATA02 X1_ACFSDATA02_0001         46       5640
         2            6           1 X2_ACFSDATA02 X2_ACFSDATA02_0001       3252       5941

Podemos observar que las lecturas se ha reliazado integramente sobre el Failgroup X2_ACFSDATA02_0001, pasando de 2422 lecturas a 3252.

 

 

 

Arrancando E4 en Barcelona

En unas horas empieza el evento de E4 en Barcelona organizado por Accenture Enkitec. Creo que va a ser un evento que va a valer la pena, veremos experiencias reales aplicadas con las distintas generaciones de Exadata y pinceladas de Big Data. Los que van a contar son la gente que tiene experiencia sobre el campo, no son charlas de Pre Sales!

Y es una buena ocasion para reencontrar con viejos conocidos y ex-compañeros!

 

TNS-1189 Enterprise Manager en Cold Failover Cluster

Hace un par de semanas desplegue Oracle Enterprise Manager 12c Releae 5 (AKA Cloud Control) en un cliente. Este cliente tiene 4 servidores de base de datos de los cuales cada par forma un Cluster Activo Pasivo (Cold Failover). Inicialmente deje la instalacion hecha y los agentes desplegados en los 4 nodos y esta semana he empezado a configurar las reglas de notificaciones, traps de snmp, metricas adaptativas, metricas customizadas etc. Basicamente relizando una configuracion un poco mas avanzada que el out-of-box.

Los dias siguientes me empezó a llegar unos mails de Enterprise Manager quejando de TNS-1189 The listener could not authenticate the user en los dos Clusters. Revisando los logs de listener se ve que algún proceso del nodo PASIVO ejecuta varios comandos tipo

lsnrctl version

lsnrctl show oracle_home

lsnrctl status

lsnrctl show log_directory

lsnrctl show trc_directory

Comparando el timestamp de estos eventos con el timestamp de Auto Discovery de Enterprise Manager se ve que es el agente de Enterprise Manager que ejecuta dichos comandos durante el proceso de Auto Discovery.

Y la razón de TNS-1189 es porque el listener.ora (que es local en cada nodo) de todos los nodos de Cluster apuntan a la IP Virtual, y cualquier comando de lsnrctl se ejecuta con la IP Virtual, desde el nodo pasivo es un problema porque esta intentando hacer un lsnrctl contra un nodo remoto y sale este error:

 

lsnrctl status

LSNRCTL for IBM/AIX RISC System/6000: Version 12.1.0.2.0 – Production on 19-MAR-2016 13:31:00

Copyright (c) 1991, 2014, Oracle.  All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=smcc1-vrt)(PORT=1981)))
TNS-01189: The listener could not authenticate the user

 

La solucion que se ha optado es mover el listener.ora a los discos compartidos y los listener.ora de $ORACLE_HOME/network/admin pasan a ser link simbolico que apunta al listener.ora del disco compartido.

 

 

 

 

AWR y Multitenant (a nivel de PDB)

Realizo bastantes “Performance Assesments” y desde hace unos meses estoy realizando para un cliente que usa Multitenant de 12c. Este cliente esta en el extranjero (en España de momento no he estado en clientes que use Multitenant) tiene 3 PDB desplegados en un CDB en arquitectura RAC. Consolidó 3 bases de datos en 3 PDB.

En todos los analisis de rendimiento que realizo uso extensivamente estadisticas de AWR como KPI de Bases de Datos para determinar el uso, el tipo de workload, la carga (CPU, I/O, Interconnect) etc. En arquitectura Multitenant con varios PDB esto es una tarea imposible ya que los AWR no bajan hasta la granularidad de los PDB excepto “Service Statistics”, “Service Wait Class Stats” y “SQL Statistics”, insuficientes en mi opinion.

Creo que el AWR esta preparado para bajar al nivel de PDB porque las tablas bases de AWR tiene campos de CON_ID y CON_DBID sin embargo en 12.1.0.2 solamente se esta rellenando datos del CDB. Hay otro indicador que es probable que en una version proxima (12.2?) se pueda bajar las metricas a nivel de PDB por estas vistas:

V$CON_SYS_TIME_MODEL
V$CON_SYSSTAT
V$CON_SYSTEM_EVENT
V$CON_SYSTEM_WAIT_CLASS

Existen en 12.1.0.2 y tienen datos desglosados desde el CDB hasta los PDB pero por alguna razon que desconozco no se esta llevando a AWR.

De momento he tenido que hacer unos procesos customizados contra las 4 vistas de V$CON_* para sacar los KPI de los PDB.

En mi opinion es un “Drawback” de utilizar Multitenant en 12cR1. No esta preparado para realizar en condiciones las tareas de Capacity Planning y Forecasting. Antes podia medir el uso de recurso de la base de datos pero una vez movido a un CDB que convive con mas PDB todo se vuelve mas complicado.

 

SQL Server 2016 on Linux

Microsoft acaba de anunciar el Preview de SQL Server 2016 para Linux. La idea parece que es para competir en los Cloud Publicos.

La verdad es que nunca se me habia pasado por la cabeza que Microsoft pueda desarrollar un software Enterprise para la plataforma de Linux. Esto muestra el empuje de Opensource, software tipo Hadoop, Openstack, Docker, Jenkins etc.