Newsletter Marzo 2013 Contenido Página: 1 Qué Obtengo al Migrar a Oracle Database 11gR2? 5 Tablas Externas 8 Topologías de Oracle Coherence - Parte 3 Por Ing. Alejandro Lau alau@datum.com.gt Qué Obtengo al Migrar a Oracle Database 11gR2? Han pasado algunos años desde que se lanzó Oracle Database 11gR2 y estamos a las puertas del lanzamiento de Oracle Database 12c. Sin embargo, en nuestro medio hay una mayoría de instalaciones de Oracle Database con una versión previa a la 11gR2. Esto es hasta cierto punto justificable, por la planificación que se requiere para migrar a una nueva versión, implicando actualización de hardware, certificación o actualización de aplicaciones, recurso humano, ventanas de mantenimiento para realizar el cambio, etc. Editores Generales Sin embargo, el no actualizarse tiene sus implicaciones. Principalmente, se 5a. Ave. 5-55 Zona14,Edificio Euro Plaza Torre II, Nivel 12 dejan de aprovechar características nuevas o mejoradas, que permiten en Teléfono: Deiby (502)2364-5300Fax: Mauricio Gómez (502)2364-5311 general mejor desempeño, mejor administración, mejor uso del espacio, Email.info@datum.com.gt Alejandro Lau mejores herramientas de diagnóstico y afinación, seguridad mejorada, Pagina 1/10 etc. Debbie Morán También, el soporte a fallas y bugs se limita por la disponibilidad de parches y documentación técnica. Autores Contribuyentes Alejandro Lau Sergio Alonzo Deiby Gómez Se presentan algunas características de Oracle Grid Infrastructure 11gR2, Oracle RAC 11gR2 y Oracle Database 11gR2 que usted puede aprovechar en su ambiente: 1. Grid Infrastructure: es la evolución del Clusterware y ofrece un manejo mejorado de la alta disponibilidad de recursos. 2. Con 11gR2, ASM pasa a formar parte del Grid Infrastructure. También, OCR y voting disk residen ahora dentro de ASM, permitiendo una mayor protección de estos archivos. Página 1
3. ASM mejorado a. El utilitario ASMCMD tiene nuevos comandos para administrar diskgroups, eliminando la necesidad de conectarse a SQL*Plus o Enterprise Manager para muchas tareas. b. Hay mejoras en rendimiento y escalabilidad: por ejemplo, si hay un diskgroup con redundancia, se puede indicar un disco como preferido para lecturas. c. ASM Cluster File System (ACFS): es el sucesor del Oracle Cluster File System y permite tener file systems para cualquier tipo de archivos (Oracle y no-oracle). d. Ahora se pueden renombrar diskgroups en ASM. e. A nivel de ASM y control files, Oracle aprovecha el tamaño de sector 4K en discos de nueva tecnología (el default en discos anteriores es de 512 bytes). Esto beneficia el desempeño, principalmente para los online logs. 4. Mejoras en uso de espacio a. Compresión OLTP para tablas: permite aplicar un algoritmo nuevo de compresión en ambientes OLTP, al momento de insertar los datos. En cambio, la compresión básica ocurre hasta el momento de llenarse un bloque de datos. b. Creación de segmento diferida: pospone la creación del primer extent para objetos nuevos, hasta insertar el primer registro. Esto reduce el tiempo de creación de esquemas grandes y evita que las tablas que nunca se utilizan ocupen espacio. 5. Mejoras en particionamiento a. Particionamiento por intervalo: es una extensión del particionamiento por rango. Permite la creación automática de particiones cuando los datos insertados no caen en ninguna partición existente. b. Particionamiento por sistema: permite que la aplicación decida en qué partición se almacenan los datos. c. Particionamiento basado en columna virtual: se crea sobre una columna que no almacena datos, sino que es derivada de un cálculo o una función aplicada a otras columnas. d. Particionamiento por referencia: se deriva del particionamiento existente en la tabla maestra (referenciada por llave foránea). e. Particionamiento compuesto: además del particionamiento rango-lista y rangohash en la versión 10gR2, ahora se puede particionar por rango-rango, lista-lista, lista-hash, lista-rango, intervalo-rango, intervalo-lista, intervalo-hash. Página 2
6. Mejoras en análisis y manejo de rendimiento a. Database Replay (componente de Oracle Real Application Testing o RAT): permite capturar carga real de un ambiente de producción y replicar esta carga en otro ambiente. Ideal para evaluar cambios de hardware, versión de Oracle, parámetros o configuración de sistema operativo. b. SQL Performance Analyzer: se puede integrar muy bien con RAT para evaluar los cambios en desempeño derivados de un cambio en el ambiente de la base de datos. Además, se puede utilizar independientemente de RAT. c. SQL Plan Management y Automatic SQL Tuning: mejora sobre los SQL profiles que controlan el plan de ejecución de SQL. Actualiza automáticamente los SQL plan baselines e implementa solo cambios con mejora de desempeño confirmada. d. I/O Calibration: una herramienta para obtener mucha información del desempeño de los discos. e. Resource Manager: se ha extendido la funcionalidad del resource manager para distribuir mejor el uso de CPU entre aplicaciones en una base de datos, pero también entre bases de datos en el mismo servidor. 7. Seguridad Mejorada a. Las claves pueden ser sensibles a mayúsculas. Existe un algoritmo de hash mejorado para cifrar y también un valor aleatorio (llamado salt) para garantizar que dos valores distintos no generen el mismo valor de hash. b. La auditoría por defecto incluye el uso de algunos privilegios importantes para la seguridad. c. El cifrado Transparent Data Encryption ha sido mejorado. 8. Automatic Parallelism: es una característica mejorada del paralelismo manual disponible en Oracle 10gR2. También, se puede indicar el grado de paralelismo a nivel de instrucción SQL. Esto también se refleja en el explain plan mejorado. 9. Monitoreo integrado y mejorado: con mejoras al Automatic Workload Repository y Automatic Diagnostic Database Monitoring se integra mejor el monitoreo de las bases de datos RAC. Con 10gR2 se requieren varios análisis por separado a nivel de instancia. 10. Mayor funcionalidad con RMAN a. Por ejemplo, en un ambiente con suficiente espacio en disco, se puede tener un respaldo tipo COPY y luego realizar solamente respaldos incrementales. Esto permite actualizar el respaldo tipo COPY con los respaldos incrementales (incrementally updated backups). Página 3
b. Se pueden generar archival backups, los cuales no expiran ni se borran con las políticas de depuración automáticas. c. El comando SET NEWNAME se ha extendido para renombrar todos los datafiles de un tablespace o de la base de datos, al momento de hacer un RESTORE o DUPLICATE. 11. Flashback Data Archive: es el versión mejorada de flashback table. Se crea uno o más tablespaces para flashback y se agregan solamente las tablas a mantener por un período más prolongado que el flashback retention. Esto permite un mejor manejo del espacio en disco. 12. El manejo de memoria SGA y PGA se puede integar en una sola área con el parámetro MEMORY_TARGET. Esto hace uso más eficiente de la memoria disponible. 13. Oracle Restart: es el ambiente de alta disponibilidad para bases de datos stand-alone (no RAC). En 10gR2 no existe nada similar. Tip técnico del día: Oracle Database 12c New Features: Las bases de datos portables son una realidad en Oracle Database 12c. La característica Pluggable Database permitirá contener una colección de esquemas u objetos dentro de una base de datos portable. Pluggable Databases es abreviado como PDB. Una Container Database (CDB) es una base de datos que incluye una o más PDBs. Es posible desenchufar una PDB de un CDB y enchufarla a una CDB distinta. En Oracle Database 12c existirán nuevos Privilegios Administrativos: para las tareas de respaldo y recuperación con RMAN existe el rol BACKUPDBA; para las tareas de Data Guard existe el rol DGDBA; para las tareas de cifrado de datos existe el rol KMDBA. Por supuesto, aún siguen existiendo los roles DBA y ASMDBA Por Ing. Deiby Gómez dgomez@datum.com.gt Página 4
Tablas Externas Por Ing. Sergio Alonzo salonzo@datum.com.gt Hay ocasiones en las cuales es necesaria la utilización de archivos de texto como fuente de información hacia tablas, sin tener que cargar físicamente los datos, ya que dicha fuente puede cambiar de forma frecuente. Para este fin se pueden utilizar las llamadas tablas externas de Oracle. Ventajas Con una sintaxis sencilla de creación de tablas se puede tener dicha información dentro de la base de datos. La información simplemente debe estar delimitada por campos, según el signo de puntuación, (coma). Se puede cargar un buen número de datos, varios miles de registros. Es una alternativa a Excel y otras herramientas, en las cuales existe limitación de espacio. Desventajas No es factible crear índices, ni realizar instrucciones DML (INSERT, UPDATE, DELETE). Procedimiento Para tener una tabla externa, son necesarias tres cosas: 1. Un directorio en la base de datos donde se alojará el archivo físico. 2. El archivo físico. 3. La sintaxis de creación de la tabla externa. 1. Un directorio en la base de datos que es donde se alojara el archivo físico: CREATE DIRECTORY DATOS AS '/U01/DATOS/FUENTES'; GRANT READ, WRITE ON DIRECTORY DATOS TO <rol o usuario>; 2. El archivo físico: Página 5
3. La sintaxis de creación de la tabla externa: create table demografia ( anio varchar2(4), cod_pais number(7), pais varchar2(30), cod_depto number(7), departamento varchar2(30), cod_municipio number(7), municipio varchar2(30), cod_divpolitica number(7), divisionpolitica varchar2(30), edad number(2,0), masculino number(7,0), femenino number(7,0), total number(7,0) ) organization external ( type oracle_loader default directory datos access parameters ( records delimited by newline fields terminated by ',' missing field values are null ) location ('demografia.csv') ) reject limit unlimited; Definición de tabla y de campos Declaración de la tabla externa Directorio donde se buscará el archivo físico, ya existente Delimitación de nuevo registro Delimitación de nuevo campo por medio de comas Acción cuando hay valores nulos Archivo fuente basado en Excel, donde se encuentra la información a ser leída Limitación de archivo Página 6
Se crea la tabla: Con una simple instrucción SELECT se obtienen los datos: Conclusión: Oracle tiene la versatilidad de manejar tablas tipo externas, que permite al usuario leer información desde archivos físicos (sin ocupar espacio en la base de datos) como si fueran tablas, obteniendo muchas ventajas que se tienen con las tablas internas. Página 7
Por Ing. Deiby Gómez dgomez@datum.com.gt Topologías de Oracle Coherence - Parte 3 En la parte 2 de este tema se conoció la topología de replicación, la cual es recomendable cuando nuestro ambiente realiza un gran porcentaje de lecturas y pocas escrituras. También se definió que la alta disponibilidad es tan buena como nodos existan en el cluster. En esta parte del articulo se verá la topología distribuida, en qué ambientes se debería implementar, sus ventajas y desventajas. Topología Distribuida La topología distribuida de Oracle Coherence almacena parte de los objetos en cada nodo del cluster, es decir, distribuye toda la información entre los nodos de forma que cada nodo posea 1/n de la información, donde n es el número de nodos en el cluster. Como cada nodo posee sólo 1/n de la información, se puede afirmar que a diferencia de la topología de replicación, se incurre en un costo adicional por lecturas, ya que la información no necesariamente estará local sino que se deberá leer desde otro nodo. Entonces se puede afirmar que (N-1)/N de las operaciones irán a un nodo distinto a leer la información. El tráfico en la red aumenta por la transferencia de datos entre nodos. Sin embargo, para ubicar el nodo que posee determinada información se utiliza una clave hash, lo cual es muy rápido, casi una comunicación de punto a punto. Cada nodo del cluster conoce todas las claves de hash para todos los objetos. En la siguiente imagen se aprecia que la lectura del objeto A se realiza de forma local, logrando una latencia nula (característica de la topología de replicación), mientras que el objeto B se lee desde el nodo 2, el objeto C desde el nodo 3 y el objeto D desde el nodo 4, creando en cada solicitud de lectura un aumento de uso de red. Página 8
Hay que mencionar que los objetos en cada nodo de una topología distribuida se mantienen serializados, lo que implica un costo adicional en cada lectura: el costo de deserialización. En esta topología distribuida, a diferencia de la topología de replicación, los objetos siempre se mantienen serializados. Esto se hace para lograr una transferencia más rápida de objetos entre nodos, cuando se requiera. De una topología distribuida con N nodos, en cuanto a lecturas, podemos concluir: (N-1)/N de las operaciones de lecturas se harán desde un nodo remoto. Una operación de lectura lleva implícito el costo de deserialización. 1/N de las lecturas serán realizadas de forma local, con una latencia nula. La identificación del nodo que posee un determinado objeto se realiza por una clave de hash. Las operaciones de escritura mejoran en la topología distribuida, en comparación con la topología de replicación, ya que se realizan únicamente en el nodo que posee el objeto. Sin embargo, si cada nodo posee únicamente 1/N de la información, la disponibilidad es muy mala. Si un nodo falla, toda la información que almacena se verá perdida. Coherence introdujo el concepto de respaldo en ésta topología para remediar este problema. Un nodo puede tener al menos un respaldo de toda la información que posee y alojarlo en otro nodo del cluster. Cuando este nodo tiene una falla, Coherence detecta en qué nodo se encuentra su respectivo respaldo, lo restaura y la información está disponible nuevamente. Este proceso de recuperación es totalmente transparente al usuario. Un nodo puede tener M respaldos y cada escritura se declara finalizada hasta que se haya completado en cada respaldo que posea el nodo. Sin embargo, hay que tomar en cuenta que para cada escritura realizada a un nodo se harán (Q -1) escrituras adicionales, donde Q es el número de respaldos que posee ese nodo. Recuerde: La Disponibilidad es inversamente proporcional al rendimiento de las operaciones de escritura en la topología distribuida. En la práctica se maneja sólo un respaldo para cada nodo, para mejorar la Disponibilidad según la recomendación de Oracle. En la siguiente imagen se observa que cada nodo posee un solo respaldo. Por cada escritura de un objeto, se realizará una escritura adicional. El objeto A se escribe de forma local al nodo 1 y su respaldo se escribe al nodo 4. El objeto C se escribe al nodo 3 y su respaldo se escribe al nodo 1. Página 9
En la siguiente imagen se aprecia que el nodo 2 sufre una falla. El nodo 2 almacena el objeto B. Cuando Coherence reconoce la falla, automáticamente localiza el nodo con su respaldo (nodo 4) y lo restaura, verifica qué respaldos eran alojados en el nodo 2 (respaldo del objeto D) y crea un nuevo respaldo en otro nodo (nodo 3). En esta topología se pueden crear nodos vacíos, es decir, que no almacenen objetos. Estos servirán como un punto de acceso a los objetos almacenados en los demás nodos. A esta característica se le llama Local Storage. Página 10
En la siguiente imagen se puede ver que los nodos 1 y 2 no poseen objetos, pues tienen la característica LocalStorage=false. Los nodos 3 y 4 almacenan toda la información. Conclusiones (N-1)/N de las operaciones de lectura se realizará obteniendo la información desde un nodo remoto, donde N es el número de nodos. 1/N de las operaciones de lectura serán realizadas de forma local, obteniendo una latencia nula. Una lectura lleva implícito el costo de deserialización. El rendimiento de escrituras se ve mejorado, pues solo se realiza en el nodo que posee el objeto y en su respectivo nodo de respaldo, si existe. La Disponibilidad es inversamente proporcional al rendimiento de las escrituras. Se pueden crear nodos vacíos. La localización del nodo para leer o escribir un objeto se hace por claves de hash. La recuperación ante fallas es transparente al usuario. En la continuación de este artículo, Topologías de Oracle Coherence - Parte 4 se tratará la última topología básica, Near Cache. Veremos que es un híbrido entre las topologías vistas anteriormente. Página 11