UNIDAD III. CONFIGURACION Y ADMINISTRACION DEL ESPACIO EN DISCO

 

3.1. Definición de espacio de almacenamiento

Las bases de datos suelen ser creadas para almacenar grandes cantidades de datos de forma permanente. Por lo general, los datos almacenados en éstas suelen ser consultados y actualizados constantemente.

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.

 

Una vez instalado un gestor de base datos, sigue ver la forma en cómo se almacenan las bases de datos:

Estructuras lógicas de almacenamiento (sector)

Conceptos:

  •         Bloque
  •         Extensión
  •        Segmento
  •        Espacio de tablas
  •        Bloques

 Bloque

Se tratan de la unidad más pequeña. Generalmente debe ser 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 data files, cada data file solo puede pertenecer a una determinada tablestaca. En general, el almacenamiento de los objetos de la base de datos (tablas e índices fundamentalmente) se realiza a través de estructuras lógicas de almacenamiento que tienen por debajo los archivos físicos (.mdf,.ndf), y que independizan por tanto las sentencias de creación de objetos de las estructuras físicas de almacenamiento. Esto es útil porque permite que a esos "espacios de objetos " les sean asociados nuevos dispositivos físicos (es decir, más espacio en disco) de forma dinámica cuando la base de datos crece de tamaño más de lo previsto.

Posibilita además otra serie de operaciones como las siguientes:

Asignar cuotas específicas de espacio a usuarios de la base de datos.

Realizar copias de seguridad o recuperaciones parciales de la base de datos.

El administrador de la base de datos puede crear o borrar nuevos espacios lógicos de objetos, añadir o eliminar ficheros físicos de soporte, utilizados como espacio temporal de trabajo, definir parámetros de almacenamiento para objetos destinados a ese espacio de datos.  En el caso de Oracle, sobre los ficheros físicos de datos (datafiles) se definen los tablespaces.

Ejemplo de creación:

CREATE TABLESPACE usuarios DATAFILE `datal.ora' SIZE 50M

Ejemplo añadir:

ALTER TABLESPACE usuarios ADD DATAFILE 'data2.ora' SIZE 25M

Las bases de datos suelen ser creadas para almacenar grandes cantidades de datos de forma permanente. Por lo general, los datos almacenados en éstas suelen ser consultados y actualizados constantemente.

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 (backup), suelen emplearse tanto discos duros, como cintas magnéticas, discos ópticos o similares.
  • 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:

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.

En el SGBD 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.




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 específico, añadiendo nuevos registros al final del archivo.
  • Archivos Ordenados: 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.


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.

Espacio de almacenamiento

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 (por ejemplo, 4MB) para una base de datos que se va a almacenar en una ubicación predeterminada, se utiliza on default = size de esta forma:

create database newpubs  on default = 4

 

Dispositivos específicos

Para situar la base de datos en dispositivos específicos, se debe indicar el nombre del dispositivo o dispositivos en que se desea almacenar. Como la sintaxis indica, se puede solicitar que se almacene en más de un dispositivo de base de datos, con una cantidad de espacio diferente en cada uno. Todos los dispositivos mencionados en create database deben estar enumerados en sysdevices.

create database newdb on mydata = 3, newdata = 2






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 límite, 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: Específica 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

 

Los DBMS se basan en archivos para almacenar datos, y estos archivos, o conjuntos de datos, residen en medios de almacenamiento, o dispositivos. Una buena parte del trabajo del DBA implicará la planificación para el almacenamiento real de la base de datos.

Algunas tecnologías de almacenamiento son más adecuadas que otras. Sin embargo, la naturaleza mecánica de la unidad de disco los hace más vulnerables al fracaso de los componentes de otro equipo. Además, las formas en que las unidades de disco son utilizados por las bases de datos pueden hacer que la gestión del almacenamiento impredecibles, como la barra lateral "Modern DBMS de uso de disco“ Puede usarse RAID para mejorar la seguridad de los datos.



Para aplicaciones de misión crítica la integridad de los datos puede ser más importante que la disponibilidad de datos. Si el soporte es poco fiable y un fallo de las causas de corrupción de datos, los datos perdidos puede ser más de un problema que el tiempo de inactividad. Es imperativo, por tanto, que las soluciones de almacenamiento de base de datos para protegerlos a toda costa. 

La recuperación de datos desde medios de almacenamiento lleva mucho más tiempo en completarse que la recuperación de datos desde la memoria caché o la memoria.

El rendimiento de la base de datos depende de la entrada y salida a disco. La cantidad de datos almacenados es mayor que nunca antes, y los datos se almacenados por más tiempo.

Algunos DBMS permiten al tamaño de los archivos temporales de expandirse y contraerse de forma automática. Dependiendo del tipo y la naturaleza de las operaciones de base de datos en proceso, esta fluctuación puede provocar picos de uso del disco.

El crecimiento de la capacidad de almacenamiento aumenta aún más la complejidad de la gestión de datos y bases de datos. Muchas organizaciones están implementando nuevas tecnologías de almacenamiento, tales como almacenamiento en red (NAS) y redes de área de almacenamiento (SAN), para ayudar a controlar la cantidad cada vez mayor de almacenamiento necesario para los usos modernos. La gestión del almacenamiento en el entorno dinámico de hoy es una tarea difícil DBA.

Hay muchos problemas de almacenamiento que deben ser resueltos antes de que un DBA pueda crear una base de datos. Uno de los temas más importantes es la cantidad de espacio para permitir la base de datos. 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.






3.5 Roles





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 pérdidas de dinero y tiempo para dicha empresa

Roles de usuarios de bases de datos MySQL

En Plesk con MySQL, un usuario puede seleccionar roles para los usuarios de bases de datos, así como añadir o eliminar privilegios de forma independiente

A continuación los privilegios de MySQL asignados por omisión a cada rol.

A continuación se enumeran los privilegios de MySQL asignados por omisión a cada rol.





.

Para modificar el grupo predeterminado de privilegios, edite el archivo panel.ini y liste los nombres de los privilegios para cada uno de los roles que desee modificar.

Recuerde que los clientes de Plesk seguirán pudiendo seleccionar más privilegios que los que usted haya especificado en panel.ini de no ser que usted lo prohíba de forma expresa (ver información más adelante).

Por ejemplo:

[databaseManagement]

features.roles.mysql.readWrite = Select,Update,Insert

features.roles.mysql.readOnly = Select

features.roles.mysql.writeOnly = Update

 

Nota: al cambiar los conjuntos de privilegios de un rol (por ejemplo, Lectura y escritura), no se alterarán en modo alguno los privilegios de los usuarios de la base de datos MySQL ya existentes en ese rol. El rol de dichos usuarios pasará automáticamente a ser Personalizado.

Cómo denegar un privilegio a todos los usuarios

Puede darse el caso de que necesite denegar un privilegio determinado (por ejemplo, el privilegio Delete) a todos los usuarios de bases de datos. Para denegar un privilegio, especifique la lista de privilegios MySQL del archivo panel.ini, omitiendo el privilegio que desea denegar.

Por ejemplo:

[databaseManagement]

features.privileges.mysql.dataAccess = Select, Insert, Update, Delete

features.privileges.mysql.structureAccess = Create, Drop, Alter, Index, Create Temporary Tables, Lock Tables, Create View, Show View

Los privilegios especificados se muestran en la IU de Plesk (Sitios web y dominios > Bases de datos > Administración de usuarios). Los usuarios podrán conceder o denegar únicamente los privilegios especificados. Si un privilegio no se encuentra en la lista, Plesk considerará que su uso por parte de los usuarios de bases de datos está denegado.

Nota: un privilegio pasará a estar denegado únicamente cuando un usuario de Plesk guarde cambios efectuados en la configuración del usuario de bases de datos (Sitios web y dominios > Bases de datos > Administración de usuarios> haga clic en un nombre de usuario > haga clic en ACEPTAR).

Roles de usuarios de bases de datos de Microsoft SQL Server

En Plesk con Microsoft SQL Server, los usuarios pueden seleccionar roles (Lectura y escritura, Sólo lectura, Sólo escritura), pero no pueden añadir o eliminar permisos de forma independiente (roles a nivel de base de datos de SQL Server). Los permisos no se muestran en la IU de Plesk.




A continuación los permisos predeterminados para cada rol en Microsoft SQL Server

Para modificar el grupo predeterminado de permisos para cada rol, edite el archivo panel.ini y liste los nombres de los permisos.

Por ejemplo:

[databaseManagement]

features.roles.mssql.readWrite = db_datareader,db_backupoperator,db_ddladmin

features.roles.mssql.readOnly = db_datareader,db_backupoperator

features.roles.mssql.writeOnly = db_datawriter

Nota: Los cambios que realice en el conjunto de permisos de un rol también afectarán a los usuarios de bases de datos ya existentes. Tanto los usuarios recién creados como los ya existentes que posean ese rol dispondrán de los permisos especificados en el archivo panel.ini.

 

Cómo recuperar los permisos predeterminados de los usuarios de Microsoft SQL Server

Cada rol de usuario de bases de datos tiene un conjunto de permisos predeterminado (roles de usuario a nivel de base de datos de SQL Server). Para restablecer los permisos de los usuarios de bases de datos ya existentes a sus valores predeterminados (en función de su rol), ejecute el siguiente comando:

%plesk_dir%bin\repair.exe --update-mssql-users-permissions [-database-server <name>] [-database-name <name>]

Nota: Si ha modificado los permisos de un rol (por ejemplo, el rol Lectura y escritura) en panel.ini, el comando --update-mssql-users-permissions utilizará el conjunto de permisos que haya especificado en el archivo, en lugar de restaurar los valores predeterminados (por ejemplo, el conjunto predeterminado para Lectura y escritura es db_datareader,db_datawriter,db_backupoperator,db_ddladmin).











1 comentario: