Unidad 3. Configuración y administración del espacio en disco
3.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.
En cuanto al respaldo
de las bases de datos (ver Backus), suelen emplearse tanto discos duros, como
cintas magnéticas, discos ópticos o similares.
Técnicas de
almacenamiento y recuperación de bases de datos
Las técnicas empleadas
para almacenar bases de datos son sumamente importantes para la velocidad de
acceso y recuperación de datos. Las técnicas dependen del tipo de
almacenamiento, el uso que se le da o se le dará a la base de datos, la
estructura de la misma, el SGBD empleado, etc.
Esta dependencia no
significa necesariamente que haya que cambiar la estructura de la base de datos
si se cambian las técnicas empleadas. Las técnicas de almacenamiento son
independientes de la base de datos, pero, de todas maneras, las mejores
técnicas muchas veces pueden determinarse viendo la estructura de la base de
datos, entre otras características
3.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:
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 específico, añadiendo nuevos registros al final del archivo.
·
Archivos ordenados (o
secuenciales): mantiene el orden de los registros con
respecto a algún valor de algún campo (clave de ordenación).
·
Archivos de direccionamiento
calculado: utilizan una función de direccionamiento
calculado aplicada a un campo específico para determinar la colocación de los
registros en disco.
·
Árboles B: se
vale de la estructura de árbol para las colocaciones de registros.Existe una
segunda forma de acceder a los datos llamada organización secundaria o
estructura de acceso auxiliar. Estas permiten que los accesos a los registros
de un archivo basado en campos alternativos, sean más eficientes que los que
han sido utilizados para la organización primaria de archivos.
El DBMS asigna espacio
de almacenamiento a las bases de datos cuando los usuarios introducen create
database o alter database. El primero de los comandos puede especificar uno o
más dispositivos de base de datos, junto con la cantidad de espacio en cada uno
de ellos que será asignado a la nueva base de datos.
Si se utiliza la
palabra clave default o se omite completamente la cláusula on, el DBMS pone la
base de datos en uno o más de los dispositivos predeterminados de base de datos
especificados en master. sysdevices
Para especificar un
tamaño (en este ejemplo, 4MB) para una base de datos que se va a almacenar en
una ubicación predeterminada, utilice on default = size de esta forma:
create
database newpubs on default = 4
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.
Ejemplo de la creación
de usuario
CREATE USER nombre
IDENTIFIED BY
contraseña
[DEFAULT TABLESPACE
nombreTableSpace]
[TEMPORARY TABLESPACE
nombreTemp]
[QUOTA INT {K|M} |
UNLIMITED ON nombreTableSpace]
[PROFILE perfil]
[PASSWORD
EXPIRE]
[ACCOUNT
{LOCK | UNLOCK}]
CREATE USER:
Nos permite especificar el nombre del usuario
IDENTIFIED BY: Nos
permite especificar su contraseña
DEFAULT TABLESPACE: Definimos
el tablespace por defecto. Si no se especifica se asigna USERS. Para crear un
nuevo tablespace.
TEMPORARY TABLESPACE:
Definimos el tablespace temporal. Si no especificamos ninguno se asigna TEMP.
QUOTA:
Espacio que el usuario podrá utilizar en el sistema. Si no se especifica el
espacio por defecto es 0 con lo cual el usuario no podrá crear nada.
PROFILE: Permite
especificar el perfil por defecto. Si no se especifica se asigna
DEFAULT. Es
utilizado para controlar el acceso a los recursos, por ejemplo, el número de
sesiones concurrentes, uso de CPU, etc.
PASSWORD EXPIRE:
Especifica que la contraseña asignada al usuario expirará, de esta forma, el
propio usuario o el DBA deberá asignar una nueva antes de acceder al sistema.
ACCOUNT LOCK/UNLOCK:
Podemos decidir si el usuario tendrá la cuenta bloqueada o no de forma inicial.
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;
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, utilice las
vistas:
SQL>
select * from DBA_ROLES;
SQL>
select * from DBA_ROLE_PRIVS order by GRANTEE;
Importancia al momento
de crear una base de datos
Es importante que a la
hora de crear una BD el DBA configure y asigne el espacio de disco que ocupara
la BD para que así no haya complicaciones en caso de que la cantidad de
información almacenada sea en volumen muy grande y llegara a faltar espacio en
el disco para ese volumen de información, así como la importancia de tener bien
administrada la BD ya que de no ser así pueden existir errores que causarían el
colapso de dicha BD.
Porque el
administrador debe contemplar la configuración y administración del espacio
El DBA debe de
contemplar estos aspectos ya que de lo contrario no estaría bien el BD ya que
no se tiene considerado el espacio de disco que se ocupara y en dado caso que
se requiera más espacio no se podría tener más espacio ya que en un principio
no se consideró ni la configuración ni la administración del espacio en disco,
se tendría que volver a generar un BD con las especificaciones necesarios para
empresa causando perdidas de dinero y tiempo para dicha empresa
3.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.
En cuanto al respaldo
de las bases de datos (ver Backus), suelen emplearse tanto discos duros, como
cintas magnéticas, discos ópticos o similares.
Técnicas de
almacenamiento y recuperación de bases de datos
Las técnicas empleadas
para almacenar bases de datos son sumamente importantes para la velocidad de
acceso y recuperación de datos. Las técnicas dependen del tipo de
almacenamiento, el uso que se le da o se le dará a la base de datos, la
estructura de la misma, el SGBD empleado, etc.
Esta dependencia no
significa necesariamente que haya que cambiar la estructura de la base de datos
si se cambian las técnicas empleadas. Las técnicas de almacenamiento son
independientes de la base de datos, pero, de todas maneras, las mejores
técnicas muchas veces pueden determinarse viendo la estructura de la base de
datos, entre otras características
3.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:
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 específico, añadiendo nuevos registros al final del archivo.
·
Archivos ordenados (o
secuenciales): mantiene el orden de los registros con
respecto a algún valor de algún campo (clave de ordenación).
·
Archivos de direccionamiento
calculado: utilizan una función de direccionamiento
calculado aplicada a un campo específico para determinar la colocación de los
registros en disco.
·
Árboles B: se
vale de la estructura de árbol para las colocaciones de registros.Existe una
segunda forma de acceder a los datos llamada organización secundaria o
estructura de acceso auxiliar. Estas permiten que los accesos a los registros
de un archivo basado en campos alternativos, sean más eficientes que los que
han sido utilizados para la organización primaria de archivos.
El DBMS asigna espacio
de almacenamiento a las bases de datos cuando los usuarios introducen create
database o alter database. El primero de los comandos puede especificar uno o
más dispositivos de base de datos, junto con la cantidad de espacio en cada uno
de ellos que será asignado a la nueva base de datos.
Si se utiliza la
palabra clave default o se omite completamente la cláusula on, el DBMS pone la
base de datos en uno o más de los dispositivos predeterminados de base de datos
especificados en master. sysdevices
Para especificar un
tamaño (en este ejemplo, 4MB) para una base de datos que se va a almacenar en
una ubicación predeterminada, utilice on default = size de esta forma:
create
database newpubs on default = 4
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.
Ejemplo de la creación
de usuario
CREATE USER nombre
IDENTIFIED BY
contraseña
[DEFAULT TABLESPACE
nombreTableSpace]
[TEMPORARY TABLESPACE
nombreTemp]
[QUOTA INT {K|M} |
UNLIMITED ON nombreTableSpace]
[PROFILE perfil]
[PASSWORD
EXPIRE]
[ACCOUNT
{LOCK | UNLOCK}]
CREATE USER:
Nos permite especificar el nombre del usuario
IDENTIFIED BY: Nos
permite especificar su contraseña
DEFAULT TABLESPACE: Definimos
el tablespace por defecto. Si no se especifica se asigna USERS. Para crear un
nuevo tablespace.
TEMPORARY TABLESPACE:
Definimos el tablespace temporal. Si no especificamos ninguno se asigna TEMP.
QUOTA:
Espacio que el usuario podrá utilizar en el sistema. Si no se especifica el
espacio por defecto es 0 con lo cual el usuario no podrá crear nada.
PROFILE: Permite
especificar el perfil por defecto. Si no se especifica se asigna
DEFAULT. Es
utilizado para controlar el acceso a los recursos, por ejemplo, el número de
sesiones concurrentes, uso de CPU, etc.
PASSWORD EXPIRE:
Especifica que la contraseña asignada al usuario expirará, de esta forma, el
propio usuario o el DBA deberá asignar una nueva antes de acceder al sistema.
ACCOUNT LOCK/UNLOCK:
Podemos decidir si el usuario tendrá la cuenta bloqueada o no de forma inicial.
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;
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, utilice las
vistas:
SQL>
select * from DBA_ROLES;
SQL>
select * from DBA_ROLE_PRIVS order by GRANTEE;
Importancia al momento
de crear una base de datos
Es importante que a la
hora de crear una BD el DBA configure y asigne el espacio de disco que ocupara
la BD para que así no haya complicaciones en caso de que la cantidad de
información almacenada sea en volumen muy grande y llegara a faltar espacio en
el disco para ese volumen de información, así como la importancia de tener bien
administrada la BD ya que de no ser así pueden existir errores que causarían el
colapso de dicha BD.
Porque el
administrador debe contemplar la configuración y administración del espacio
El DBA debe de
contemplar estos aspectos ya que de lo contrario no estaría bien el BD ya que
no se tiene considerado el espacio de disco que se ocupara y en dado caso que
se requiera más espacio no se podría tener más espacio ya que en un principio
no se consideró ni la configuración ni la administración del espacio en disco,
se tendría que volver a generar un BD con las especificaciones necesarios para
empresa causando perdidas de dinero y tiempo para dicha empresa
Comentarios
Publicar un comentario