Bonjour,

Sur notre instance 11.5.9 (base 9.2.0.7), j'ai re créé un tablespace pour les UNDO. Le nouveau tablespace est UNDO_TBS1, l'ancien est APPS_UNDOTS1.

J'ai permuté la tablespace dans la base
=>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
SQL> show parameter undo
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- undo_management                  string      AUTO
undo_retention                       integer     1800
undo_suppress_errors              boolean     FALSE
undo_tablespace                    string      UNDO_TBS1
Jusque la pas de problemes.

Les données de l'ancien tablespace sont bien expirées
=>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
SQL> select 'Il y a ' || count(*) || ' transactions ' || status || ' dans le tablespace ' || tablespace_name from DBA_UNDO_EXTENTS group by status, tablespace_name order by tablespace_name, status;
 
'ILYA'||COUNT(*)||'TRANSACTIONS'||STATUS||'DANSLETABLESPACE'||TABLESPACE_NAME   
--------------------------------------------------------------------------------
Il y a 162 transactions EXPIRED dans le tablespace APPS_UNDOTS1                 
Il y a 143 transactions EXPIRED dans le tablespace UNDO_TBS1                    
Il y a 4 transactions UNEXPIRED dans le tablespace UNDO_TBS1                    
 
 
SQL> select count(*) from dba_undo_extents where tablespace_name = 'APPS_UNDOTS1'
  2  MINUS
  3  select count(*) from dba_undo_extents where tablespace_name = 'APPS_UNDOTS1' and status = 'EXPIRED';
 
no rows selected
 
 
SQL> select count(*) from v$recover_file;
 
  COUNT(*)                                                                      
----------                                                                      
         0
Donc a priori l'ex UNDO tablespace ne sert plus a rien.

Je décide donc de le mettre OFFLINE dans le but de le supprimer plus tard.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
SQL> alter tablespace APPS_UNDOTS1 offline;
 
Tablespace altered.
 
 
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name ='APPS_UNDOTS1';
 
TABLESPACE_NAME                STATUS                                           
------------------------------ ---------                                        
APPS_UNDOTS1                   OFFLINE
Et la probleme :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
SQL> select count(*) from v$recover_file;
 
  COUNT(*)                                                                      
----------                                                                      
         2                                                                      
 
SQL> select file#, file_name from v$recover_file, dba_data_files where v$recover_file.file# = dba_data_files.file_id;
 
FILE#    FILE_NAME                                                                       
--------------------------------------------------------------------------------
6        E:\ORACLE\PROD\PRODDATA\DATA\RBS01.DBF                                          
 
378      E:\ORACLE\PROD\PRODDATA\DATA\RBS02.DBF
Lorsque je remet le tablespace ONLINE, tout rentre dans l'ordre.

Evidemment utilisant une 11.5.9, dès que l'ex tablespace est OFFLINE, j'ai tout un tas d'erreur de Workflow (Concurrent Managers) ...

Selon vous est ce que ce comportement est tres normal ?!
Comment se débarasser de ce tablespace ? Un DROP ?! Oui mais je suis pas tres rassurée (surtout en NOARCHIVELOG).

Merci