Bonjour,
Afin de comprendre comment fonctionne oracle, j'essaye de réduire au maximum un tablespace ne contenant aucune données.
Pour test, j'ai crée un tablespace TOTO constitué d'un seul datafile ,avec comme paramètre : UNIFORM SIZE=16k
Actuellement il fait 60M.
Je me suis donc dit que je pourrais le réduire à 16k (1 extents). Sauf que non:
ALTER DATABASE DATAFILE '/var/tmp/TOTO.dbf' RESIZE 16K;
ALTER DATABASE DATAFILE '/var/tmp/TOTO.dbf' RESIZE 16K
*
ERROR at line 1:
ORA-03214: File Size specified is smaller than minimum required
Dans dba_extents, je n'ai aucune ligne concernant ce datafile, vu que je n'ai aucune données dedans.
Je me suis donc dit que j'allais essayer avec la vue dba_free_space
J'ai essayé de réduire à taille total du datafile - espace_libre
Ce qui m'a donné :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT b.bytes AS TOTAL,f.bytes AS ESPACE_LIBRE FROM dba_data_files b,dba_free_space f WHERE b.file_name='/var/tmp/TOTO.dbf' AND b.file_id=f.file_id;
62914560 - 62849024 = 65536 soit 64k
Sauf que pareil le resize ne fonctionne pas
Après différents essais, j'arrive à redimensionner le datafile à 73K
Pourrais t'on m'expliquer d'où sort cette valeur ?
Partager