IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration Oracle Discussion :

ORA-01552 sous Oracle 9.2.0.1.0


Sujet :

Administration Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 60
    Points : 52
    Points
    52
    Par défaut ORA-01552 sous Oracle 9.2.0.1.0
    Bonjour,

    je viens d'avoir une erreur oracle : ORA-01552
    ORA-01552: imposs util. segment d'annul. système pour le tablespace non syst. 'MYTBLSPC'

    Oracle 9i : 9.2.0.1.0 sous Windows server 2003 avec système Raid1.

    après quelques recherche j'ai fait les modifications suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    1- Création nouveau tablespace annulation : ex: 
    CREATE UNDO TABLESPACE UNDOTBS02 DATAFILE D:\oracle\oradata\db01\undotbs02.dbf SIZE 65M AUTOEXTEND ON;
    2- modification directe du fichier SPFILE : alter system set undo_tablespace=UNDOTBS02 scope=SPFILE;
    3- Modification fichier init : positionnement sur le nouveau tablespace annulation : undo_tablespace=UNDOTBS02
    4- Redémarrage instance
    5- suppression ancien tablespace annulation : drop tablespace UNDOTBS1 including contents and datafiles;
    JAMAIS REALISE, car erreur.
    Donc impossible de supprimer le 1er tablespace d'annulation UNDOTBS1, il m'indique que des segments d'annulation sont encore actifs : ORA-01548
    En effet les segments d'annulations du tablespace UNDOTBS1 sont dans l'état NEED RECOVERY.

    la commande :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    recover tablespace UNDOTBS1
    ne fonctionne pas car je n'ai plus les fichiers archives qui sont demandés.

    Donc voici mes 2 questions :
    - quel peut être l'origine de l'erreur ORA-01552 et ces solutions ?
    - comment supprimer mon tablespace UNDOTBS1 qui n'est vraissemblablement plus utilisé ?

    Merci pour pour vos idées et solutions.

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    comment as-tu obtenu ce message ? Qu'est ce que t'as fait avant ?

    Sinon, tu commentes tous les paramètres UNDO et tu démarres en mode MANUAL. Quand ta base est démarrée t'as plus qu'à recréer les tablespaces

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    Je ne sais pas trop ce qui s'est passé avant, ce problème est arrivé sur 2 bases. Pour l'une, le diagnostic du système raid a soulevé une erreur sur un disque, mais je ne sais pas si c'est la cause de ce problème oracle.

    Sinon j'ai essayé ta solution sur la base :
    1- mise en commentaire des lignes et management MANUAL de UNDO:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ###########################################
    # System Managed Undo and Rollback Segments
    ###########################################
    undo_management=MANUAL
    # undo_retention=10800
    # undo_tablespace=UNDOTBS1
    2- redémarrage de l'instance (shutdown/startup)
    3- tentative de suppression du tablespace UNDOTBS1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    drop tablespace UNDOTBS1 including contents and datafiles;
    => erreur : ORA-01548: rollback segment actif '_SYSSMU1$' trouvé ; arrêter suppression du tablespace

    Donc je reste toujours avec mon tablespace UNDOTBS1 utilisé par la base.

    Avec la création du tablespace UNDOTBS2, la base refonctionne à nouveau (update possible sans erreur), mais il y a toujours les segments d'annulation du tablespace UNDOTBS1 qui nécessite une récupération :
    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
    SQL> select segment_name,status from dba_rollback_segs;
     
    SEGMENT_NAME                   STATUS
    ------------------------------ ----------------
    SYSTEM                         ONLINE
    _SYSSMU1$                      NEEDS RECOVERY
    _SYSSMU2$                      NEEDS RECOVERY
    _SYSSMU3$                      NEEDS RECOVERY
    _SYSSMU4$                      NEEDS RECOVERY
    _SYSSMU5$                      NEEDS RECOVERY
    _SYSSMU6$                      NEEDS RECOVERY
    _SYSSMU7$                      NEEDS RECOVERY
    _SYSSMU8$                      NEEDS RECOVERY
    _SYSSMU9$                      NEEDS RECOVERY
    _SYSSMU10$                     NEEDS RECOVERY
    2 nouvelles questions :
    - Est-ce grave d'avoir des segments d'annulation dans cet état ?
    - Comment détecter l'erreur ORA-1552 ?

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    Suite des évènements,
    après avoir créé un nouveau tablespace UNDO : UNDOTBS02 et switché dessus, maintenant lorsque je fais des requêtes j'obtiens l'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ORA-00376:file 2 cannot be read at this time
    ORA-01110:data file 2: C:\ORACLE\ORADATA\DB1\UNDOTBS01.DBF'
    Pourtant ce tablespace ne devrait plus être utilisé par la base (rappel : je ne peux pas supprimer ce tablespace : il m'indique que des segments d'annulation sont encore actifs). Donc là je me retrouve encore bloqué.

    Quelles sont les solutions possibles pour que je puisse retrouver toutes mes données et que la base refonctionne correctement ?
    exp/imp FULL ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 60
    Points : 52
    Points
    52
    Par défaut
    Bon, voici une solution mise en place (en espérant qu'il n'y ait pas de nouvelles erreurs) :
    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
    1- Création nouveau tablespace d'annulation : ex: 
    CREATE UNDO TABLESPACE UNDOTBS2 DATAFILE 'C:\oracle\oradata\db1\undotbs02.dbf' SIZE 65M AUTOEXTEND ON;
    2- modification directe du fichier SPFILE : 
    alter system set undo_tablespace=UNDOTBS2 scope=SPFILE;
    3- Modification fichier init : positionnement sur le nouveau tablespace d'annulation : undo_tablespace=UNDOTBS02
    4- Redémarrage de l'instance
    5- suppression de l'ancien tablespace d'annulation : 
    	* récupérer la liste des segments d'annulation corrompus : 
    select segment_name, status from dba_rollback_segs where tablespace_name='UNDOTBS1' and status = ‘NEEDS RECOVERY’;
    	* modifier le fichier initxxx.ora en ajoutant : 
    _offline_rollback_segments="<segment d'annulation corrompu 1>" , "<segment d'annulation corrompu 2>"
    	* arrêt de la base de données puis redémarrage avec startup pfile=<chemin fichier pfile>
    	* suppression de chaque segment d'annulation : 
    drop rollback segment "<segment d'annulation corrompu 1>"
    	* suppression tablespace d'annulation corrompu :
    drop tablespace UNDOTBS1 including contents and datafiles;
    Dernière question :
    - comment détecter l'erreur ORA-01552 et qu'elle peut en être son origine ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 08/07/2010, 10h44
  2. ORA 12560 sous WinXP et oracle 9.2.0.6
    Par fmoriet dans le forum Connexions aux bases de données
    Réponses: 1
    Dernier message: 05/04/2007, 07h47
  3. Pas de JOIN sous Oracle (vraiment dommage...)
    Par Isildur dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/03/2007, 11h28
  4. Cryptage de colonnes sous Oracle
    Par Julian Roblin dans le forum SQL
    Réponses: 9
    Dernier message: 28/11/2006, 18h24
  5. Recherche de texte dans un blob sous oracle
    Par nesbla dans le forum Bases de données
    Réponses: 5
    Dernier message: 25/05/2004, 11h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo