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 :

Recover database using backup controlfile


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 13
    Par défaut Recover database using backup controlfile
    Bonjour,

    Lorsque je souhaite remonter une base via une sauvegarde à chaud + archivelog sur une 10.1.0.2.0 je met en place mes fichiers sauvegardés précedement (les dbf, ctl, spfile) (PS : je ne fait pas de sauvegarde des REDOLOG).
    J'utilise la même méthode que pour une base 9i.

    Je monte la base, et je lance la commande :
    SQL> RECOVER automatic DATABASE USING BACKUP CONTROLFILE;
    ORA-00279: changement 3161084190 généré Ó 06/10/2008 16:57:12 requis pour
    thread 1
    ORA-00289: suggestion : D:\DATABASE\BASE\ARCHIVELOG\BASE_1_779_656620166.ARC
    ORA-00280: le changement 3161084190 pour le thread 1 se trouve au no de
    sÚquence 779
    ORA-00278: le fichier journal
    'D:\DATABASE\BASE\ARCHIVELOG\BASE_1_779_656620166.ARC' n'est plus nécessaire
    pour cette récupération
    ORA-00308: impossible d'ouvrir le journal d'archivage
    'D:\DATABASE\BASE\ARCHIVELOG\BASE_1_779_656620166.ARC'
    ORA-27041: ouverture du fichier impossible
    OSD-04002: ouverture impossible du fichier
    O/S-Error: (OS 2) Le fichier spÚcifiÚ est introuvable.



    Le n° de séquence est obsolète par rapport au réel (je suis dans les 5000).
    Je précise mon archivelog le plus récent et voici ce qui se passe :

    Indiquer le journal : {<RET>=suggéré | nomfichier | AUTO | CANCEL}
    D:\DATABASE\BASE\ARCHIVELOG\BASE_1_5152_656620166.ARC
    ORA-00310: le journal d'archivage contient la sÚquence 5152 ; sÚquence 779
    requise
    ORA-00334: journal d'archivage :
    'D:\DATABASE\BASE\ARCHIVELOG\BASE_1_5152_656620166.ARC'


    ORA-01547: attention : opÚration RECOVER rÚussie, mais OPEN RESETLOGS gÚnÚrera
    l'erreur ci-dessous
    ORA-01195: la sauvegarde en ligne du fichier 1 nÚcessite plus de rÚcupÚration
    pour Ûtre cohÚrente
    ORA-01110: fichier de donnÚes 1 : 'D:\DATABASE\BASE\SYSTEM.DBF'
    Donc la base ne fonctionne pas.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 105
    Par défaut
    Si la séquence 779 est requise, c'est qu'il la faut absolument.

    Comme la séquence est ancienne je ne pense pas que cela vienne des journaux actuels.
    Dans un tel cas, si l'archivelog demandé est introuvable, il reste une solution: démarrer de manière non sécurisée; je recherche cette méthode, car je l'avais trouvée il y a longtemps sur le web, justement après le même problème et l'impossibilité d'ouvrir la base à cause du fichier 1 qui n'était plus en phase. ça consiste à changer des paramètres dans le "initfile" ...paramètres non référencés mais qui permettent dans la mesure ou Oracle ne supporte plus cette base (le faire donc dans une base de secours) de démarrer dans un état déphasé.

    (si je mettais la main sur ce type de démarrage ...)
    Bien sur je répète que cette manière de démarrer interdit tout support d'Oracle par la suite, donc ne pas le faire sur la prod mais sur une copie de base

    Si pour toi le cas n'est pas aussi désespéré j'espère que qqu'un trouvera pour toi quoi faire. Mais d'après moi sans l'archivelog en question (chercher dans les cassettes peut-être?) il sera difficile de démarrer en mode OPEN normal (resetlogs ou pas)

    PS: ne pas oublier les affichage type "code", on mélange les messages oracle et tes phrases

  3. #3
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    206
    Détails du profil
    Informations forums :
    Inscription : Août 2007
    Messages : 206
    Par défaut
    Dans un tel cas, si l'archivelog demandé est introuvable, il reste une solution: démarrer de manière non sécurisée; je recherche cette méthode, car je l'avais trouvée il y a longtemps sur le web, justement après le même problème et l'impossibilité d'ouvrir la base à cause du fichier 1 qui n'était plus en phase. ça consiste à changer des paramètres dans le "initfile" ...paramètres non référencés mais qui permettent dans la mesure ou Oracle ne supporte plus cette base (le faire donc dans une base de secours) de démarrer dans un état déphasé.

    tu veux dire que parametrer le pfile av un nouveau datafile system?

  4. #4
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 13
    Par défaut
    J'ai modifié en juillet la ligne compatible=9.2.0.0.0 en 10.0.0.0.0

    mon pfile actuel :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    O7_DICTIONARY_ACCESSIBILITY = TRUE
    aq_tm_processes = 0
    background_dump_dest = d:\database\PROD\bdump
    compatible = 10.0.0.0.0
    control_files = ('d:\database\PROD\control01.ctl', 'd:\database\PROD\control02.ctl', 'd:\database\PROD\control03.ctl')
    core_dump_dest = d:\database\PROD\cdump
    db_block_size = 8192
    db_cache_size = 50331648
    db_domain = ''
    db_file_multiblock_read_count = 16
    db_name = PROD
    db_writer_processes = 2
    fast_start_mttr_target = 300
    instance_name = PROD
    java_pool_size = 62914560
    job_queue_processes = 10
    large_pool_size = 8388608
    log_archive_format = 'PROD_%t_%s_%r.arc'
    log_archive_dest_1 = 'LOCATION=d:\database\PROD\Archivelog'
    open_cursors = 300
    pga_aggregate_target = 104857600
    processes = 150
    query_rewrite_enabled = FALSE
    remote_login_passwordfile = EXCLUSIVE
    sga_max_size = 524288000
    shared_pool_size = 209715200
    sort_area_size = 524288
    star_transformation_enabled = FALSE
    timed_statistics = TRUE
    undo_management = AUTO
    undo_retention = 10800
    undo_tablespace = RBS
    user_dump_dest = d:\database\PROD\udump
    recyclebin = ON
    db_recovery_file_dest = d:\database\flash_recovery_area
    DB_RECOVERY_FILE_DEST_SIZE = 5G
    DB_FLASHBACK_RETENTION_TARGET = 1440

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Citation Envoyé par lca94 Voir le message
    Dans un tel cas, si l'archivelog demandé est introuvable, il reste une solution: démarrer de manière non sécurisée; je recherche cette méthode, car je l'avais trouvée il y a longtemps sur le web, justement après le même problème et l'impossibilité d'ouvrir la base à cause du fichier 1 qui n'était plus en phase. ça consiste à changer des paramètres dans le "initfile" ...paramètres non référencés mais qui permettent dans la mesure ou Oracle ne supporte plus cette base (le faire donc dans une base de secours) de démarrer dans un état déphasé.
    C'est _allow_resetlogs_corruption à utiliser qu'en qu'à d'absolu nécessité et JAMAIS en prod.

    Il faut comprendre que si tu n'appliques pas les redos ça veut dire que les tablespaces sont désynchronisés donc éventuellement que des données sont corrompu. Pour faire simple, ta base est démarré mais les données sont incorrectes. Si c'est juste pour faire du test ou essayer de reconstituer des données c'est très bien mais si tu veux repartir de là pour faire des tests fonctionnels tu peux oublier

  6. #6
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 13
    Par défaut
    En fait je souhaite répliquer ma base de prod sur une machine de test.
    base de prod (Sous Win2K3) :
    ORA_HOME=c:\oracle\
    ORA_DATA=d:\database\[SID]

    et sur la machine de test j'ai la même install de ORA_HOME et ORA_DATA. J'ai simplement créé un listener correspondant à la machine de test et précisé le tnsnames.ora

    Ensuite sur la machine de test :
    1) récupération de la base à chaud de la machine de, prod
    2)récupération des archivelog généré depuis la sauvegarde à chaud
    -> Les fichiers de contrôle sont bien dupliqué.
    3) Je crée le service avec oradim sur Ok
    4) Je me connecte sous sqlplus :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    connect sys/***@base as sysdba Ok
    startup mount; OK
    RECOVER DATABASE USING BACKUP CONTROLFILE; C'est là que ca plante. Sous Oracle 9i ca fonctionnait !!

    PS : je peux réaliser de nouvelles sauvegardes à chaud si elles sont pas correctent. Mais la je sais pas si c'est à la sauvegarde que le soucis se pose ou à la restauration ?

    Voici mon script de sauvegarde à chaud :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    spool D:\DATABASE\SAUVEGARDE\CHAUD\PROD\RapportPROD.log
    set serveroutput on
    set echo off
    set linesize 255
    set feedback off
    set verify off
    prompt **********************************************************************
    prompt * Fichier : D:\DATABASE\SAUVEGARDE\CHAUD\PROD\ouvertePROD.sql                *
    prompt *                                                                    *
    prompt * sauvegarde a chaud de la base PROD                          *
    prompt * Auteur : wattman                                     *
    prompt * Derniere Modif : 21/07/2005                                        *
    prompt **********************************************************************
    connect sys/***@PROD as sysdba
    prompt ***** DEBUT DE SAUVEGARDE A CHAUD *****
    select SUBSTR(GLOBAL_NAME, 0, 50) INSTANCE, to_char(sysdate,'DD/MM/YYYY HH24:MI:SS') DEBUT from global_name;
    archive log list;
    alter system switch logfile;                                                                                                                                                                                                                       
    alter tablespace SYSTEM begin backup;                                                                                                                                                                                                                                                                                                                                                                                          
    host xcopy D:\DATABASE\PROD\SYSTEM.DBF D:\DATABASE\SAUVEGARDE\CHAUD\PROD\ /s /h /r /D /Y                                                                                                                                                                     
    alter tablespace SYSTEM end backup;                                                                                                                                                                                                                            
    alter tablespace RBS begin backup;                                                                                                                                                                                                                             
    host xcopy D:\DATABASE\PROD\RBS.DBF D:\DATABASE\SAUVEGARDE\CHAUD\PROD\ /s /h /r /D /Y                                                                                                                                                                        
    alter tablespace RBS end backup;                                                                                                                                                                                                                               
    alter tablespace SYSAUX begin backup;                                                                                                                                                                                                                          
    host xcopy D:\DATABASE\PROD\SYSAUX.DBF D:\DATABASE\SAUVEGARDE\CHAUD\PROD\ /s /h /r /D /Y                                                                                                                                                                     
    alter tablespace SYSAUX end backup;                                                                                                                                                                                                                            
    alter tablespace TOOLS begin backup;                                                                                                                                                                                                                           
    host xcopy D:\DATABASE\PROD\TOOLS.DBF D:\DATABASE\SAUVEGARDE\CHAUD\PROD\ /s /h /r /D /Y                                                                                                                                                                      
    alter tablespace TOOLS end backup;                                                                                                                                                                                                                             
    alter tablespace DATA begin backup;                                                                                                                                                                                                                            
    host xcopy D:\DATABASE\PROD\DATA.DBF D:\DATABASE\SAUVEGARDE\CHAUD\PROD\ /s /h /r /D /Y                                                                                                                                                                       
    alter tablespace DATA end backup;                                                                                                                                                                                                                              
    alter tablespace INDX begin backup;                                                                                                                                                                                                                            
    host xcopy D:\DATABASE\PROD\INDX.DBF D:\DATABASE\SAUVEGARDE\CHAUD\PROD\ /s /h /r /D /Y                                                                                                                                                                       
    alter tablespace INDX end backup;                                                                                                                                                                                                                              
    alter tablespace HISTO begin backup;                                                                                                                                                                                                                           
    host xcopy D:\DATABASE\PROD\HISTO.DBF D:\DATABASE\SAUVEGARDE\CHAUD\PROD\ /s /h /r /D /Y                                                                                                                                                                      
    alter tablespace HISTO end backup;                                                                                                                                                                                                                             
    alter database backup controlfile to 'D:\DATABASE\SAUVEGARDE\CHAUD\PROD\CTRL\control.ctl' REUSE;
    alter system switch logfile;
    archive log list;
    prompt ***** FICHIERS DE PARAMETRES*****
    prompt xcopy "D:\DATABASE\PROD\PFILE\*.*" "D:\DATABASE\SAUVEGARDE\CHAUD\PROD\PFILE\" /s /h /r /D /Y
    host xcopy "D:\DATABASE\PROD\PFILE\*.*" "D:\DATABASE\SAUVEGARDE\CHAUD\PROD\PFILE\" /s /h /r /D /Y
    prompt xcopy "D:\DATABASE\PROD\SPFILEPROD.ora" "D:\DATABASE\SAUVEGARDE\CHAUD\PROD\SPFILE\" /s /h /r /D /Y
    host xcopy "D:\DATABASE\PROD\SPFILEPROD.ora" "D:\DATABASE\SAUVEGARDE\CHAUD\PROD\SPFILE\" /s /h /r /D /Y
    prompt ***** FIN DE SAUVEGARDE A CHAUD *****
    select SUBSTR(GLOBAL_NAME, 0, 50) INSTANCE, to_char(sysdate,'DD/MM/YYYY HH24:MI:SS') FIN from global_name;
    spool off
    exit

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    pourquoi USING BACKUP CONTROLFILE ? Il suffit de faire un RECOVER avec toutes les archives + les redos courant de la prod

    C'est une standby database que tu veux ? Si c'est le cas la procédure n'est pas correcte

    Pour les sauvegardes à chaud tu as RMAN sinon qui est bien plus simple

  8. #8
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 13
    Par défaut
    En 9i je sauvegardai les datafiles, achivelog et fichier de contrôle. Cela me permettait de remonter la base sur une autre machine.

    Dans mon cas je n'es pas besoin du standby database. On a pris le choix de virtualiser le serveur oracle et de le cloner avec drbd sur un autre serveur.

    Je souhaite plutot faire une sauvegarde à chaud de ma base 10g. Soit avec mes anciens scripts 9i ou avec rman pour pouvoir remonter des bases d'essai sur un autre pc ou si dans le cas d'un crash ou incident divers pouvoir remonter ma base à achivelog-1 ou à un instant déterminé.

    Mais la je souhaiterais passer dans un premier temps par les scripts que javais généré sous 9i car ils sont dynamiques et gère plusieurs bases.

    Y'a t'il quelques chose que j'aurai oublié dans la sauvegarde ?


    PS : voici le résultat de la commande RECOVER DATABASE


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ConnectÚ Ó une instance inactive.
    Instance ORACLE lancÚe.
     
    Total System Global Area  524288000 bytes
    Fixed Size                  1249968 bytes
    Variable Size             465571152 bytes
    Database Buffers           50331648 bytes
    Redo Buffers                7135232 bytes
    Base de donnÚes montÚe.
    SQL> recover database
    ORA-00283: session de rÚcupÚration annulÚe pour cause d'erreurs
    ORA-01610: rÚcupÚration Ó l'aide de l'option BACKUP CONTROLFILE Ó exÚcuter

  9. #9
    Membre averti
    Inscrit en
    Mars 2003
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Mars 2003
    Messages : 13
    Par défaut
    L'archivelog contenant la séquence 779 date de Juin 2008. J'ai des scripts automatique qui garde les archivelog de 7 jours précédent une sauvegarde à froid (qui est elle hebdomadaire).

    J'ai migré en juin la base de production 9i en 10g (on a le support oracle).

    Donc vu que c'est une petite base (2go) j'avais créé un nouveau script de création de base oracle et ensuite j'ai fait un import d'un dump de la 9i.

    Je réutilise maintenant des scripts de 9i de sauvegarde à chaud (vu en formation ENI) pour sauvegarder ma 10g et je suis bloqué pour remonter une base de secours 10g pour une procédure de test.

    C'est pourquoi je souhaiterais savoir si il n'y aurai pas des modifications à apporter sur ma base de production 10g pour que ceci refonctionne comme sous 9i.


    PS : voici les scripts que j'utilise :
    http://wattman44.dnsalias.net/index2...=O&P3=&P4=&P5=

Discussions similaires

  1. Réponses: 2
    Dernier message: 02/05/2011, 15h15
  2. Recover database en forçant la date
    Par mikous dans le forum Administration
    Réponses: 0
    Dernier message: 08/12/2008, 13h29
  3. ORA-00905 sur un recover database
    Par moi26 dans le forum Administration
    Réponses: 22
    Dernier message: 10/01/2008, 11h11
  4. recover database sur oracle7
    Par moi26 dans le forum Oracle
    Réponses: 1
    Dernier message: 11/10/2007, 16h40
  5. recover database ne trouve pas ses archives logs
    Par sachanwl dans le forum Oracle
    Réponses: 2
    Dernier message: 23/12/2006, 12h45

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