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

Recovery Manager Oracle Discussion :

Connexion OK mais control files introuvables


Sujet :

Recovery Manager Oracle

  1. #1
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 004
    Points : 2 507
    Points
    2 507
    Par défaut Connexion OK mais control files introuvables
    Salut,

    Avec RMAN on peut se connecter à une base dont tous les fichiers de contrôle sont introuvables (ils ont été soit supprimés soit renommés).
    Et la question que je me pose c'est : mais quel type de connexion est ouverte avec la base puisque celle-ci ne peut pas démarrer (ctrl files absents)?
    Est-ce que RMAN se connecte seulement à l'instance comme pour un startup nomount?

    J'avais fais des tests ici : http://dbaoraclesql.canalblog.com/ar.../38374223.html


    J'identifie les ctrl files depuis ma base démarrée puis je les supprime.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    RMAN> select name from v$controlfile;
         NAME
         ----------------------------------------------------------
         /u01/app/oracle/oradata/orcl12c/control01.ctl
         /u01/app/oracle/fast_recovery_area/orcl12c/control02.ctl
     
    SQL> ! rm /u01/app/oracle/oradata/orcl12c/control01.ctl /u01/app/oracle/fast_recovery_area/orcl12c/control02.ctl

    Impossible d'arrêter la base : normal alors je sors de SQL*Plus.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SQL> shutdown immediate;
         Database closed.
         ORA-00210: cannot open the specified control file
         ORA-00202: control file: '/u01/app/oracle/oradata/orcl12c/control01.ctl'
         ORA-27041: unable to open file
         Linux-x86_64 Error: 2: No such file or directory
         Additional information: 3
     
        SQL> exit
         Disconnected from Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production

    Le démarrage de la base est impossible : c'est encore normal! On me dit bien que je suis connecté à une instance inactive : donc la base est fermée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
         [oracle@vbgeneric ~]$ sqlplus SYS@orcl12c as sysdba
         Connected to an idle instance.
     
         SQL> startup
         ORACLE instance started.
         Total System Global Area 838860800 bytes
         Fixed Size 8798312 bytes
         Variable Size 360714136 bytes
         Database Buffers 461373440 bytes
         Redo Buffers 7974912 bytes
         ORA-00205: error in identifying control file, check alert log for more info

    Et c'est là où j'ai un pb de compréhension : j'arrive à me connecter via RMAN à la base mais il me dit qu'elle n'est pas montée.
    Dois-je en conclure que je suis en réalité connecté à l'instance non démarrée et qu'il y a quand même un lien entre RMAN et ma base qui lui permettra de travailler avec les backups de ma base?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         [oracle@vbgeneric trace]$ rman target SYS@orcl12c
         target database Password:
         connected to target database: ORCL12C (not mounted)
    Ensuite je lance le Data Recovery Advisor et il me restaure bien les ctrl files qui avaient été sauvegardés.

    Mais je m'attendais à ce que la connexion à RMAN ne soit pas possible aussi facilement du fait que la base refuse de démarrer.
    Voilà, si vous pouvez m'expliquer ce qui se passe, merci par avance.

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Points : 8 080
    Points
    8 080
    Par défaut
    Il faut bien faire la distinction entre instance et base de données, et être au clair sur la différence entre les états d'arrêt total, NOMOUNT, MOUNT et OPEN.
    Instance démarrée et base OPEN, ce n'est pas du tout la même chose.
    Quand je fais STARTUP NOMOUNT, cela démarre déjà pleinement l'instance (état STARTED dans V$INSTANCE.STATUS), mais pas la base.

    En toute rigueur terminologique, une connexion Oracle (sans parler spécifiquement de RMAN) se fait à l'instance, et non à la base de données. L'instance fait le lien avec la base.
    Dans l'immense majorité des cas (y compris les connexions SYSTEM), une connexion ne pourra s'établir que si la base est ouverte.
    L'exception, c'est la connexion SYSDBA, qui est possible même si l'instance est totalement arrêtée, ou en état NOMOUNT ou MOUNT.

    Avec RMAN, toute connexion s'effectue implicitement AS SYSDBA, avec les mêmes conséquences que dans SQL*Plus.
    Et heureusement, sinon on ne pourrait jamais restaurer une base qui n'existe plus.

    Et parenthèse : dans votre scénario, SHUTDOWN IMMEDIATE ne peut pas fonctionner en l'absence des fichiers de données ou de contrôle, mais un SHUTDOWN ABORT aurait fonctionné vu qu'il n'essaye alors pas d'accéder à ces fichiers.

    Enfin, lors de la tentative de STARTUP, l'instance démarre (niveau NOMOUNT), mais l'absence de fichier de contrôle empêche de passer au stade MOUNT.

  3. #3
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 004
    Points : 2 507
    Points
    2 507
    Par défaut
    Salut Pomalaix,

    Merci pour le retour.

    Pour info, le shutdown abort ne marche pas si je suis dans une PDB car il y a une recherche des ctrl files.

    Je me connecte à la PDB orcl.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    [oracle@vbgeneric ~]$ . oraenv
    ORACLE_SID = [orcl12c] ? 
     
    [oracle@vbgeneric ~]$ sqlplus SYS@orcl as sysdba
     
    SQL> show con_name user
    CON_NAME
    ------------------------------
    ORCL
    USER is "SYS"
    Je renomme les ctrl files.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SQL> select name from v$controlfile;
    NAME
    --------------------------------------------------------------------------------
    /u01/app/oracle/oradata/orcl12c/control01.ctl
    /u01/app/oracle/fast_recovery_area/orcl12c/control02.ctl
     
    SQL> ! mv /u01/app/oracle/oradata/orcl12c/control01.ctl /u01/app/oracle/oradata/orcl12c/control01.ctl.old
    SQL> ! mv /u01/app/oracle/fast_recovery_area/orcl12c/control02.ctl /u01/app/oracle/fast_recovery_area/orcl12c/control02.ctl.old
    Dans la PDB, le shutdown est impossible.
    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
    SQL> shutdown immediate;
    ORA-00210: cannot open the specified control file
    ORA-00202: control file: '/u01/app/oracle/oradata/orcl12c/control01.ctl'
    ORA-27041: unable to open file
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 3
     
    SQL> shutdown abort; 
    ORA-00210: cannot open the specified control file
    ORA-00202: control file: '/u01/app/oracle/oradata/orcl12c/control01.ctl'
    ORA-27041: unable to open file
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 3
    ORA-00210: cannot open the specified control file
    ORA-00202: control file: '/u01/app/oracle/oradata/orcl12c/control01.ctl'
    ORA-27041: unable to open file
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 3
    Si je passe dans le CDB$ROOT, le shutdown abort est OK.
    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
    SQL> alter session set container = CDB$ROOT;
    Session altered.
     
    SQL> shutdown immediate;
    ORA-00210: cannot open the specified control file
    ORA-00202: control file: '/u01/app/oracle/oradata/orcl12c/control01.ctl'
    ORA-27041: unable to open file
    Linux-x86_64 Error: 2: No such file or directory
    Additional information: 3
     
    SQL> shutdown abort;
    ORACLE instance shut down.
    ERROR:
    ORA-12514: TNS:listener does not currently know of service requested in connect
    descriptor
     
    Warning: You are no longer connected to ORACLE.

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Points : 8 080
    Points
    8 080
    Par défaut
    Le SHUTDOWN ABORT depuis une PDB est dans les faits l'équivalent d'un SHUTDOWN IMMEDIATE : il tente d'effectuer un CHECKPOINT, ce qui implique notamment les fichiers de contrôle.
    Un véritable SHUTDOWN ABORT se fait au niveau CDB$ROOT.

  5. #5
    Membre émérite
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Avril 2013
    Messages
    2 004
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 2 004
    Points : 2 507
    Points
    2 507
    Par défaut
    Hé ben, transformer un "shutdown abort" en "shutdown immediate"... Oracle nous aura tout fait avec sa nouvelle architecture

Discussions similaires

  1. connexion à Excel mais Pilote ISAM introuvable
    Par rdh123 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/09/2007, 12h53
  2. ora-27040 erreur creation control file
    Par pascale86 dans le forum Oracle
    Réponses: 23
    Dernier message: 19/01/2006, 17h54
  3. ora-00205 - erreur fichier de control files
    Par pascale86 dans le forum Oracle
    Réponses: 15
    Dernier message: 17/01/2006, 10h28
  4. Un générateur de Control File pour SQL*Loader ?
    Par lex0072 dans le forum Oracle
    Réponses: 7
    Dernier message: 21/10/2005, 13h36
  5. Control files ORA-00214
    Par MAGNUM_HEAD dans le forum Oracle
    Réponses: 7
    Dernier message: 04/03/2005, 12h55

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