Ver tamaño tablespace temporal en Oracle

Problema:

Necesitamos saber el tamaño que hay usado en el tablespace temporal de nuestra base de datos

Solución:

Para saber el espacio usado por el tablespace temp, nos vale con las vistas clásicas de tamaño de tablespace, para ello tenemos que consultar en la vista dba_temp_free_space

Con la siguiente query sabríamos el espacio usado:

SELECT *
FROM   dba_temp_free_space

 

 

Consultar el espacio disponible en los tablespaces

A menudo, los DBAs necesitan monitorizar el espacio de los tablespaces. Aunque ya hay productos, como el Cloud Control donde pueden programarse estas alertas, siempre podemos consultar el espacio accediendo a las vistas dedicadas a ello que tiene nuestra base de datos.

Esta consulta serviría para bases de datos «nonpluggable» de oracle 12c

SELECT 1 seq, b.tablespace_name, nvl(x.fs,0)/y.ap*100 pf, b.file_name file_name,
b.bytes/&&b_div a_byt, NVL((b.bytes-SUM(f.bytes))/&&b_div,b.bytes/&&b_div) t_byt,
NVL(SUM(f.bytes)/&&b_div,0) f_byt, NVL(SUM(f.bytes)/b.bytes*100,0) pct_free
FROM dba_free_space f, dba_data_files b
,(SELECT y.tablespace_name, SUM(y.bytes) fs
FROM dba_free_space y GROUP BY y.tablespace_name) x
,(SELECT x.tablespace_name, SUM(x.bytes) ap
FROM dba_data_files x GROUP BY x.tablespace_name) y
WHERE f.file_id(+) = b.file_id
AND x.tablespace_name(+) = y.tablespace_name
and y.tablespace_name = b.tablespace_name
AND f.tablespace_name(+) = b.tablespace_name
GROUP BY b.tablespace_name, nvl(x.fs,0)/y.ap*100, b.file_name, b.bytes
UNION
SELECT 2 seq, tablespace_name,
j.bf/k.bb*100 pf, b.name file_name, b.bytes/&&b_div a_byt,
a.bytes_used/&&b_div t_byt, a.bytes_free/&&b_div f_byt,
a.bytes_free/b.bytes*100 pct_free
FROM v$temp_space_header a, v$tempfile b
,(SELECT SUM(bytes_free) bf FROM v$temp_space_header) j
,(SELECT SUM(bytes) bb FROM v$tempfile) k
WHERE a.file_id = b.file#
ORDER BY 1,2,4,3;

Aumentando el espacio en un tablespace de Oracle

Para aumentar el espacio de un tablespace, debemos de conocer el nombre del fichero forma ese tablespace y asegurarte que tienes suficiente espacio en disco para ello.

Con el comando de sistema operativo

df -h | sort

podremos ver si disponemos físicamente de ese espacio. Continuar leyendo «Aumentando el espacio en un tablespace de Oracle»

Cambiar un tablespace de oracle a modo lectura

Quizás, en algunos entornos como los de datawarehouse en los que se realizan cargas masivas de datos, que no van a ser modificados o que no queremos que sean modificados, es interesante cambiar el tablespace donde se ubican estos datos y ponerlo en modo lectura. Así nos aseguramos cambios indeseados.

¿Cómo cambiamos un tablespace a modo lectura?

Lo haremos con el comando alter tablespace.

Ejemplo:

alter tablespace repositorio read only;

En este caso modificamos el tablespace de nombre repositorio y lo ponemos en modo lectura.

Continuar leyendo «Cambiar un tablespace de oracle a modo lectura»

Operaciones con tablespaces temporales de Oracle

Objetivo

En este artículo se muestran las operaciones básicas que se pueden realizar con un tablespace temporal de Oracle.
Aplicable: oracle 11g, 12c

CÓMO CREAR UN TABLESPACE TEMPORAL

CREATE TEMPORARY TABLESPACE TEMP TEMPFILE  ‘/database/prueba/temp01.dbf′' SIZE 2000M;

Siendo en este caso concreto ‘/database/prueba/’ nuestra ruta para crear el tablespace, temp01.dbf el nombre del fichero temporal , TEMP el nombre del tablespace. Continuar leyendo «Operaciones con tablespaces temporales de Oracle»