Entradas

Excepciones en PL/SQL

Manejo de excepciones En PL/SQL una advertencia o condición de error es llamada una excepción. Las excepciones se controlan dentro de su propio bloque.La estructura de bloque de una excepción se muestra a continuación. DECLARE -- Declaraciones BEGIN -- Ejecucion EXCEPTION -- Excepcion END ; Cuando ocurre un error, se ejecuta la porción del programa marcada por el bloque EXCEPTION , transfiriéndose el control a ese bloque de sentencias. El siguiente ejemplo muestra un bloque de excepciones que captura las excepciones NO_DATA_FOUND y ZERO_DIVIDE. Cualquier otra excepcion será capturada en el bloque WHEN OTHERS THEN . DECLARE -- Declaraciones BEGIN -- Ejecucion EXCEPTION WHEN NO_DATA_FOUND THEN -- Se ejecuta cuando ocurre una excepcion de tipo NO_DATA_FOUND WHEN ZERO_DIVIDE THEN -- Se ejecuta cuando ocurre una excepcion de tipo ZERO_DIVIDE WHEN OTHERS THEN -- Se ejecuta cuando ocurre una excepcion de un tipo no tratado -- en los bloques an...

Mensajes de Texto en PLSQL

Para mostrar mensajes en PL/SQL existe un paquete denominado DBMS_OUTPUT que incluye un conjunto de procedimientos y funciones que permiten almacenar información en un "buffer", información que puede recuperarse más tarde. Estas funciones pueden utilizarse también para mostrar la información almacenada en dicho "buffer" a los usuarios. Dentro de estas funciones encontramos, por ejemplo, la función PUT_LINE que pone en el "buffer" parte de la información seguida por un "end-of-line". Esta función puede usarse también para mostrar texto a los usuarios. La función utiliza un único parámetro del tipo carácter y si la función se usa para mostrar mensajes a los usuarios, entonces el contenido del parámetro se corresponde con el contenido del mensaje. Ejemplo: dbms_output.put_line(texto_del_mensaje); Es importante tener en cuenta que para que la aplicación muestre los mensajes al usuario, el parámetro del entorno SQL*Plus SERVEROUTPUT debe estar ...

sysoper y sysdba

OBJETIVOS Breve articulo para referenciar a los usuarios con privilegios sysoper , sysdba el archivo de contraseñas de oracle y el rol DBA. INTRODUCCIÓN Cuando nos conectamos a oracle, podemos diferenciar entre dos grupos de usuarios: grupo 1: Usuarios que sólo se pueden conectar a la base de datos cuando está abierta. grupo 2: Usuarios que se pueden conectar a la base de datos tanto cuando esté abierto como cuando esté cerrada. Para saber sobre tipos de arranque de base de datos Los usuarios del Grupo 2 son aquellos que tiene el privilegio SYSOPER y/o el SYSDBA .Estos dos privilegios caracterizan a los usuarios de oracle puesto que pueden hacer operaciones de "seguridad" como arranque y parada de base de datos Para poder conectarte con estos privilegios sysdba y sysoper tienes que conectarte indicándo que quieres conectarte con esos privilegios. “sys as sysdba” “sys as sysoper Archivo o fichero de contraseñas En oracle existe un fichero de contraseñas d...

Auditar Conexiónes

Se pretende mediante un sencillo ejemplo práctico para ver cómo se puede auditar las conexiónes a una base de datos ORACLE o auditar los intentos de modificación a las tablas de un usuario. Teniendo en cuenta que el parámetro que habilita la posibilidad de auditar la base de datos ORACLE en el init.ora es audit_trail que el comando sql que activa la auditoría sobre algo es AUDIT ( para desactivar NOAUDIT ) y que la tabla para mirar ( usuario sys ) el seguimiento de auditoría es dba_audit_trail vamos a realizar este sencillo ejemplo. Activar la auditoria de intento de conexiones fallidas para todos los usuarios. Miramos que actualmente no está activada la auditoria en la base de datos SQL> select name , value from v$parameter where name like 'audit_trail'; audit_trail NONE Activamos la auditoría de la base de datos SQL> alter system set audit_trail = DB scope = spfile; Reiniciamos la base de datos ( shutdown immediate, startup ) y comprobamos que la ...

Controlar el TableSpaces

OBJETIVOS Automatizar el control de espacios libre en los tablespaces de base de datos mediante un procedimiento pl/sql. Se pretende facilitar un procedimiento que compruebe el espacio libre del tablespace y si este es menor de un portentaje especificado del total se envie un correo de alerta para que el administrador pueda aumentar el tamaño del tablespace COMO VER EL ESPACIO LIBRE DE LOS TABLESPACES DE ORACLE Para ver el espacio libre que queda en un tablespace tenemos que mirar en la tabla dba_free_space SELECT tablespace_name, ROUND(sum(bytes)/1024/1024,0) FROM dba_free_space WHERE tablespace_name NOT LIKE 'TEMP%' GROUP BY tablespace_name; Con esta consulta obentemos el nombre del tablespace y el espacio en Megas libre Para ver el espacio total en un tablespace tenemos que mirar en la tabla dba_data_files SELECT tablespace_name, round(sum(BYTES/1024/1024),0) FROM dba_data_files b WHERE tablespace_name NOT LIKE 'TEMP%' GROUP BY b.tablespace_name; C...

Usuarios

CREACIÓN DE USUARIOS Una de las más básicas tareas de un administrador de base de datos es identificar los usuarios. Cada usuario que conecta en la base de datos debe de tener una cuenta. En las cuentas compartidas son difíciles de aplicar una auditoria. Para crear un usuario utilizamos la sentencia CREATE USER . Cuando creas una cuenta como mínimo tienes que asignar un único nombre (username) y una contraseña para poder autenticarse. Para cambiar alguno de los atributos que se le ha añadido al usuario creado se utiliza la sentencia ALTER USER . AUTENTICACIÓN ORACLE Cuando uno se conecta con una instancia de una base de datos la cuenta de usuario debe de estar autenticada. ORACLE provee tres métodos de autenticación para nuestra cuenta de usuario. AUTENTICACIÓN MEDIANTE PASSWORD Cuando un usuario conecta con una base de datos verifica que este usuario y la contraseña introducida almacenada en la base de datos, sea correcta. Las contraseñas se guardan encriptadas en la base de datos (...

Memoria de ORACLE

El total disponible de memoria en un sistema tiene que estar configurado de forma que todos los componentes de ese sistema funcionen óptimamente. Una pauta a seguir para que el sistema quede bien configurado podría ser el siguiente: Componentes del sistema Memoria del Sistema Oracle SGA Componentes ~ 50\% del total Sistema operativo + Otros componentes ~15\% del total Memoria de usuario ~ 35\% del total Esta es la primera pauta que podemos seguir a la hora de reservar o ver la memoria que se necesita o que se puede poner cómo máximo en un sistema para que Oracle funcione correctamente y los demás componentes del sistema puedan hacerlo también. ( habría que tener en cuenta también el número de usuarios que accederán concurrentemente al sistema ). Una vez que hemos decidido que la SGA de nuestra base de datos ORACLE va a ser el 50\% de la memoria total del sistema. Esta memoria la tenemos que dividir entre los componentes que ...