Buscar en este blog

jueves, 5 de agosto de 2010

TIPOS DE PARÁMETROS DE INICIALIZACIÓN DE UNA INSTANCIA ORACLE

Básicamente los parámetros que rigen el comportamiento de una instancia Oracle, se dividen en dos grupos:
  • Estáticos
  • Dinámicos
Estáticos: son aquellos que no permiten ser modificados de inmediato, por lo tanto se necesita bajar y subir la instancia Oracle para que tomen efecto.

Dinámicos: son aquellos que pueden ser ajustados mientras la instancia Oracle continúa operando.

¿Cómo identificarlos?

Con el paso del tiempo, los DBAs van familiarizándose con cada tipo de parámetro, por ende, es común identificar cuando es posible realizar un ajuste en “caliente” de manera inmediata o por el contrario, tener que planificar una ventana de mantenimiento para la re-inicialización de la instancia y que el mismo tome efecto.

Sin embargo, existe una manera sencilla de verificar que parámetros son dinámicos y cuales son estáticos.


La vista VSPARAMETER nos proporciona este tipo de información.

La columna ISSYS_MODIFIABLE contiene tres (3) tipos de valores:
  • Immediate
  • Deferred
  • False
Por ejemplo:
SQL> select distinct ISSYS_MODIFIABLE from V$PARAMETER;

ISSYS_MODIFIABLE
---------------------------
IMMEDIATE
DEFERRED
FALSE

IMMEDIATE: identifica aquellos parámetros dinámicos, es decir, los ajustes se realizan de manera inmediata.

DEFERRED: los ajustes pueden ser realizados en “caliente” pero tomarán efecto solo después de que la base de datos sea re-inicializada.

FALSE: obligatoriamente la base de datos debe bajarse para poder efectuar el cambio.

La siguiente sentencia nos permite conocer lo anterior mencionado:

Col NAME format a50 
Col ISSYS_MODIFIABLE format a20
Select NAME, ISSYS_MODIFIABLE
From V$PARAMETER
Order by 1;

viernes, 9 de julio de 2010

MANEJANDO EL TABLESPACE UNDO

UNDO


Es un método que le permite a toda Base de Datos Oracle mantener información disponible que podría ser utilizada - en caso de necesitarse - en operaciones para deshacer cambios realizados en la misma base de datos. Esta información se refiere a registros de transacciones antes de ser consolidadas (committed).

Los registros UNDO son utilizados para:

* Deshacer transacciones cuando es ejecutado el comando “rollback”.
* Recuperar la base de datos.
* Garantizar consistencia en las lecturas.
* Analizar data cercana a un punto determinado en el tiempo cuando es ejecutado Flashback Query.
* Recuperar data corrupta a nivel lógico cuando es usada alguna característica de Flashback.

A partir de la versión 9i de Oracle, se ha introducido un manejo automático del UNDO, el cual simplifica el manejo del espacio destinado para ello, así como la complejidad asociada con también el igual manejo de los Rollback Segments. Es por esta razón que Oracle recomienda fuertemente el uso del UNDO en vez del antiguo método de Rollback Segment.


PASOS PARA IMPLEMENTAR EL USO DEL UNDO

1.- UNDO_MANAGEMENT=AUTO
Parámetro de inicialización de la instancia Oracle que permite activar el manejo automático por parte del RDBMS del UNDO.

2.- Crear Tablespace UNDO
Un tablespace del tipo UNDO debe existir para que la base de datos pueda almacenar allí los registros propios del UNDO. Si no existe este tablespace, entonces la instancia usará el tablespace de SYSTEM para tal fin. En circunstancias normales esto no es recomendable, incluso su uso generaría el siguiente error a nivel del archivo ALERT_.log:

ORA-01552: cannot use system rollback segment for non-system tablespace '%s'.

La sentencia es similar a la utilizada para cualquier otro tablespace, sin embargo es necesario indicarle que será del tipo UNDO, por ejemplo:

CREATE UNDO TABLESPACE undotbs01
DATAFILE '/undotbs01.dbf' SIZE 2M
AUTOEXTEND ON MAXSIZE 8000M;

3.- UNDO_TABLESPACE = undotbs01
Parámetro de inicialización que permite indicarle a la instancia cual es el tablespace UNDO a usar. Esto es muy útil sobre todo cuando existen varios tablespace del tipo UNDO.


OPTIMIZANDO EL USO DEL ÁREA UNDO

UNDO_RETENTION

Normalmente la información encontrada en el área UNDO se pierde cuando nuevas transacciones sobre-escriben en esta área. Sin embargo, por razones de consistencia, consultas SQL muy largas podrían requerir información antigua contenida en el UNDO, para poder deshacer cambios y crear imágenes antiguas de bloques de datos. Igualmente la funcionalidad del Flashback también podría requerir esta información almacenada en el UNDO.

Entonación automática del Undo Retention

Oracle 10g ajusta automáticamente el undo retention mediante la recopilación de estadísticas de uso de la base de datos y estimar la capacidad necesaria para poder ejecutar satisfactoriamente las consultas SQL. De esta manera, la información después de un “commit” estará disponible por un período de tiempo determinado, el cual es indicado con el valor colocado para el UNDO_RETENTION.

Por otro lado, es posible habilitar el “RETENTION GUARANTEE” en el momento de crear el UNDO tablespace (CREATE UNDO TABLESPACE) o después de creado (ALTER TABLESPACE undotbs1 RETENTION GUARANTEE; ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;) o cuando es creada la base de datos (CREATE DATABASE) con la finalidad de garantizar que la información no será sobre-escrita. Sin embargo, esta opción debe manejarse con especial cuidado, en vista de que puede causar que operaciones DML fallen si el espacio UNDO no es lo suficientemente grande, así como también forzar que ocurra con mayor frecuencia el famoso error: "snapshot too old".

Configurando el UNDO_RETENTION

Su valor por defecto es de 900 y la unidad de medida es en segundos (seg). Este valor determinar el umbral mínimo de retención. Hay dos formas de configurarlo:

Desde el pfile:
UNDO_RETENTION = 1800

Desde SQL*PLUS
ALTER SYSTEM SET UNDO_RETENTION = 2400;

El efecto de esta configuración es inmediata siempre y cuando exista suficiente espacio en el UNDO Tablespace, de lo contrario ésta acción podría provocar el error: "snapshot too old" cuando una consulta SQL sea ejecutada.


GESTIÓN DEL UNDO

Revisando las recomendaciones del UNDO Advisor

1. Abra el Enterprise Manager (Database Control) y ubíquese en Administración -> Gestión de Deshacer


En la figura se puede observar tres secciones claramente identificables:

* Valores de Retención de Deshacer
* Recomendaciones
* Actividad del Sistema y uso de Tablespace

Valores de Retención de Deshacer

Esta sección muestra las características generales en relación al uso del área UNDO, tales como:


* Retención de Deshace (UNDO_RETENTION)
* Garantía de Retención (RETENTION_GUARANTEE)
* Tablespace
* Tamaño
* Extensión automática

Recomendaciones


En esta segunda sección se muestra las recomendaciones más importantes generadas por el Advisor, encontradas en las etiquetas de: Posibles Problemas y Recomendaciones. Así mismo, es posible personalizar la ejecución del análisis mediante ajustar los valores en: Período de Tiempo de Análisis y Período de Tiempo de Análisis Seleccionado.

Actividad del Sistema y Uso de Tablespace


En esta última sección tenemos:

* Consulta en Ejecución más larga (minutos)
* Ratio Medio de Generación de Deshacer (KB/minuto)
* Ratio Máximo de Generación de Deshacer (KB/minuto)

Estas estadísticas son de gran utilidad así como la sección anterior, para ajustar el correcto valor del UNDO_RETENTION como también el tamaño adecuado del tablespace UNDO.

Graficos


Estos gráficos nos muestra de una manera sencilla el comportamiento del área UNDO de acuerdo a la carga de trabajo existente en la instancia Oracle. Como se puede observar hablan por si mismo.

Fuente:
Oracle® Database Administrator's Guide 10g Release 2 (10.2)
Cap 10 Managing the Undo Tablespace

jueves, 24 de junio de 2010

Frase de la Semana

"Sabiduría es saber lo que debes hacer, Habilidad es saber como hacerlo, y Virtud es hacerlo" 


David Starr Jordan 

miércoles, 26 de mayo de 2010

Frase de la Semana

¿Se ha cultivado la inteligencia?



Se nos dijo que fuéramos a estudiar para combatir la "ignorancia" en que vivíamos y salimos peores, pues a muchos les arrebataron la capacidad de asombro, el respeto a la naturaleza y al semejante, se convirtieron en hombres insensibles, altaneros, orgullosos, mal intencionados, trasgresores de la ley y de la palabra.

H. Dubric R.
"Virtud y Negocios"

martes, 18 de mayo de 2010

Comenzar en una nueva Organización…

En algún momento de nuestras carreras hemos o tenemos que experimentar un cambio del sitio de trabajo, es decir, ser parte de una nueva organización.

Este comienzo, según como se desenvuelva, podría verse con muchas dificultades o por el contrario, ser una transición muy fácil y hasta agradable.

Existen muchos factores involucrados que podrían analizarse y que de alguna forma ayudarían a vivir un proceso de adaptación lo mas transparente posible, dicho en otras palabras, sin inconvenientes alguno.

Sin embargo, nos enfocaremos en aquellos puntos directamente relacionados con nuestras funciones de DBA, esperando que estas recomendaciones sean de utilidad para aquellos que se encuentran iniciándose dentro de este mundo, como de aquellos que ya poseen una amplia experiencia.



Explorar y analizar el entorno
Como primera recomendación tenemos que lo más importante es desarrollar nuestro sentido de la observación, es decir, observar y analizar los posibles problemas que puedan aquejar a los usuarios o clientes de la plataforma de TI. Seguidamente enterarnos de los asuntos que podrían afectar directamente al negocio, esto con la finalidad de evaluar de forma individual su impacto e importancia.

En este primer aspecto es muy importante que no nos apresuremos a dar opiniones concluyentes o en otras palabras “no intentar cambiarlo todo en un primer momento”, esto podría causar una mala impresión y causar problemas en sus futuras relaciones interpersonales con el resto del equipo, ya que podrían verlo a usted como el Superman de los DBA, deténgase un momento, analice la situación, póngase en el lugar de los demás administradores y colaboradores, esto también le salvará de equivocarse por su apresuramiento. Más bien gánese sus confianzas y aproveche el tiempo en informarse acerca del sistema y la plataforma tecnológica instalada, hágase las siguientes preguntas:
¿Qué relaciones guardan los sistemas instalados entre sí?
¿Qué importancia tiene cada sistema para el negocio?
¿Cómo podía afectar a la prestación del servicio el cambio que usted se imagina como solución?
¿Cuál sería la razón por la cual aún no lo han solucionado o hayan implementado una idea similar?



Lo mejor sería tomar notas de sus nuevas ideas, para luego, ya poseyendo una información más amplia del funcionamiento del negocio, documentarla y presentarla en el momento oportuno.

Trabajo en equipo
Las relaciones interpersonales son muy importantes, ya que usted no está solo dentro de la empresa, ya existe un equipo de trabajo definido al cual debe adaptarse y trabajar en conjunto, por lo cual el cultivar en el mayor grado posible unas buenas relaciones con cada uno de sus integrantes, será un punto que no podrá descuidar si desea alcanzar bienestar dentro de su nuevo ambiente laboral.



Haga amigos, familiarícese con el sistema, analice, evalúe, levante información acerca de las base de datos (como el nombre, ubicación, versión), busque información también del sistema operativo, configuración de hardware, software instalados, sistemas de respaldos, auditorías, políticas y normas internas, etc.



Sistemas de recuperación
Todo DBA debe dominar y tener bajo control los sistemas y procedimientos de respaldo y recuperación de datos dentro de cada organización. Investigue más a fondo de que manera se está llevando dentro de la empresa los backups, luego pregúntese y busque respuesta sobre: ¿Cómo se está haciendo los backups? ¿Cuales son mis expectativas acerca de la empresa? ¿Dónde están físicamente los servidores? ¿Qué herramientas y procedimientos de recuperación me puedo valer en caso de necesitarlos? ¿Qué defectos tiene el sistema actual de respaldo y como podría mejorarlo? ¿Existe seguridad en el resguardo de las medias de backup? Imagínese el peor de los escenarios en que se necesite recuperar la información de las base de datos y como se podría solventar el problema.



Definir el alcance
Es de igual importancia tener bien claro cuales serán los objetivos, metas y alcance de su trabajo dentro de la empresa. De igual manera podría preguntarse: ¿Cuáles serán los sistemas que estarán bajo su responsabilidad? ¿Cuáles usted no administrará?, converse con los otros DBAs encargados de otras áreas del negocio (ya previamente se los habrá ganado) para levantar cierta información que pueda servirle. Otro punto, solicite toda documentación que haya sido creada previamente para los sistemas que usted va administrar.



Proyección
Usted ahora podría conversar con el resto del equipo para discutir lo que está en la agenda durante los meses siguientes y el próximo año. Esto es para tener una visión clara de cómo está el negocio y el entorno en que trabajará, y desde luego, le permitirá poner especial atención a ciertas cosas que quizás usted había dejado pasar. Recuerde también tener los datos de contacto, tales como números telefónicos y direcciones de correo electrónico de cada uno de los miembros del equipo para poder comunicarse con ellos, como también asegurar de tener acceso al edificio, a las oficinas, y al espacio del servidor o sistema.



Herramientas de trabajo
Busque lo mas pronto posible de instalar, configurar y probar su estación de trabajo, así como también de todas aquellas aplicaciones necesarias para su desempeño como DBA, cree su librería de scripts y de procedimientos, recopiladas a lo largo de su carrera, obtenga acceso a Internet, configure sus links de favoritos, solicite una cuenta en Metalink (ahora llamado Oracle Support), defina su rutina de trabajo, no deje de leer y estar informado, imagínese situaciones y considere si está apto para resolverlas, sino es así documéntese sobre el tema en la medida posible.



En este punto su período de adaptación a sido en gran parte recorrido o finalizado, ya usted se encuentra alineado con el resto de los integrantes de su equipo de trabajo.


martes, 20 de abril de 2010

Como enviar email a través de una Base de Datos Oracle


Existen muchas maneras de implementar el envío de emails a través de una Base de Datos Oracle, una de ellas es mediante el uso del paquete UTL_MAIL.

A continuación les mostraré una manera muy sencilla y práctica de configurarlo y utilizarlo:


1.- Conectarse a la BD a través de SQL*PLUS como SYSDBA por ejemplo:
$ sqlplus '/ as sysdba'

2.- Crear los objetos necesarios en la base de datos:
SQL> @$ORACLE_HOME/rdbms/admin/utlmail.sql
SQL> @$ORACLE_HOME/rdbms/admin/prvmail.plb

3.- Definir un servidor de correos dentro del archivo de parámetros de la instancia oracle:
SQL> alter system set smtp_out_server = 'servidor_de_correo.dominio.com:25' scope=both;

Nota:
.- La instancia debe estar usando un spfile, sino debe hacer los cambios en el init.ora adicionalmente, para que los cambios queden fijos.
.- 25 es el puerto por defecto del smtp.
.- También puede colocar la dirección IP del servidor en vez del hostname, por ejemplo:
smtp_out_server = '172.5.90.165:25'


Para enviar el mail
1.- Conectarse a SQL*PLUS:
$ sqlplus '/ as sysdba'

2.- exec utl_mail.send( sender=>'direccion@dominio.com', recipients=>'direccion@dominio.com', subject=>'Probando UTL_MAIL', message=>'Esto es una prueba' );

3.- Revisar el inbox o carpeta de entrada del correo electrónico para verificar la llegada del correo.

Nota: Si desea que otros usuarios puedan enviar también correos desde la base de datos, entonces deberá conceder la permisología correspondiente, por ejemplo:

grant execute on utl_mail to usuario;

Saludos