Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

reduire taille de tablespace

1 réponse
Avatar
olivier nartz
Bonjour,

Suite à une réorganisation de ma base Oracle9i, un des tablespace n'est
quasiment plus utilisé (0.1%)
Le pb c'est qu'au départ il a été créé avec 2 fichiers qui représentent
360Mo.
Je voudrais aujourd'hui le ramener à un seul fichier de 20Mo.
J'ai essayé :
ALTER DATABASE
DATAFILE... RESIZE 20000K
mais ça ne marche pas.

Comment puis-je faire?

Merci d'avance

Olivier.

1 réponse

Avatar
guyot.oliv
'lut,

Cas 1 :
l'erreur sur le resize est : ORA-03297: file contains used data beyond
requested RESIZE value

Dans ce cas, cela veudit que le peu de place qu'il te reste se trouve
au bout du tablespace. Oracle, en cas de resize plus petit, ne
réorganise pas les données et vérifie qu'il n'y a pas de données
sotckées dans le fichier entre la nouvelle taille demandée et la
taille initiale. Si tel est le cas, il te jette avec l'erreur ORA
3297.

Solution 1 :
select segment_name, segment_type from dba_segments where
tablespace_name='TOTO';

Ceci va te lister les tables et indexes se trouvant dans ton
tablespace. Il va falloir les déplacer.
si index : alter index toto rebuild tablespace XXX; (tablespace où il
y a de la place).
pour une table : alter table tata move tablespace XXXX;

puis tu resize tes fichiers et tu remets les segments à leur place
initiale.

Cas 2 : Dépend de l'erreur Oracle.

@+

Olivier