miércoles, 4 de noviembre de 2009

Disponibilidad en Oracle

Real appication clusters (Oracle RAC)

es una opción para Oracle Database 11g Enterprise Edition que se incluye con Oracle Database 11g Standard Edition (en clústeres con un máximo de 4 zócalos). Oracle RAC permite implantar una sola base de datos en un cluster de servidores, con un nivel insuperable de tolerancia a fallos, rendimiento y escalabilidad sin necesidad de ningún cambio en las aplicaciones. Los analistas valoran la creciente importancia de RAC entre la gran variedad de clientes de todos los sectores para aplicaciones de procesamiento de transacciones y almacenamiento de datos.
Ventajas
  1. Disponibilidad permanente-Tiempo de actividad ininterrumpido para las aplicaciones de base de datos.
  2. Escalabilidad bajo demanda-Mayor capacidad con sólo agregar servidores al cluster.
  3. Menos gastos de computación-Uso de hardware de consumo económico y menos costes por inactividad.
  4. Récord mundial de rendimiento-Funciona a más velocidad que el mainframe más rápido.
  5. Grid computing-Oracle RAC consituye los cimientos de la computación en paralelo (grid computing).

Data Guard

mejora la calidad de servicio al descargar las actividades con muchos recursos desde una base de datos de producción hacia una o más bases de datos standby sincronizadas. Oracle Active Data Guard permite el acceso de solo lectura a una base de datos standby física para consultas, clasificaciones, informes, acceso basado en la web, etc., mientras continuamente se aplican los cambios recibidos desde la base de datos de producción. Oracle Active Data Guard también mejora el uso de backups rápidos cuando se descargan backups en una base de datos standby, y puede ofrecer beneficios adicionales de alta disponibilidad y protección ante desastres en caso de cortes de servicio planificados o no planificados en el sitio de producción.

Beneficios

  1. Aumente el desempeño—Descargue el volumen de trabajo en una réplica actualizada de la base de datos de producción.
  2. Simplifique las operaciones—Elimine la complejidad de administración que se asocia a las soluciones de replicación tradicional
  3. Elimine el compromiso—La réplica de informes está actualizada y online en todo momento - no es posible con la tecnología tradicional para el espejamiento de almacenamiento.
  4. Reduzca los costos—Una base de datos standby física Active Data Guard también puede brindar recuperación ante desastres y/o servir como base de datos de prueba - no se requieren servidores ni almacenamiento adiciona.
  5. Recuperación ante desastres y alta disponibilidad -Mediante un failover automático y fácil de administrar que en segundos cambia el rol de las bases de standby a producción.
  6. La base standby database también provee una salvaguarda efectiva contra la corrupción de los datos y los erroresde los usuarios - Ya que daños físicos en la base de datos primaria no se propagan a la standby.
  7. La base standby puede ser utilizada para backups y reportes de sólo lectura - Reduciendo la carga de trabajo de las bases productivas ahorrando ciclosde CPU y de E/S.
  8. Flexibilidad en la protección de los datos - Balancea la disponibilidad con los requerimientos de performance.
  9. Protección ante fallas de comunicación - Si la conectividad de la red se pierde, por lo que no se pueden transmitir los datos entre las bases productivas y las standby, luego cuando se reestablece la misma, los datos perdidos son automáticamente detectados porData Guard y los logs de los archivos son transmitidos a las bases standby, lasque se resincronizan con las bases primarias, sin intervención manual del administrador.
  10. Administración simple y centralizada - La funcionalidad Data Guard Broker automatiza la administración y el monitoreo detodas las bases de datos.
  11. Economía -Ya que Data Guard está disponible como una característica integrada de la versión Enterprise Edition sin costo adicional.

Tecnologia Oracle Flashback

A partir de oracke9i, además de tener point-in-time restore y recovery de la base de datos, tenemos un grupo de funcionalidades conocidas como Oracle Flashback Technology que nos permite trabajar los datos con los valores que tenía en un pasado determinado.

La solución más básica ante cambios no deseados en la base de datos, es el database point-in-time recovery, en donde debemos restaurar la base de datos desde un backup y luego aplicar los redo logs para recrear todos los cambios hasta el momento (pont-in-time) anterior al cambio no deseado.

Oracle Flashback Technology provee varias alternativas para ver el estado pasado de los datos, “rebobinando” los datos hacia atrás y adelante sin necesidad de un restore de la base desde un backup.

De esta manera la tecnología Flashback puede revertir los cambios no deseados más rápidamente y con menos impacto en la disponibilidad del resto de la base de datos.

Aunque las ventajas de Flashback son muchas, tiene algunas limitaciones:
  1. Si la corrupción de la base de datos se da a nivel físico, no se puede usar Flashback como medio de recuperación.
  2. Es un producto pensado para volver atrás cambios no deseados realizados en un pasado cercano. Cuanto tiempo atrás uno puede ir, es configurable, pero limitado según la cantidad de transacciones que se realicen en la base y el espacio disponible para guardar las transacciones realizadas.

miércoles, 28 de octubre de 2009

¿ QUE ES UN PERFIL EN ORACLE ?

es un conjunto de limites de los recursos de la base de datos y constraseña de acceso a la base de datos, si no se espesifica ningun perfil, el usuario se le asigna un perfil determinado.

¿QUE ES UN ROL EN ORACLE Y PARA QUE SIRVE?

Un rol es una forma de agrupar permisos (o privilegios) para asignarlos luego a los usuarios.
Cada usuario puede tener varios roles.
El rol es asignado por default a un usuario. Un rol, puede ser asegurado de manera adicional, que por default, no trae seguridad alguna.

¿ Para que sirver un rol ?

los roles sirven para asignar un grupo de permisos a un usuario, y poder modificar este grupo de permisos sin tener que ir modificando todos los usuarios. Si asignamos un rol con 10 permisos a 300 usuarios, y posteriormente añadimos un permiso nuevo al rol, no será necesario ir añadiendo este nuevo permiso a los 300 usuarios, ya que el rol se encarga automáticamente de propagarlo. La sintaxis básica es:

CREATE ROLE nombre_rol { [NOT IDENTIFIED | IDENTIFIED [BY clave | EXTERNALLY]] };
Una vez que el rol ha sido creado será necesario añadirle permisos a través de instrucción GRANT.

Inicialmente Oracle tiene predefinidos los siguiente roles (entre otros):
|| Rol predefinido || Descripción ||
|| CONNECT || Todos los permisos necesarios para iniciar una sesión en Oracle ||
|| RESOURCE || Todos los permisos necesarios para tener recursos para la creación ||
|| || de objetos ||
|| DBA || Todos los permisos para un administrador de base de datos (DBA) ||
|| EXP_FULL_DATABASE || Permisos para poder exportar toda la base de datos. ||
|| IMP_FULL_DATABASE || Permisos para poder importar toda la base de datos. ||
Podemos decir que un usuarios normal, debe tener al menos los permisos de CONNECT (para conectarse) y de RESOURCE (para poder crear objetos).

Ejemplos:

CREATE ROL CONTROL_TOTAL; CREATE ROL BASICO; CREATE ROL ACCESO_CONTABILIDAD;






QUE ES UN PRIVILEGIO EN ORACLE

Un privilegio no es más que un permiso dado a un usuario para que realice cierta operación. Estas operaciones pueden ser de dos tipos:
Operación de sistema:
necesita el permiso de sistema correspondiente. ·
Operación sobre objeto:
necesita el permiso sobre el objeto en cuestión.

Privilegios
Es la capacidad de un usuario dentro de la base de datos a realizar determinadas operaciones o acceder a determinados objetos de otros usuarios.
Privilegios sobre los objetos
Nos permite acceder y realizar cambios en los datos de otros usuairo. Ejemplo: El privilegio de consultar la tabla de otro usuario es un privilegio sobre objetos.
ON= Especifica el objeto sobre el que se dan los privilegios.
TO= Identifica a los usuarios o roles a los que se conceden los privilegios.
ALL= Concede todos los privilegios sobre el objeto especificado.
WITCH GRANT OPTION= Permite que el receptor del privilegio o rol se lo asigne a otros usuarios o roles.
PUBLIC= Asigna los privilegios a todos los usuarios actuales y futuros: El propósito principal del grupo PUBLIC es garantizar el acceso a determinados objetos a todos los usuarios de la base de datos.
Privilegios de sistema
Dan derecho a ejecutar un tipo de comando SQL o a realzar alguna acción sobre objetos de un tipo especificado. Por ejemplo, el privilegio para crear TABLESPACES es un privilegio de sistema. Formato:

La siguiente sentencia permite identificar los roles y demas privilegios que fueron asignados al usuario de la sesion.

SELECT granted_role "Rol",
admin_option "Admin"
FROM user_role_privs;

SELECT privilege "Privilegio",
admin_option "Admin"
FROM user_sys_privs;

Si se desea hacer esta consulta para otros usuarios, se deberán utilizar la vista dba_role_privs

miércoles, 16 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.

Curiosamente este es el articulo mas leido de SqlEficiente. Evidentemente hay poca informacion en español acerca de los indices bitmap. Por dicho motivo, estare agregando algunos apendices al proyecto, referidos a los indices bitmap. Los links a dichos apendices se iran agregando a este articulo a medida que los vaya publicando.

QUE ES INDICE B-TREE EN ORACLE ?

El indice B-tree es de tipo indice mas comun en una base de datos en oracle.
ES el indice defaul, 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 constrituyen las hojas.
Generlamente los indices B-tree tienen uno o mas niveles de ramas cada rama un nivel y contiene informacion sobre otra rama del nivel inmediatamente inferior.

¿QUE ES UN INDICE B-TREE EN ORACLE?

QUE ES UN INDICE (index) ?
  • un indice es una estructura de memoria secunadaria que permite el acceso directo a las filas de una tabla (este o no agrupada).
  • Auamenta la velocidad de respuesta de la consulta, mejorando su remdimiento y optimizando su resultado.
  • su manejo se hace de forma inteligente. Es de propio Oracle quien decide que indice se necesita.

TIPO DE INDICE (INDEX)

LECTURA/ESCRITURA

  • B-tree(árboles binarios)
  • funcion Based
  • Reserve Key

SOLO LECTURA (read only)

  • Bimap
  • Bimap join
  • index orgamized table
  • Cluster y hash cluster

Domain