Espace stockage
Aller à la navigation
Aller à la recherche
Espace de stockage sous Oracle
Le stockage physique de stockage Oracle est faite de fichiers disque (idéalement répartis sur plusieurs volumes physiques) et assignés a tel ou tel tablespace.
Liste et taille des fichiers sur le disque
Pour avoir la liste des fichiers sur le disque on utilise la requête suivante:
select file_name, tablespace_name, bytes from dba_data_files ORDER BY TABLESPACE_NAME;
file_name | tablespace_name | bytes |
/u01/oradata/proddb/indexes01.dbf | INDEXES | 3386900480 |
/u01/oradata/proddb/RMAN.dbf | RMAN | 5242880000 |
/u01/oradata/proddb/SOP_DATA_1.dbf | SOP_DATA | 2097152000 |
/u02/oradata/proddb/sysaux01.dbf | SYSAUX | 2097152000 |
/u01/oradata/proddb/tables01.dbf | TABLES | 20971520000 |
Occupation des tablespaces
SELECT A.tablespace_Name, A.Alloue, B.Occupe, C.Libre FROM (select tablespace_name, sum(bytes)/1024/1024 AS ALLOUE from dba_data_files group by tablespace_name) a, (select tablespace_name, Sum(bytes)/1024/1024 AS OCCUPE from dba_segments group by tablespace_name) b, (select tablespace_name, Sum(bytes)/1024/1024 AS LIBRE from dba_free_space group by tablespace_name) c WHERE B.tablespace_Name = A.tablespace_Name AND C.Tablespace_Name = B.Tablespace_Name;
Manipulation de fichiers
Redimensionner
Essayons de modifier la taille du fichier /u01/oradata/proddb/tables01.dbf.
La requête est:
alter database datafile '/u01/oradata/proddb/tables01.dbf' resize 15m
Pour lui donner la taille de 15 Mo (15g pour 15 Go)
Les erreurs possibles sont:
- ORA-03297: On demande à redimensionner un fichier à une taille trop petite pour contenir les données.
- ORA-00740: La taille est supérieure a ce que le systeme de fichier est capable de gérer
- ORA-01144: Le nombre de blocs est supérieur au max d'Oracle.
Ajouter un fichier
On voudrait ajouter un second fichier pour le stockage du tablespace TABLES.
ALTER TABLESPACE TABLES ADD DATAFILE '/u01/oradata/proddb/tables02.dbf' SIZE 30M;
Si on souhaite que ce fichier soit géré en mode 'autoextend':
ALTER DATABASE DATAFILE '/u01/oradata/proddb/tables02.dbf' AUTOEXTEND ON NEXT 30m MAXSIZE 1g
Ou désactiver le mode 'autoextend':
ALTER DATABASE DATAFILE '/u01/oradata/proddb/tables02.dbf' AUTOEXTEND OFF