Newsletter – Mayo 2012 Recuperar espacio en tablas e índices con Segment Shrink Contenido Página: 1 Recuperar Espacio Por: Ing. Juan Luis Rodríguez [email protected] Segment Shrink 9 Nuevas Características Reports 11gr2 11 Configuración de valores copia de seguridad Grid Control Con el tiempo, frecuentes operaciones de INSERT, UPDATE y DELETE en registros de una tabla pueden dejar el espacio libre fragmentado. Para ello, Oracle puede realizar compactación de segmentos (segment shrink) en la tabla o índice para reducir esta fragmentación. Aplicar Shrink al segmento vuelve disponible el espacio libre en el segmento del tablespace con lo que se puede lograr una futura mejora en operaciones DML que se realicen sobre el segmento (tabla o índice). Segment shrink es muy parecido a la redefinición online de una tabla en la que el espacio es reclamado. Sin embargo, segment shrink puede ser realizado sin la 5a. Ave. 5-55 Zona14,Edificio Euro Plaza Torre II, Nivel 12 necesidad del espacio adicional que requiere la redefinición online de una tabla. Teléfono: (502)2364-5300Fax: (502)2364-5311 Para determinar cuáles segmentos serán beneficiados con el uso de segment Daniel Cacía [email protected] shrink, se puede consultar el Segment Advisor para realizar el análisis de tendencia Pagina 1/10 Gerber Bautista de crecimiento en los segmentos especificados. Editores Generales Debbie Moran Francisco Barrundia Autores Contribuyentes Entendiendo la funcionalidad de Segment Shrink Para recuperar espacio sin usar en un segmento, Segment Shrink realiza dos tareas diferentes: 1) Compactar los registros de datos, y 2) mover el high water mark (HWM). La siguiente figura muestra el segmento de una tabla antes y después de una operación de compactación: Juan Luis Rodríguez Segmento de tabla antes de aplicar Segment Shrink Ivan Garcia Francisco Barrundia 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 Email:[email protected] Página 1 Segmento de tabla después de aplicar Segment Shrink La primera fase del segment shrink es la compactación, la cual mueve los registros de datos hacia la izquierda hasta donde sea posible con la finalidad de maximizar el número de filas a obtener por bloque. Un full scan table lee todos los bloques hasta el HWM por lo que mover el HWM hacia zquierda, hasta donde sea posible, mejorará el desempeño del full scan table. La razón por la que Oracle divide en dos partes la operación segment shrink es que mover el HWM puede potencialmente bloquear las operaciones DML que el usuario final esté realizando, pero la sola operación de compactación no. Como resultado, se puede realizar compactación durante el día con un mínimo impacto en el tiempo de respuesta para el usuario que realiza DMLs. Existen otros beneficios al realizar la operación segment shrink. Cuando se compacta un índice, se requieren menos operaciones de I/O para obtener un ROWID en el índice. No todos los índices de tabla se pueden compactar. Se debe tomar en cuenta también que los índices que se compactan no necesitan ser reconstruidos después de una operación de compactación. Adicionalmente, al recolocar el HWM después de una operación de compactación, más espacio libre estará disponible en el tablespace para otros objetos. Los siguientes objetos son candidatos para aplicar segment shrink: Tablas. Indices normales e índices de tablas organizadas por índice. Tablas particionadas y sub-particionadas. Vistas materializadas y materialized view logs. Por otro lado, existen algunas restricciones para realizar operaciones de compactación. Primero, el tablespace que contiene los objetos a compactarse debe ser administrado con Automatic Segment Space Management (ASSM). Asimismo, existen algunos objetos que no pueden ser compactados: Tablas en cluster. Tablas con columnas de tipo LONG. Tablas con vistas materializadas con on-commit o basadas en ROWID. Tablas que contienen índices basados en funciones. Tablas organizadas por índice de tipo IOT (mapping tables). 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 2 Estas restricciones deberían tener un impacto mínimo en su ambiente. Por ejemplo, las columnas de tipo LONG deberían haber sido convertidas a columnas CLOB o BLOB desde hace tiempo. Automatizando con Segment Advisor El Segment Advisor de Oracle puede identificar segmentos candidatos a compactar y puede ser ejecutado manualmente o calendarizado como parte del Automatic Segment Advisor job. Sea la ejecución manual o automática, la primera fase del análisis usa estadísticas de crecimiento y datos de muestreo almacenados en el Automatic Workload Repository para determinar cuáles objetos necesitan análisis. Adicionalmente, el Automatic Segment Advisor se enfoca en tablespaces que han excedido un límite crítico o de advertencia a partir del último análisis. Después de realizar el análisis en los objetos candidatos identificados en la primera fase, el Automatic Segment Advisor puede recomendar segmentos (tablas o índices) que son cantidatos a compactar. Una vez hechas estas recomentadciones, se puede ejecutar el segment shrink para una tabla o para un tablespace completo. El Automatic Segment Advisor se ejecuta como un job calendarizado en la ventana default de mantenimiento. El tiempo total calendarizado en la ventana de mantenimiento es de cuatro horas cada noche entre semana y en fines de semana hasta por 20 horas en un día. Aunque no se puede especificar cuáles objetos y tablespaces son analizados por el Automatic Segment Advisor, se puede cambiar cuándo y cuántos recursos puede consumir cuando se ejecuta. La siguiente figura muestra la página de configuración para el Automatic Segment Advisor, obtención de estadísticas, y jobs automáticos de tuneo de SQL. 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 3 Compactando Segmentos Para compactar segmentos se pueden utilizar comandos de SQL en un segmento, o alternativamente, usar la interfaz del Enterprise Manager para realizar la misma tarea. Se puede elegir un objeto seleccionado, o un objeto puede estar identificado por el Automatic Segment Advisor. Utilizando SQL para Compactar Segmentos Antes de compactar un segmento, se debe tener habilitado el row movement en la tabla o en el índice. Algunas aplicaciones u operaciones, como en los índices de una tabla, se confía en el valor ROWID para accesar los registros de la tabla. El row movement se habilita de la siguiente manera: SQL> alter table employees enable row movement; Para compactar el segmento, la instrucción a ejecutar es: SQL> alter table employees shrink space compact; La claúsula COMPACT es opcional. Si se especifica COMPACT, solo la fase de compactación se lleva cabo, y el HWM se mantiene en su lugar hasta que se ejecuta el mismo comando sin la claúsula COMPACT: SQL> alter table employees shrink space; Para inicializar el Segment Advisor en una tabla específica o en un tablespace completo, se debe utilizar el paquete DBMS_ADVISOR. Este paquete también es usado por otros advisors comol SQL Access Avisor y Undo Advisor. A continuación se describen los procedimientos incluidos en el paquete DBMS_ADVISOR que se pueden usar para realizar un análisis: CREATE_TASK Crea una nueva tarea en el repositorio. CREATE_OBJECT Especifica un objeto de la base de datos para analizar. SET_TASK_PARAMETER -> Asigna el parómetro para el análisis. EXECUTE_TASK Realiza el análisis. El resultado del análisis produce una o varias recomendaciones, las cuales no pueden ser implementadas automáticamente. Después de que el Segment Advisor ha sido invocado para dar recomendaciones, éstas están disponibles en la vista del diccionario de datos DBA_ADVISOR_FINDINGS. Para mostrar los beneficios potenciales de compactar segmentos cuando el Segment Advisor recomienda una operación de compactación, la vista DBA_ADVISOR_RECOMENDATIONS provee la operación de compactación recomendada junto con los ahorros potenciales expresados en bytes. Por ejempo, usando un bloque anónimo de PL/SQL se configura e inicia un Segment Advisor job, se ejecuta y se obtiene el identificador de la tarea en la variable TASK_ID: 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 4 declare name varchar2(100); descr varchar2(500); obj_id number; begin name := ''; -- unique name generated from create_task descr := 'Check HR.EMPLOYEE table'; dbms_advisor.create_task ('Segment Advisor', :task_id, name, descr, NULL); dbms_advisor.create_object (name, 'TABLE', 'HR', 'EMPLOYEES', NULL, NULL, obj_id); dbms_advisor.set_task_parameter(name, 'RECOMMEND_ALL', 'TRUE'); dbms_advisor.execute_task(name); end; PL/SQL procedure successfully completed. SQL> print task_id TASK_ID ---------384 SQL> Una vez ejecutado el código, se despliega el identificador de la tarea (variable TASK_ID) y con ello se consulta los resultados en la vista del diccionario de datos apropiada: SQL> select owner, task_id, task_name, type, 2 message, more_info from dba_advisor_findings 3 where task_id = 384; OWNER TASK_ID TASK_NAME TYPE ---------- ------- --------- -----------RJB 384 TASK_00003 INFORMATION MESSAGE -------------------------------------------------Perform shrink, estimated savings is 107602 bytes. MORE_INFO --------------------------------------------------------------------Allocated Space:262144: Used Space:153011: Reclaimable Space :107602: 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 5 Usando Enterprise Manager para Compactar Segmentos Para ejectuar el Segment Advisor desde Enterprise Manager, en la parte inferior de la página principal dar clic en link Advisor Central. En el tab Advisors, clic en el link Segment Advisor. En la figura siguiente, se selecciona el radio button Schema Objects ya que se procederá a analizar la tabla HR.EMPLOYEES: Luego clic en el botón Next. Se especifica la tabla HR.EMPLOYEES y click en el botón Submit inicia la tarea de análisis. En la página Advisor Central, se puede monitorear el avance del job. Cuando el job se completa, clic en el nombre del job mostrará los resultados del análisis. 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 6 Como es de esperarse, Segment Advisor recomienda que se debe compactar la tabla. Clic en el botón Shrink realizará la compactación. Como se mencionó anteriormente, Segment Advisor generará recomendaciones para la tabla analizada. Para este ejemplo, se provee una recomendación. Clic en el link Recomendations muestra las recomendaciones de manera individual para el tablespace EXAMPLE que incluye compactación de la tabla EMPLOYEES debido a que tiene un monto significativo de espacio a recuperar. 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 7 Clic en el botón Implement lleva a cabo la ejecución de un job para realizar la compactación de los segmentos en la tabla HR.EMPLOYEES. En la firgura siguiente se muestra el resultado de la ejecución del job, y el comando PL/SQL aplicado. Importante: Al realizar operaciones de segment shrink para liberar segmentos de espacio libre en tablas e índices, se debe tomar en cuenta el impacto en las operaciones DML que esté realizando el usuario final (bloqueo, demora en tiempo de ejecución, etc.). Con el tiempo, la ejecución del job para el Automatic Segment Advisor en la ventana default de mantenimiento, actualizará el diccionario de datos con lo que el DBA visualizará recomendaciones en la página principal de Enterprise Manager: 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 8 Nuevas Características Oracle Reports 11gR2 (11.1.2.0.0) Por: Ing. Iván García [email protected]| La información que almacenamos cada día crece a un ritmo vertiginoso, sin embargo, todos estos datos no son útiles sin la posibilidad de presentarlos de una forma coherente y resumida. Por medio de Oracle Reports 11gR2 tenemos las herramientas necesarias para generar reportes sofisticados, que permiten obtener la información de varias fuentes de datos y presentarla en distintos formatos; además, implementa mecanismo de seguridad y distribución que facilitan la entrega de información hacía todo los niveles de una organización. Oracle Reports es parte de Oracle Fusion Middleware (OFM). El middleware de Oracle (OFM) es el conjunto de productos disponibles para que las organizaciones ejecuten su aplicaciones y presten servicios en el Web. Dentro de estos productos se encuentra el subconjunto que antes se conocía como Oracle Application Server 10g, compuesto de Forms, Reports, Portal y Discoverer. Ahora bien, todos estos productos se encuentran en el OFM en su versión 11g y a continuación se presentan las mejoras más significativas de Oracle Reports. Desde la instalación del software se pueden apreciar las mejoras latentes en la nueva versión de Reports, por ejemplo: Instalación Modular: Todos los componentes del OFM vienen débilmente acoplados, esto permite que en la instalación se pueda seleccionar solo los servicios necesarios, permitiendo reducir la huella en memoria que se deja al subir los servicios instalados. Si solo se va a utilizar Reports, simplemente se instala solo Reports. Mejor estructuración de los archivos instalados: La instalación de un producto 11g crea dos directorios principales: ORACLE_HOME, directorio que almacena todos los binarios y librerías de la instalación; ORACLE_INSTANCE, directorio que almacena los archivos de configuración de la instancia que ejecuta los servicios instalados. De esta forma el ORACLE_HOME puede ser compartido por varias instancias, reduciendo el espacio necesario para la instalación y facilitando la generación de respaldos y la recuperación de los mismos. Respecto a la administración de Oracle Reports se presentan bastantes mejoras debido al cambio en la herramienta del Enterprise Manager (EM). Gracias a la ejecución de las aplicaciones sobre WebLogic el Enterprise Manager se ha visto renovado y presenta las siguientes mejoras respecto a Reports: Una interfaz más rica y personalizable permite apreciar de forma global todos los demás servicios involucrados con Reports Se presentan páginas que permiten hacer tareas de administración, configuración, tuning, diagnóstico y auditoría sobre Reports directamente desde el EM 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 9 Obtención de métricas de desempeño en tiempo real e histórico, gráficas de tendencias y estadísticas claves que permiten analizar cambios necesarios en las configuraciones de Reports para mantener tiempos de respuesta óptimos Se presenta una serie de comandos más avanzados para el manejo de las solicitudes de reportes a ejecutar (jobs), se puede realizar búsquedas, filtros, volver a ejecutar un reporte y ver los fallos, además de las opciones básicas de cancelar, eliminar, etc. Existe una interfaz gráfica para realizar la calendarización de los reportes, facilitando al administrador dicha tarea y evitando los posibles errores de calendarizar por medio de línea de comandos Siguiendo con la administración, ahora en materia de seguridad, las siguientes características ofrecen más control sobre el acceso y ejecución de comandos: Se pueden definir permisos de acceso (lectura/escritura) a directorios a nivel de Reports, de tal manera que se restringe de cuales directorios se puede leer los reportes y a que directorios se puede escribir la salida, evitando así vulnerabilidades en la seguridad. Existen verificaciones de seguridad para destinos distribuidos, por ejemplo: ciertos reportes no pueden ser enviados por correo o ciertos reportes solo pueden ser generados a PDF Ahora existe la implementación de Proxy Users para Reports, agregando una capa más de seguridad en la conexión hacia la base de datos Integración con Oracle Access Manager para la implementación de Single Sign-On 11g 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 10 La generación de reportes presenta nuevos formatos de salida: ENHANCEDSPREADSHEET: Formato de salida que permite una utilización más natural como hoja de datos en aplicaciones como Microsoft Excel, soporta hasta 75,000 filas y no está limitado por los tamaños de una página PDF con seguridad (PDFSECURITY, PDFOWNER, PDFUSER): Aunque el formato de salida tipo PDF existe en versiones anteriores, Reports 11g ofrece la utilización de restricciones de seguridad de forma nativa. Con los parámetros PDFxxx se puede establecer una contraseña para la visualización del PDF, no autorizar la modificación de contenido, deshabilitar impresión, restringir la copia de texto, etc. También se presentan varias mejoras en las gráficas disponibles en los reportes: dos nuevos tipos de gráficas, soporte de imágenes SVG (Scalable Vector Graphic) y cambios en los formatos del Graph Wizard. Las características anteriormente descritas son solo algunas de las más importantes en lo que se refiere a Oracle Reports 11gR2, fueron mencionadas de forma general ya que solo se pretendía dar a conocer dichas cualidades del producto sin entrar a detalle con cada una. Espero haber despertado la curiosidad sobre las nuevas versiones de Reports e impulsar con mayor razón la necesidad de migrar hacia el futuro en aplicaciones Web que nos ofrece Oracle. Configuración de valores de copia de seguridad en Grid Control / EM 11G Por Lic. Francisco Barrundia [email protected] OBJETIVO Configurar los valores de copia de seguridad RMAN a través de la interfaz que nos proporciona EM. VALORES QUE SE PUEDEN CONFIGURAR DESDE GRID CONTROL El Grid Control / EM nos facilita la tarea de configurar los valores básicos para realizar un backup de RMAN sin necesidad de conocer el comando configure de RMAN. La interfaz que GC/EM nos facilita la tarea de configuración de parámetros. Podemos acceder a esa interfaz a través de la pestaña disponibilidad de nuestra base de datos y hacemos clic sobre valores de copia de seguridad. 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 11 Una vez que accedemos al esta pantalla el Grid Control nos muestra tres pestañas con tres apartados diferentes para configurar nuestros valores de backup RMAN ( Dispositivo, Juego de copias de Seguridad, Política ). DISPOSITIVO Valores de disco Ubicación de Copia de Seguridad en Disco: nos permite configurar dónde se van a guardar nuestras copias de seguridad. Si configuramos esta opción y queremos ver cómo se refleja el cambio en nuestra configuración de RMAN podremos hacerlo con el comando show channel en nuestra consola de RMAN. RMAN> show RMAN configuration parameters for CONFIGURE CHANNEL DEVICE database with TYPE DISK db_unique_name FORMAT channel; PRUEBA are: '+BACKUP/%U' RMAN> Donde format sería el encargado de indicarnos nuestra ubicación con el formato específico. Tipo de Copia de Seguridad en Disco: Grid Control nos permite seleccionar la opción del tipo de copia se seguridad que queremos. Una de las opciones que se nos permite seleccionar directamente es realizar las copias de seguridad comprimidas para reducir espacio. Si marcamos la opción de la opción de comprimido podremos ver este cambio reflejado en nuestra configuración de RMAN con la siguiente sentencia. CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET PARALLELISM 1 A continuación mostramos la imagen de la interfaz que nos permitiría configurar estos valores. 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 12 Valores de Cinta En caso de que queramos enviar nuestro backup a una cinta. La interfaz también permite configurar estos valores pudiendo indicar, así como el tipo de copia de seguridad que queremos realizar. Juego de copias de seguridad En este apartado podemos configurar valores que tienen que ver con el tamaño de las “partes” de las copias así como especificar el algoritmo de compresión que usaremos y especificar las credenciales para que RMAN pueda conectarse al host. 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 13 Política de backup En la pestaña política podremos configurar algunas de las políticas importantes para RMAN. En este apartado podremos configurar si en cada copia de seguridad queremos que se almacene de forma automática el archivo de control y el archivospfile.( recomendable Este cambio lo podemos ver reflejado de la siguiente forma en la configuración de RMAN. ). CONFIGURE CONTROLFILE AUTOBACKUP ON 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 14 También podremos marcar la opción de activar la copia de seguridad saltando los archivos sin cambios (archivos de sólo lectura), así como determinar si quermos que no se haga backup de algún tablespace concreto. También nos da la opción de activar el tracking file para realizar copias de seguridad más rápidas en la base de datos. Tracking file es un archivo que lleva el registro de los bloques que van cambiado desde el último backup. Se recomienda habilitarlo para que las copias se seguridad incrementales sean más óptimas porque si no, de lo contrario, RMAN tendría que leer todos los bloques de la base de datos para determinar cuáles son los que han cambiado y el backup se realizaría más lento. Activar esta opción correspondería a lanzar esta sentencia en base de datos. SQL> ALTER DATABASE ENABLE BLOCK CHANGE TRACKING USING FILE <ubicacion> POLÍTICAS DE RETENCIÓN En este apartado podremos decidir cuánto tiempo queremos mantener nuestras copias de seguridad, así como especificar la política de retención de nuestros archivelogs en la base de datos. Si elegimos mantener todas las copias de seguridad, tendremos que tener en cuenta que nuestras copias deberán ser borradas manualmente. Si elegimos la opción “Mantener las copias de seguridad que sean necesarias para la recuperación…” especificaremos el número de días que queremos que se mantenga nuestras copias de seguridad. Las otras quedarán obsoletas. 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 15 También podemos elegir mantener un número específico de copias de seguridad Al igual que en los anteriores apartados podemos ver cómo se realizan estos cambios en la configuración de RMAN con el comando show all y podremos ver,depende de lo que hayamos configurado, sentencias del tipo: Si Mantenemos todos los backups podremos ver la siguiente sentencia de configuración. CONFIGURE RETENTION POLICY TO NONE; Si especificamos algortimo de compresión podremos ver algo similar a CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE '11.2.0.0.0' OPTIMIZE FOR LOAD TRUE; Si decidimos mantener sólo los backups 5 días en nuestra configuración veremos CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 5 DAYS; Si nuestra política de borrado de archivelog es borrar los archivos tras dos backups de éstos podremos ver CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 2 TIMES TO 'SBT_TAPE'; Tip técnico del día: Como ver los Cursores Abiertos Por Usuario? select b.sid, a.username, b.value Cursores_Abiertos from v$session a, v$sesstat b, v$statname c where c.name in ('opened cursors current') and b.statistic# = c.statistic# and a.sid = b.sid and a.username is not null and b.value >0 order by 3 Por Lic. Francisco Barrundia [email protected] 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 16 5a. Ave. 5-55 Zona14, Edificio Euro Plaza Torre II, Nivel 12 Teléfono: (502)2364-5300Fax: (502)2364-5311 [email protected] Página 17