Está en la página 1de 51

Administración del espacio y

creación manual de la base de datos


Estimación del tamaño de una base
de datos
• Para realizar una estimación del tamaño de una
BD, es necesario tener presente que éstas
almacenando información de forma organizada.

• Oracle utiliza estructuras de almacenamiento:


– Lógicas (tablas, base de datos, etc.).
– Físicas (archivos de datos, bloques de datos)

Son: espacios de tabla (tablespace), archivos de control,


segmentos de datos, segmentos de índice, segmentos
temporales, segmentos de restauración, extensiones,
bloques de datos y división de datos para tablas e
índices.
Espacios de tabla (TABLESPACES) y
archivos de datos
• La Tablespace en oracle almacena físicamente los
datos de la tabla en uno o más archivos de datos
asociados.
• Cualquier BD Oracle tiene al menos un espacio de
tabla denominado SYSTEM con el fin de
almacenar el diccionario de datos.
• El espacio de tabla puede estar en línea (los
datos están a disposición de las aplicaciones y de
las bases de datos) o fuera de línea (los datos no
están a disposición de los usuarios de la BD
aunque la BD este disponible)
ARCHIVO DE DATOS
• Sirve para el almacenamiento físico en disco de
un espacio de tabla de una BD.
• Cuando se crea un espacio de tabla se pueden
crear uno o más archivos de datos (dentro de un
límite) para el nuevo espacio de tabla que
pudiera estar situado en diferentes discos.
• Después de crear un espacio de tabla se pueden
agregar más archivos de datos nuevos para
incrementar su capacidad de almacenamiento.
• Se puede cambiar el tamaño de los archivos de
datos existentes.
• Extensión automática. Cuando el espacio de
tabla se llene y necesite más espacio.

• Es posible configurar Oracle para detectar y


registrar la corrupción de archivos de datos a
nivel de bloque.
Crear un espacio de tabla mediante
SQL
• La sentencia que crea un espacio de tabla es
CREATE TABLESPACE.
Ejemplos:

• Para crear una tablaspace modificable de nombre


undots1 con un fichero de datos de nombre
undotbs_1a.f con un tamaño de 10 megabytes y con
posibilidad de expansión.
Ejemplos:

• Para crear una tablaspace modificable de nombre


undots1 con un fichero de datos de nombre
undotbs_1a.f
DATAFILE indica el nombrecon unarchivos
de los tamaño de que
de datos 10 megabytes y con
se almacenan en la tablaspace.
posibilidad de expansión.
UNDO se utiliza para crear una tablaspace modificable

AUTOEXTEND regula la extensión automática del espacio de tabla.


Puede asignar espacio para la siguiente extensión (NEXT), puede limitarlo o no
(MAXSIZE y UNLIMITED) el espacio de la extensión automática.
sintaxis
• Se crea una tablespace de nombre tbs_2 con un
fichero de datos alojado en diskb, con nombre
tabspace_file5.dat, con un tamaño de 500K
reutilizable, y habilitando automáticamente un
espacio de 500 K para la extensión siguiente
dentro de un espacio máximo de 10 megabytes.
REUSE espacio reutilizable

CREATE TABLESPACE tbs_2


DATAFILE ‘diskb:tabspace_file5.dat’ SIZE 500k REUSE
Asigna espacio para la siguiente extensión
AUTOEXTEND (NEXT),
ON NETXT 500K puede
MAXSIZElimitarlo
10M; o no
(MAXSIZE y UNLIMITED) el espacio de la extensión automática.
Sintaxis extent_management_cláusula regula las
extensiones no automáticas del espacio de tabla

• DICTIONARY. Se especifica para que el espacio de tabla


sea administrado utilizando un diccionario de tablas.
• AUTOLLOCATE. Indica que el sistema realiza la asignación
de las extensiones del espacio de tabla.
• LOCAL. Se especifica para que el espacio de tabla sea
administrado localmente.
• UNIFORM. Indica que las citadas extensiones tendrán el
tamaño unifrome indicado en SIZE.
• Se crea un tablespace de nombre tbs_4 con
un fichero de datos de 10 Megabytes y de
nombre file1.f de modo que el espacio de
tabla sea administrado localmente con
asignación de extensiones de tamaño
uniforme de 120K.
• Se crea un tablespace de nombre tbs_4 con
un fichero de datos de 10 Megabytes y de
nombre file1.f de modo que el espacio de
tabla sea administrado localmente con
asignación
LOCAL. Tablespace de localmente
es administrado extensiones de tamaño
uniforme de 120K.UNIFORM. Las extensiones tendrán el tamaño
uniforme indicado en SIZE

EXTENT MANAGEMENT. Regula la extensión no automática del espacio de tabla


• Se crea un tablespace de nombre auto_seg_ts con un
fichero de datos de 1 Megabyte y de nombre file2.f, de
modo que la extensión del espacio de tabla sea
administrado localmente con administración automática de
espacio de segmento.
AUTO (bitmaps). Lista libre

SEGMENT SPACE MANAGEMENT. Regula el uso del espacio libre en los


segmentos del tablespace utilizando listas libres (MANUAL) o bitmaps (AUTO)

Sintaxis:

SEGMENT SPACE MANAGEMENT { MANUAL | AUTO }


• Para consultar las tablespace
Select tablespace_name from dba_tablespaces;
Versión de Oracle

SQL> select banner from v$version;

BANNER
------------------------------------------------------------------------------

Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit


Production
PL/SQL Release 12.2.0.1.0 - Production
CORE 12.2.0.1.0 Production
TNS for 64-bit Windows: Version 12.2.0.1.0 - Production
NLSRTL Version 12.2.0.1.0 - Production
Consulta de las tablespace y el status

SQL> Select tablespace_name from SQL> select tablespace_name, status from


dba_tablespaces; dba_tablespaces;

TABLESPACE_NAME TABLESPACE_NAME STATUS


------------------------------ ------------------------------ ---------
SYSTEM SYSTEM ONLINE
SYSAUX SYSAUX ONLINE
UNDOTBS1 UNDOTBS1 ONLINE
TEMP TEMP ONLINE
USERS USERS ONLINE
TBS_22 TBS_22 ONLINE
OTRA OTRA ONLINE

7 filas seleccionadas. 7 filas seleccionadas.


SQL> create smallfile tablespace DATOS logging datafile 'datos01.dbf' size 5M, '
datos02.dbf' size 5M extent management local segment space management auto;

SQL> select tablespace_name from


dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
TBS_22
OTRA
DATOS

8 filas seleccionadas.
Cambio de Status de las tablespace para que no se pueda leer en ella

SQL> select tablespace_name, status from dba_tablespaces; 1

TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE SQL> select tablespace_name, status from
SYSAUX ONLINE dba_tablespaces;
UNDOTBS1 ONLINE 3
TEMP ONLINE TABLESPACE_NAME STATUS
USERS ONLINE ------------------------------ ---------
TBS_22 ONLINE SYSTEM ONLINE
OTRA ONLINE SYSAUX ONLINE
DATOS ONLINE UNDOTBS1 ONLINE
TEMP ONLINE
8 filas seleccionadas. USERS ONLINE
2
TBS_22 ONLINE
SQL> alter tablespace DATOS offline normal; OTRA ONLINE
DATOS OFFLINE
Tablespace modificado.
8 filas seleccionadas.
SQL> create table prueba(saludo varchar2(20)) tablespace DATOS;
create table prueba(saludo varchar2(20)) tablespace DATOS
*
ERROR en lÝnea 1:
ORA-01542: tablespace 'DATOS' offline, no se puede asignar espacio en Úl

Como el STATUS de la
SQL> alter tablespace DATOS oNline; tablespace es Offline
No permite escribir sobre
Tablespace modificado. ella

SQL> create table prueba(saludo varchar2(20)) tablespace DATOS;

Tabla creada.

SQL> INSERT INTO PRUEBA VALUES('HOLAS'); Crear una tabla


dentro del
1 fila creada. TABLESPACE

SQL> SELECT * FROM PRUEBA;

SALUDO
--------------------
HOLAS
Tablespace modificado.

SQL> select tablespace_name, status from dba_tablespaces;

TABLESPACE_NAME STATUS
------------------------------ ---------
SYSTEM ONLINE
SYSAUX ONLINE
UNDOTBS1 ONLINE
TEMP ONLINE Si el status se modifica a read
USERS ONLINE Only tampoco se puede hacer
TBS_22 ONLINE modificaciones en la
OTRA ONLINE TABLESPACE
DATOS READ ONLY

8 filas seleccionadas.

SQL> INSERT INTO PRUEBA VALUES('HI');


INSERT INTO PRUEBA VALUES('HI')
*
ERROR en lÝnea 1:
ORA-00372: el archivo 27 no se puede modificar en este momento
ORA-01110: archivo de datos 27:
'C:\APP\MARY\PRODUCT\12.2.0\DBHOME_1\DATABASE\DATOS01.DBF'
SQL> ALTER TABLESPACE DATOS READ WRITE;

Tablespace modificado.

SQL> INSERT INTO PRUEBA VALUES('HI');


Si el status se modifica a read
write puede hacer
1 fila creada.
modificaciones en la
TABLESPACE
SQL> SELECT * FROM PRUEBA;

SALUDO
--------------------
HOLAS
Importante:
HI
Al finalizar de insertar realice un COMMIT para
que se guarden permanentemente los datos en
SQL>
el tablespace
Crear un nuevo tablespace con las siguientes características
Nombre: MiTablespace
Tamaño máximo 300MB

Crear un nuevo usuario aitor con contraseña p123. Este usuario será el que
trabajará con este nuevo tablespace.

Privilegios al
usuario.
• Crea un espacio de tabla de nombre omf_ts1
con un fichero de datos acco.f de 100
Megabytes que no es extensible.
• Renombrar ‘MiTablespace’ como mytables
• Para ver los usuarios asignados a un espacio
de Tabla
Borrar TABLESPACE
AUTENTICACIÓN Y
ADMINISTRACIÓN DE USUARIOS
AUTENTICACIÓN Y ADMINISTRACIÓN
DE USUARIOS
• Oracle utiliza:
1. Autenticación de contraseña.
2. Autenticación de sistema
operativo
3. Autenticación global de usuario
Autenticación de contraseña.
• Consiste en un nombre de usuario y una
contraseña asociada, es típica en entornos
distribuidos y en sistemas cliente servidor.
Autenticación de sistema operativo
• Típica en sistemas de terminales con conexión
directa al servidor, consiste en que Oracle
autentica un nombre de usuario usando el
sistema operativo del computador que ejecuta
el servidor de BD.
Autenticación global de usuario
• Autentica un nombre de usuario usando un
servicio de red externo. En este caso, Oracle
utiliza un servicio de seguridad externo,
aunque también Oracle dispone de sus
propios servicios de seguridad para realizar
autenticación global de usuario, como es el
caso de ORACLE SECURITY SERVER.
CREAR UNA CONTRASEÑA DE USUARIO
Oracle permite crear un
usuario con autenticación de • QUOTA indica el tamaño en
contraseña mediante: kilobytes o megabytes del
• CREATE USER define el usuario de la
cuenta espacio de tabla (normal o
• IDENTIFIED BY define la contraseña. temporal) que se reserva para
• IDENTIFIED EXTERNALY indica que se un usuario, (UNILIMITED
produce una autenticación de Sistema
Operativo. permite al usuario utilizar el
• IDENTIFIED GLOBAL AS indica que se espacio de tabla sin ninguna
produce una autenticación global del limitación de espacio)
usuario
• DEFAUL TABLESPACE es el espacio de • PROFILE asigna un perfil al
tabla en el que el usuario crea sus usuario para limitar el uso de
objetos
• TEMPORARY TABLESPACE es el espacio recursos de la BD (si no
de tabla donde se crean los objetos especifica, oracle asigna
temporales necesarios para la
operación del usuario DEFAULT).
Se utiliza si se quiere que la contraseña del
usuario se expire

ACCOUNT UNLOCK. Indica apertura de la


cuenta
Ejemplo 1
• Se crea un usuario de nombre usuario1 con
autenticación con la contraseña u123, con una cuota
de 10 megabytes de espacio en el tablespace
mytables, con tablespace temporal de nombre temp,
con 5 megabytes de espacio en el tablespace SYSTEM y
con password expirada, de modo que el usuario deberá
cambiarla después de hacer login en laBD.
Usuario1;

El sistema automáticamente le pedirá que cambie una nueva contraseña


Ejemplo 2
• Crea un usuario global de nombre
global_usuario1 con tablespace por defecto
tbs_2 y con una cuota de espacio de 56
megabytes
Modificación de usuarios
• Oracle permite cambiar la contraseña de
usuario mediante:

DEFAULT ROLE.
Indica los roles
concedidos por
defecto al usario.
Ejemplo 3
• Del usuario aitor cambia la contraseña p123
a 123 y el tablespace por defecto mytables
al tablespace otra.
Eliminación de usuarios
• Oracle permite eliminar usuarios mediante la
sentencia:

DROP USER user [CASCADE];

Se utiliza CASCADE para borrar todos los objetos del


esquema del usuario antes de borrar el usuario. Si el
esquema contiene tablas, Oracle borrará las tablas y
automáticamente eliminará cualquier restricción de
integridad referencial referida a claves primarias o únicas
de tablas en otros esquemas.
Para ver todos los usuarios
Actividad
• Deberá elaborar los ejercicios que se
muestran en el documento (los que ya están
elaborados como ejemplo de creación de
tablespace), esto en ORACLE
• Realizará los ejercicios que se indican en la
siguiente página.
• Subirá ambos ejercicios en la tarea «Ejercicios
de ORACLE»
Creación de un espacio virtual de
almacenamiento(TABLESPACE)
Realice los siguientes ejercicios e imprima pantalla de los resultados obtenidos.
• Se crea un tablespace de nombre TBL_2con un fichero de datos de 10 Megabytes y
de nombre tbs_A3.f, el espacio de tabla se administra localmente con asignación
de extensiones de tamaño uniforme de 120K.
• Crear una tablespace de nombre TBL_1con dos fichero de datos alojado en
c:/Actividades/, con nombres:tbs_A1.dat,tbs_A2.fcon un tamaño de 120K
reutilizable, sin posibilidad de expansión.
• Crear un nuevo usuarioque se llamará como su apellidoMaternosu_apellidoMcon
contraseñau123. Este usuario será el que trabajará con latablespaceTBL_1.
• Crear un espacio de tablas de 10M que se llamará TBL_USERmiNombre [Ejemplo:
TBL_USERMaría] (denotando las letras iniciales de tu nombre). Se creará con
almacenamiento gestionadolocalmente con un tamaño máximo de 20M
extensibleautomáticamente en tamaños de 1M.¿Qué sucede si no asignas un
datafile?
• Crear un nuevo usuariose llamará las iniciales de nombre y apellidossu_NAAcon
contraseñaa123. Este usuario seráel que trabajará con latablespaceTBL_2.
• Visualizar los usuarios que están trabajando con los espacios de tabla TBL_1y
TBL_2.
PARTE DOS
• De los ejercicios indicados anteriormente
deberá:
• Investigar cómo se realizarán en el SGBD
Postgrest y MySQL.
• Los resolverá lo más parecido posible,
• Subirá la actividad donde le corresponde a
cada SGBD, justificando lo que no pudo
realizar y los cambios que hizo para que
funcionara el ejercicio.

También podría gustarte