miércoles, 28 de julio de 2021

3 UNIDAD

 

3.1  Definición de espacio de almacenamiento


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.

 

Bloque: 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.


 

 

 


 

  

 



 

El almacenamiento de los objetos de la base de datos (tablas e índices fundamentalmente) no se realiza sobre el archivo o archivos físicos de la base de datos, sino que se hace a través de estructuras lógicas de almacenamiento que tienen por debajo a esos archivos físicos, 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.

·         Controlar la disponibilidad de los datos de la base de datos, poniendo fuera de uso alguno de esos espacios de tablas individualmente.

·         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. Por lo tanto, una base de datos Oracle se compone lógicamente de tablespaces, y físicamente de datafiles. Su creación es sencilla, con la sentencia GREAT'', TABLESPACE: CREATE TABLESPACE usuarios DATAFILE

`datal.ora' SIZE 50M

También es sencillo ampliar el espacio destinado a un tablespace utilizando el comando ALTER TABLESPACE:

 

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

 

Para hacer más grande una base de datos, las opciones disponibles son tres:

 

1.    Añadir más ficheros de datos a tablespaces existentes, como acabamos de ver.

2.    Crear tablespaces nuevos con sus correspondientes ficheros de datos asociados.

     3.    Permitir    que   el   tablespace   crezca   dinámicamente   en función   de   sus necesidades de espacio.

 

Para ello existe una sintaxis asociada a las sentencias CREATE o ALTER DATABASE/TABLESPACE que permite añadir ficheros con propiedades de extensión dinámica, como vemos en el siguiente ejemplo:

 

·         ALTER DATABASE: A1’AF1LE’clata2.ora’ AUTOEXTEND ON NEXT 20M MAXSIZE 1000M que activa la propiedad de a auto extensión (AUTO EXTEND

= ON) y hace que el fichero pueda ir adquiriendo extensiones de 20M (20 megabytes) conforme va siendo necesario, con un tamaño máximo de 1000M.


 

 


Cada base de datos contiene un tablespace llamado SYSTEM que es creado

Instituto Tecnológico de C

 

automáticamente al crear la base de datos. Contiene las tablas del diccionario de datos


para la base de datos en cuestión. Es recomendable no cargar datos de usuario en SYSTEM, para dejarlos como espacio de objetos del sistema.






Si además los datos de usuario están en tablespaces sitos en otros dispositivos, el rendimiento mejorará porque las tablas del diccionario de datos se acceden frecuentemente y por lo tanto son un cuello de botella potencial desde el punto de vista del acceso a disco.


 

 


A la hora de estimar el espacio necesario para cl tablespace sys-nsm hay que tener en cuenta que las unidades de programación PL-SQL (entorno de programación SQL proporcionado por Oracle) almacenadas en la base de datos (procedimientos, paquetes, disparos y funciones) almacenan sus datos en SYSTEM.

 

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.

 


3.2.        Definición y creación del espacio asignado para cada base de   datos.





Una base de datos se divide en unidades lógicas denominadas TABLESPACES. Un tablespace no es un archivo físico en el disco, simplemente es el nombre que tiene un conjunto de propiedades de almacenamiento que se aplican a los objetos (tablas, secuencias…) que se van a crear en la base de datos bajo el tablespace indicado (tablas, secuencias…). Un espacio de tablas puede pertenecer sólo a una BD.


Un objeto en la base de datos debe estar almacenado obligatoriamente dentro de un

tablespace.


Cuando se crea una tabla se debe indicar el espacio de tablas (Tablespace) al que se destina. Por defecto se depositan en el espacio de tablas SYSTEM.

 

Cuando se crea un nuevo Tablespace, la capacidad total del tablespace coincidirá con la suma de los tamaños de los archivos de datos (datafiles) asociados.

 

Por ejemplo:

create tablespace app_data

datafile ‘/u03/oradata/ userdata01. dbf ’ size 100m, datafile ‘/u03/oradata/ userdata02. dbf size 250m;

 

En este caso se crea un tablespace app_data asociado a dos archivos con una capacidad total de 350M.

 

Si se quiere incrementar el tamaño de la base, se puede hacer incrementando el tamaño de un archivo de datos (data files) de un Tablespace en particular.

 

Por ejemplo:

alter database datafile ‘/u03/oradata/ userdata02. dbf’ resize 200m;

 

 

Si no se tiene espacio libre en la partición del disco, entonces se puede agregar otro archivo de datos (data files) sobre otra partición de disco para un Tablespace en particular.

 

Por ejemplo:

alter tablespace app_data add datafile ‘/u01/oradata/ userdata03. dbf’ size 200m;

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 (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… sysdevice.

 

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

 

 

Para situar la base de datos en dispositivos específicos, dé el nombre del dispositivo o dispositivos en que desea almacenarla. Como la sintaxis indica, 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. En otras palabras, deben haberse inicializado con disk init.

 

La instrucción siguiente crea la base de datos newdb y asigna 3MB en mydata y 2MB en newdata. Como en el ejemplo anterior, la base de datos y el diario de transacciones no se separan:

 

create database newdb on mydata = 3, newdata = 2

 

 

Nota: A menos que cree una base de datos pequeña o que no sea crucial, sitúe siempre el diario en un dispositivo de base de datos aparte.

Si la cantidad de espacio solicitada a un dispositivo específico de base de datos no está disponible, el DBMS crea la base de datos con tanto espacio como sea posible

 

en cada dispositivo y muestra un mensaje informando el espacio asignado en cada uno (Esto no se considera un error).


 





Si hay menos espacio del mínimo necesario para una base de datos en el dispositivo


especificado (o en el predeterminado, si no se especifica un nombre), el comando create database falla.

 


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 quota

 

PUNTOS

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.

 

Recomendación

 

No se recomienda dar cuotas a los usuarios en los Tablespaces SYSTEM y SYSAUX, pues típicamente sólo los usuarios SYS y SYSTEM pueden crear objetos en éstos. Tampoco dar cuotas en los Tablespaces Temporal o del tipo Undo.

 

Ejemplo 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.

 

 

Tablespace

 

·         es una ubicación de almacenamiento donde pueden ser guardados los datos correspondientes a los objetos de una base de datos. Este provee una capa de abstracción entre los datos físicos y lógicos y sirve para asignar espacio

para todos los segmentos administrados del sistema de gestión de base de

datos (en inglés DBMS).


·         Un segmento es un objeto de la base de datos el cual ocupa espacio físico, como por ejemplo los datos de una tabla y los índices. Una vez creado, un tablespace puede ser referido por su nombre cuando se crean segmentos de la base de datos.

 

Características tablespace

 

·         Nombre: MiTablespace

 

 

·         Tamaño máximo 300MB

·         Creamos un nuevo usuario aitor con contraseña P@ssw0rd. Este usuario será el que trabajará con este nuevo tablespace.

 

Ejemplo

 

·         CREATE TABLESPACE MiTablespace DATAFILE 'D:\tabspace\mitablespace.DBF' SIZE 300M;

 

·         CREATE USER aitor IDENTIFIED BY P@ssw0rd DEFAULT TABLESPACE MiTablespace;

 

·         GRANT dba, connect, resource TO aitor;

 

·         GRANT CREATE ANY VIEW TO aitor WITH ADMIN OPTION;


·         //Al acceder al sistema con el usuario aitor y contraseña P@ssw0rd, ya

podremos trabajar con el nuevo tablespace creado.



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 utilizadas 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 pueden 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.







Un es un conjunto de privilegios que se asigna a un usuario o grupo de usuarios para permitir realizar determinadas tareas y gestione determinadas sesiones.



Los roles controlan a que secciones del panel del administrador puedan acceder los distintos tipos de usuarios.

·         Puede usar los roles de sistema para signar subconjuntos de privilegios administrativos a otros usuarios. De este modo podrá delegar tareas administrativas rutinarias a otros usuarios.



Por ejemplo:

Puede otorgar a un profesor acceso a las páginas de administración de usuarios.



 



 

 

 

·         Solo un usuario con todos los privilegios de administrador puede asignar privilegios a los roles del sistema.



·         Los múltiples roles del sistema conceden al usuario la suma de sus privilegios.

 

ACERCA DE LOS ROLES PREDETERMINADOS DEL SISTEMA

 

 

Cada rol de sistema tiene un grupo de privilegios predefinidos. Se pueden agregar o eliminar privilegios en todos estos roles excepto en los de administrador del sistema e invitado.



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 al 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

 

No hay comentarios.:

Publicar un comentario

6.2 Auditoria

  6.2 Auditoria Es el proceso que permite medir, asegurar, demostrar, monitorear y registrar los accesos a la información almacenada en las ...