3.1 Estructuras lógicas de almacenamiento
Para la gestión del almacenamiento de una base de datos existen 4 conceptos bien definidos que deben ser conocidos para poder comprender la forma en la que se almacenan los datos. Vamos a ver la diferencia entre bloque, extensión, segmento y espacio de tablas.
Bloques: Se tratan de la unidad más pequeña. Generalmente debe múltiple del tamaño de bloque del sistema operativo, ya que es la unidad mínima que va a pedir Oracle al sistema operativo. Si no fuera múltiple del bloque del sistema se añadiría un trabajo extra ya que el sistema debería obtener más datos de los estrictamente necesarios. Se especifica mediante DB_BLOCK_SIZE.
Extensiones: Se forma con uno o más bloques. Cuando se aumenta tamaño de un objeto se usa una extensión para incrementar el espacio.
Segmentos: Grupo de extensiones que forman un objeto de la base de datos, como por ejemplo una tabla o un índice.
Espacio de tablas:Formado por uno o más datafiles, cada datafile solo puede pertenecer a un determinado tablespace.
3.1.1. Definición de espacio de almacenamiento
Almacenamiento físico de bases de datos
La mayoría de las bases de datos se almacenan en las llamadas memorias secundarias, especialmente discos duros, aunque, en principio, pueden emplearse también discos ópticos, memorias flash, etc.
Las razones por las cuales las bases de datos se almacenan en memorias secundarias son:
* En general, las bases de datos son demasiado grandes para entrar en la memoria primaria.
* La memoria secundaria suele ser más barata que la memoria primaria (aunque esta última tiene mayor velocidad).
* La memoria secundaria es más útil para el almacenamiento de datos permanente, puesto que la memoria primaria es volátil.
3.1.2. Definición y creación del espacio asignado para cada base de datos
Las bases de datos se almacenan en ficheros o archivos. Existen diferentes formas de organizaciones primarias de archivos que determinan la forma en que los registros de un archivo se colocan físicamente en el disco y, por lo tanto, cómo se accede a éstos.
Las distintas formas de organizaciones primarias de archivos son:
* Archivos de montículos (o no ordenados): Esta técnica coloca los registros en el disco sin un orden especifico, añadiendo nuevos registros al final del archivo.
* Archivos ordenados (o secuenciales): Mantiene el orden de los registros con respecto algún valor campo (clave de ordenación).
* Archivos de direccionamiento calculado: Utilizan una función de direccionamiento calculado aplicada a un campo especifico para determinar la colocación de los registros en disco.
* Arboles B: Se vale de la estructura de árbol para las colocaciones de registros.
3.3 Asignación de cuotas de espacio para usuarios
Por defecto ningún usuario tiene cuota en los Tablespaces y se tienen tres opciones para poder proveer a un usuario de una cuota
Sin limite, que permite al usuario usar todo el espacio disponible de un Tablespace.
Por medio de un valor, que puede ser en kilobytes o megabytes que el usuario puede usar. Este valor puede ser mayor o menor que el tamaño del Tablespace asignado a él.
Por medio del privilegio UNLIMITED TABLESPACE, se tiene prioridad sobre cualquier cuota dada en un Tablespace por lo que tienen disponibilidad de todo el espacio incluyendo en SYSTEM y SYSAUX.
No se recomienda dar cuotas a los usuarios en los Tablespaces SYSTEM y SYSAUX, pues tipicamente sólo los usuarios SYS y SYSTEM pueden crear objetos en éstos. Tampoco dar cuotas en los Tablespaces Temporal o del tipo Undo.
3.4. Espacios para objetos de la base de datos
Una buena parte del trabajo del DBA implicará la planificación para el almacenamiento real de la base de datos.
Nombres de objeto
Cada objeto de Active Directory es una instancia de una clase definida en el esquema. Cada clase tiene atributos que aseguran lo siguiente:
El cálculo espacial debe tener en cuenta no sólo tablas, índices, sino también, y dependiendo del DBMS, el registro de transacciones. Cada una de estas entidades probablemente requerirá un archivo separado o conjunto de datos, para el almacenamiento persistente.
El DBA debe separar en diferentes discos a los archivos para:
3.5 Roles
Finalmente, los Roles, que 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 asignarle 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;
Para la gestión del almacenamiento de una base de datos existen 4 conceptos bien definidos que deben ser conocidos para poder comprender la forma en la que se almacenan los datos. Vamos a ver la diferencia entre bloque, extensión, segmento y espacio de tablas.
Bloques: Se tratan de la unidad más pequeña. Generalmente debe múltiple del tamaño de bloque del sistema operativo, ya que es la unidad mínima que va a pedir Oracle al sistema operativo. Si no fuera múltiple del bloque del sistema se añadiría un trabajo extra ya que el sistema debería obtener más datos de los estrictamente necesarios. Se especifica mediante DB_BLOCK_SIZE.
Extensiones: Se forma con uno o más bloques. Cuando se aumenta tamaño de un objeto se usa una extensión para incrementar el espacio.
Segmentos: Grupo de extensiones que forman un objeto de la base de datos, como por ejemplo una tabla o un índice.
Espacio de tablas:Formado por uno o más datafiles, cada datafile solo puede pertenecer a un determinado tablespace.
3.1.1. Definición de espacio de almacenamiento
Almacenamiento físico de bases de datos
La mayoría de las bases de datos se almacenan en las llamadas memorias secundarias, especialmente discos duros, aunque, en principio, pueden emplearse también discos ópticos, memorias flash, etc.
Las razones por las cuales las bases de datos se almacenan en memorias secundarias son:
* En general, las bases de datos son demasiado grandes para entrar en la memoria primaria.
* La memoria secundaria suele ser más barata que la memoria primaria (aunque esta última tiene mayor velocidad).
* La memoria secundaria es más útil para el almacenamiento de datos permanente, puesto que la memoria primaria es volátil.
3.1.2. Definición y creación del espacio asignado para cada base de datos
Las bases de datos se almacenan en ficheros o archivos. Existen diferentes formas de organizaciones primarias de archivos que determinan la forma en que los registros de un archivo se colocan físicamente en el disco y, por lo tanto, cómo se accede a éstos.
Las distintas formas de organizaciones primarias de archivos son:
* Archivos de montículos (o no ordenados): Esta técnica coloca los registros en el disco sin un orden especifico, añadiendo nuevos registros al final del archivo.
* Archivos ordenados (o secuenciales): Mantiene el orden de los registros con respecto algún valor campo (clave de ordenación).
* Archivos de direccionamiento calculado: Utilizan una función de direccionamiento calculado aplicada a un campo especifico para determinar la colocación de los registros en disco.
* Arboles B: Se vale de la estructura de árbol para las colocaciones de registros.
3.3 Asignación de cuotas de espacio para usuarios
Por defecto ningún usuario tiene cuota en los Tablespaces y se tienen tres opciones para poder proveer a un usuario de una cuota
Sin limite, que permite al usuario usar todo el espacio disponible de un Tablespace.
Por medio de un valor, que puede ser en kilobytes o megabytes que el usuario puede usar. Este valor puede ser mayor o menor que el tamaño del Tablespace asignado a él.
Por medio del privilegio UNLIMITED TABLESPACE, se tiene prioridad sobre cualquier cuota dada en un Tablespace por lo que tienen disponibilidad de todo el espacio incluyendo en SYSTEM y SYSAUX.
No se recomienda dar cuotas a los usuarios en los Tablespaces SYSTEM y SYSAUX, pues tipicamente sólo los usuarios SYS y SYSTEM pueden crear objetos en éstos. Tampoco dar cuotas en los Tablespaces Temporal o del tipo Undo.
3.4. Espacios para objetos de la base de datos
Una buena parte del trabajo del DBA implicará la planificación para el almacenamiento real de la base de datos.
Nombres de objeto
Cada objeto de Active Directory es una instancia de una clase definida en el esquema. Cada clase tiene atributos que aseguran lo siguiente:
- La identificación única de cada objeto (instancia de una clase) en un almacén de datos del directorio.
- La compatibilidad con los Id. de seguridad utilizados en Windows Nt 4.0 y versiones anteriores.
- La compatibilidad con los estándar LDAP para nombres de objetos del directorio.
El cálculo espacial debe tener en cuenta no sólo tablas, índices, sino también, y dependiendo del DBMS, el registro de transacciones. Cada una de estas entidades probablemente requerirá un archivo separado o conjunto de datos, para el almacenamiento persistente.
El DBA debe separar en diferentes discos a los archivos para:
- Mejorar el rendimiento
- Separar índices de datos
- Aislar los logros en otro disco
3.5 Roles
Finalmente, los Roles, que 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 asignarle 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;

Comentarios
Publicar un comentario