lunes, 26 de octubre de 2009

LOS PERFILES EN ORACLE

Los perfiles se utilizan para limitar la cantidad de recursos del sistema y de la BD disponibles para un usuario. Si no se definen perfiles para un usuario se utiliza el perfil por defecto, que especifica recursos ilimitados.

Los recursos que pueden ser limitados via perfil son los siguientes:


Los perfiles se pueden crear via el comando CREATE PROFILE, y se pueden modificar con la sentencia ALTER PROFILE.

En general, el perfil por defecto debe ser adecuado para los usuarios normales; los usuarios con requerimientos especiales deberían tener perfiles especiales.

ROLES EN ORACLE

los Roles son simplemente un conjunto de privilegios que se pueden otorgar a un usuario o a otro Rol. De esa forma se simplifica el trabajo del DBA en esta tarea.

Por default cuando creamos un usuario desde el Enterprise Manager se le asigna el permiso de connect, lo que permite al usuario conectarse a la BD y crear sus propios objetos en su propio esquema. De otra manera, debemos asignarlos en forma manual.

Para crear un Rol y asignarlo a un usuario se hace de la siguiente manera:

SQL> CREATE ROLE appl_dba;

Opcionalmente, se puede asignar una clave al Rol:

SQL> SET ROLE appl_dba IDENTIFIED BY app_pwd;

Para asignar este Rol a un usuario:

SQL> GRANT appl_dba TO jperez;

Otro uso común de los roles es asignarles privilegios a nivel de Objetos, por ejemplo en una Tabla de Facturas en donde sólo queremos que se puedan hacer Querys e Inserts:

SQL> CREATE ROLE consulta;

SQL> GRANT SELECT,INSERT on analista.factura TO consulta;

Y finalmente asignamos ese rol con este “perfil” a distintos usuarios finales:

SQL> GRANT consulta TO ahernandez;

Nota: Existen algunos roles predefinidos, tales como:
CONNECT, CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SYNONYM, CREATE SEQUENCE, CREATE DATABASE LINK, CREATE CLUSTER,
ALTER SESSION, RESOURCE, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER, CREATE TYPE, CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR SCHEDULER, CREATE ANY JOB, CREATE JOB, EXECUTE ANY CLASS, EXECUTE ANY PROGRAM,
MANAGE SCHEDULER, etc.
DBA: Tiene la mayoría de los privilegios, no es recomendable asignarlo a usuarios que no son administradores.
SELECT_CATALOG_ROLE: No tiene privilegios de sistema, pero tiene cerca de 1600 privilegios de objeto.

Para consultar los roles definidos y los privilegios otorgados a través de ellos, utilize las vistas:

SQL> select * from DBA_ROLES;
SQL> select * from DBA_ROLE_PRIVS order by GRANTEE;

PRIVILEGIOS EN ORACLE

Los roles de sistema se utilizan para distribuir la disponibilidad de los comandos del sistema utilizados para gestionar la BD. Los privilegios más comunes están en la siguiente tabla. En ella se distinguen entre privilegios de manejo de objetos y de gestión de la BD. La palabra clave ANY significa que ese usuario tiene el privilegio para todos los esquemas en la BD. Hay que hacer notar que ANY y PUBLIC no son sinónimos.



Los privilegios se pueden agrupar en roles, para así satisfacer a distintos tipos de usuarios. En la instalación se crea un rol llamado OSOPER que sirve para los operarios de la máquina donde está la BD y permite realizar copias de seguridad en frio y en caliente. Los privilegios de OSOPER son STARTUP, SHUTDOWN, ALTER DATABASE OPEN/MOUNT, ALTER DATABASE BACKUP, ARCHIVE LOG, RECOVER y RESTRICTED SESSION.



Se pueden crear nuevos roles. Por ejemplo, podemos crear un rol llamado creadorCuentas que sólo pueda crear usuarios y no pueda realizar ninguna otra operación de DBA. Las sentencias que permiten hacer esto son las siguientes:

SQL> create role creadorCuentas;
Statement processed.
SQL> grant create session, create user to creadorCuentas;
Statement processed.



Oracle incluye otros tres roles de sistema: CONNECT, RESOURCE y DBA, cuyos privilegios son:
Rol Privilegios


lunes, 14 de septiembre de 2009

¿QUE ES UN INDICE BITMAP EN ORACLE?

Los indices B-Tree almacenan rowids en las hojas del arbol. Estos indices pueden llegar a utilizar grandes cantidades de espacio de almacenamiento. A diferencia de los indices B-Tree, los indices de tipo Bitmap utilizan una fraccion de espacio mucho menor representando los rowids como valores binarios (on/off).Los indices Bitmap son aconsejables en situaciones en que los diferentes valores que puede tomar la columna son relativamente pocos. Ejemplos: sexo, estado civil, etc. Cuantos menos valores posibles, mejor. A medida que crece la cantidad de valores posibles, aumentara el tamaño del indice.

¿QUE ES UN INDICE B-TREE EN ORACLE?

El indice B-Tree es el tipo de indice mas comun en una base de datos Oracle. Es el indice default, es decir que si uno crea un indice sin especificar el tipo, Oracle lo creara de tipo B-Tree.La estructura de un indice B-Tree tiene la forma de un arbol invertido. Las estructuras superiores se llaman ramas y la estructura inferior constituyen las hojas. Generalmente los indices B-Tree tienen uno o mas niveles de ramas. Cada rama de un nivel contiene informacion sobre otras ramas del nivel inmediatamente inferior. En el grafico podemos apreciar que la rama superior esta etiquetada con el nombre “Ingrid”. En el siguiente nivel las ramas estan divididas en las alfabeticamente “menores” a la izquierda y las “mayores” a la derecha. Por cada entrada en la tabla, el indice B-Tree registra una entrada en el indice. Cuando se ejecuta una sentencia, Oracle va recorriendo el indice desde la parte superior hasta encontrar el valor buscado. Una vez encontrado el valor buscado de acuerdo con lo requerido por la sentencia SQL, Oracle se dirigira a los datos de la tabla utilizando el rowid especificado en las hojas.Los indices no solo constituyen un metodo para acelerar la busqueda de datos. Tambien pueden ser utilizados para forzar la unicidad de las columnas. Cuando se crea una clave primaria sobre una tabla, Oracle crea un indice unico en forma automatica para garantizar la unicidad de los valores.

¿QUE ES UN INDEX?

Los indices se usan para mejorar el rendimiento de las operaciones sobre una tabla.

En general mejoran el rendimiento las SELECT y empeoran (minimamente) el rendimiento de los INSERT y los DELETE.

Una vez creados no es necesario nada más, oracle los usa cuando es posible.

En oracle existen tres tipos de indices:

  1. Table Index
  2. Bitmap Join Index
  3. Cluster Index
  • create index es una de las pocas sentencias que pueden usar nologging option.
  • create index requiere un segmento temporal si no hay espacio en memoria suficiente.
  • Crear indices basados en funciones require que query_rewrite_enabled este a true y query_rewrite_integrity este a trusted.

¿QUE ES Y PARA QUE SIRVE UN TABLESPACE DEL TIPO UNDO (UNDO TABLESPACE)?

TAblespace de Undo

  • Podemos tener varios tablespaces de “undo”, pero sólo uno de ellos estará activo.
  • No se pueden crear objetos sobre un tablespace de “undo”.
  • Al cambiar de tablespace “undo” activo (con undo_tablespace), los segmentos de rollback que contiene el nuevo tablespace pasan a estar online, mientras que los del tablespace anterior se ponen offline.

Se crean de dos formas:

  • Mediante create database.
  • Mediante create tablespace:
    Create undo tablespace undotbs02 datafile ‘c:\oraclexe\oradata\ex\undo02.dbf’ size 25M reuse autoextend on;

Para eliminarlo:

  • drop tablespace undotbs02;

Parámetros de inicialización de los espacios de tablas de deshacer:

  • Undo_Management (valores MANUAL/AUTO). Si auto se gestionará de forma automática el espacio de deshacer. No es dinámico, cuando se cambia de estado se debe rearrancar la instancia.
  • Undo_tablespace (MANUAL/AUTO). En entornos RAC (Real Application Clusters)

lunes, 7 de septiembre de 2009

¿QUE ES UNA EXTENSION EN ORACLE?

Una extension es una unidad logica de asignicion de espacio de almacenamiento de base de datos formada por una serie de bloques contiguos de bloques de datos. Uno o mas extensiones a su vez constituyen un segmento. Cuando el espacio existente en un segmento se usa totalmente, Oracle Database asigna una nueva extension para el segmento.

http://download.oracle.com/docs/cd/B28359_01/server.111/b28318/logical.htm#i4896

¿QUE ES UN SEGMENTO EN ORACLE?

Un segmento es un conjunto de extensiones que contiene todos los datos de una estructura especifica dentro de una logica de almacenamiento de tablas. Por ejemplo, para cada tabla, Oracle Database asigna una o mas extensiones para formar un segmento de datos de esa tabla, y para cada indice, Oracle Database asigna una o mas extensiones para formar su serie de sesiones de indice.

Es muy importante saber que un segmento pertenece a un solo tablespace.

sábado, 29 de agosto de 2009

Archivos de Control

La arquitectura física general de una base de datos se mantiene por medio de los archivos de control, en los que se almacena la información de contrrol sobre todos los archivos de la base de datos. Se utilizan para conservar la consistencia interna y servir de guía en las operaciones de recuperación.

Como los archivos de control son fundamentales para la base de datos, se guardan varias copias en linea. Estos archivos suelen almacenarse en discos separados para minimizar las consecuencias perjudiciales ded un posible fallo dedl disco. La base de datos creará y mantendrá los archivos de control especificados durante la creación de la base de datos.

http://www.todoexpertos.com/categorias/tecnologia-e-internet/bases-de-datos/oracle/respuestas/275979/archivos-de-control-en-oracle

Listener


Listener es un proceso servidor que provee la conectividad de red con la base de datos Oracle. El listener está configurado para escuchar la conexión en un puerto específico en el servidor de base de datos.


Cuando se pide una conexión a la base de datos, el listener devuelve la información relativa a la conexión. La información de una conexión para una instancia de una base de datos provee el nombre de usuario, la contraseña y el SID de la base de datos. Si estos datos no son correctos se devolverá un mensaje de error.


• Por defecto el puerto del listener es el 1521

• El listener no limita el número de conexiones a la base de datos.

Toda la información del listener la contiene un archivo denominado listener.ora ( $ORACLE_HOME/network/admin).


El comando para gestionar el listener es lsnrctl. Mediante este comando podemos:

• Parar el listener.

• Ver el estado del listener.

• Arrancar el listener.

• Rearrancar el listener.



http://mioracle.blogspot.com/2008/02/el-listener.html

Administración de Base de Datos

Cuales son los roles o funciones de una dministrador de base de datos ?
  • Son los siguientes:
  1. Recuperabilidad - Crear y probar respaldos, esto significa que si se da algún error en los datos, hay un bug de programa o de hardware, el DBA puede traer de vuelta la base de datos al tiempo y estado en que se encontraba en estado consistente antes de que el daño causara un peligro mas grande.
  2. Integridad - Verificar o ayudar a la verificación en la integridad de datos. La base de datos debe incorporar métodos que aseguren que el contenido de los datos del sistema no se rompan así como las reglas del negocio.
  3. Seguridad - Definir y/o implementar controles de acceso a los datos; es la capacidad de los usuarios para acceder y cambiar los datos de acuerdo a las políticas del negocio, maneja la seguridad en sus tablas, para asi protegerla de posibles intrusos.
  4. Disponibilidad - Asegurarse del mayor tiempo de encendido, significa que los usuarios autorizados tengan acceso a los datos cuando lo necesiten para atender a las necesidades del negocio( la informacion deberia estar disponible todo el tiempo "siete días a la semana, 24 horas del día").
  5. Rendimiento - significa que la base de datos no cause tiempos de respuesta poco razonables.
  6. Desarrollo y soporte a pruebas - Ayudar a los programadores e ingenieros a utilizar eficientemente la base de datos; este punto es uno de los menos respetados por el DBA, las actividades de soporte incluyen la reunion de datos de producción para llevar a cabo pruebas con estos datos.
    Que es el SGA?
  • En la base de datos de sistemas de gestión desarrollados por la Oracle Corporation, el Sistema Mundial de Área (SGA) forma parte de la memoria RAM compartida por todos los procesos que pertenecen a una única instancia de base de datos Oracle. El SGA contiene toda la información necesaria para el funcionamiento de la instancia.

Processos Background:

  • System Monitor : Un monitor de sistema es un hardware o software basados en sistema utilizado para controlar los recursos y el rendimiento en un sistema. informático.
  • Process Monitor : Process Monitor es una herramienta avanzada de supervisión para Windows que muestra en tiempo real el sistema de archivos, el Registro y la actividad de los procesos y subprocesos
  • Database Writter : El proceso de DBWR de fondo es el responsable de la gestión de la interacción entre los buffers de datos de Oracle de RAM ( el diccionario de la memoria caché) y los discos físicos. DBWR realiza el proceso por lotes escribe de la evolución de los bloques de nuevo a los archivos de datos.
  • CheckPoint : Bloque en el buffer cache se escribe en los archivos de datos. Es decir, que sincroniza la datablocks en la memoria caché con la datafiles en el disco, es el que escribe todos los DBWR modificados databaseblocks a la datafiles.
  • Logwritter : Permite realizar operaciones en la parte fisica de la Base de Datos
  • Archiver : Guarda archivos de RedLog en linea cuando esta en modo archiverLog de la base de datos, archiver "HOT", puedes realizar un backup mientras esta realizando operaciones , se necesita un buen servidor para que no haya problema alguno.

Que es el PGA?

  • Area de la memoria una instancia de Oracle contiene datos y control de información para el servidor de Oracle-procesos,el tamaño y el contenido de la PGA depende de las opciones del servidor de Oracle instalado.