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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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
'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 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.