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 :

Restauration RMAN SET UNTIL TIME


Sujet :

Recovery Manager Oracle

  1. #1
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Juillet 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 142
    Par défaut Restauration RMAN SET UNTIL TIME
    Bonjour,

    J'ai un peu le même problème, bien que j'utilise SET UNTIL TIME :

    Je fais une sauvegarde complète de la database avec RMAN chaque nuit. Le lendemain un utilisateur crée une table puis la supprime.
    Je veux donc restaurer le tablespace contenant cett table jusqu'à l'état avant la supression.

    Voilà mes paramètres de sauvegarde et le script de sauvegarde :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT 'C:\Backup\...' MAXPIECESIZE 2G;
    CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 6 DAYS;
    CONFIGURE CONTROLFILE AUTOBACKUP ON;
    CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'C:\Backup\...';
     
    BACKUP DATABASE PLUS ARCHIVELOG;
    RESTORE DATABASE VALIDATE;
    DELETE NOPROMPT OBSOLETE;
    crosscheck backup;
    delete noprompt expired backup;
    crosscheck archivelog all;
    delete noprompt expired archivelog all;
    Je crée une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    create table simon(idtable number constraint Pk_idtable primary key, datetable date);
     
    insert into simon values(1, sysdate);
    insert into simon values(2, sysdate);
    insert into simon values(3, sysdate);
    insert into simon values(4, sysdate);
    insert into simon values(5, sysdate);
     
    commit;
    Je supprime la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DROP TABLE simon;
    Commit;
    Je restaure le tablespace judqu'à la date avant la supression :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    SQL "ALTER DATABASE OPENDATA OFFLINE IMMEDIATE";
     
    RUN
    {
    SET UNTIL TIME = "to_date('06/06/2013 15:30:00', 'DD/MM/YYYY HH24:MI:SS')";
    RESTORE TABLESPACE OPENDATA;
    RECOVER TABLESPACE OPENDATA;
    }
     
    SQL "ALTER DATABASE OPENDATA ONLINE";
    Je n'ai pas d'erreur à la restauration, mais quand je fais un select sur ma table elle n'a pas été restaurée.

    Qu'est-ce que je ne fais pas bien...?

  2. #2
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Bonjour,

    Je ne suis pas sûre qu'rman accepte un SET UNTIL TIME avec u to_date(...)
    De plus, je ne suis pas sûre non plus pour les doubles quotes, j'ai toujours mis des simples quotes...

    cf http://docs.oracle.com/cd/E11882_01/...h.htm#i1011846

    Cordialement,

    Arkhena

  3. #3
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Est-tu sûr que la table a été créée avant 15:30:00 et droppée après 15:30:00 ?
    Cordialement,
    Franck.

  4. #4
    Membre émérite Avatar de Arkhena
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 552
    Par défaut
    Bonjour,

    Juste pour dire qu'rman accepte bien un to_date dans une clause SET UNTIL TIME : http://docs.oracle.com/cd/E11882_01/...9.htm#BABEDABD

    Du coup, je ne vois pas d'où pourrait venir le problème, à part un problème de date sur le serveur peut-être ou la date donnée est postérieure au drop de la table...

    Cordialement,

    Arkhena

  5. #5
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Juillet 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 142
    Par défaut
    Bonjour,

    Désolé de ne pas avoir pu répondre hier.

    Je confirme le to_date fonctionne ainsi que les doubles quotes (sinon erreur de syntaxe).
    Du coup vous m'avez mis un doute donc j'ai refait la procédure de test :
    1. sauvegarde complète la nuit (XCf. script du 1er post)
    2. create table (15h51)

    3. plusieurs switch d'archive
    4. drop table (16h30)
    5. restauration RMAN avec set until time 16h10 (à 16h33)
    6. test de la restauration avec un select (16h34), pas de table

    L'ensemble de ces restaurations sont faites directement sur le serveur, donc normalement il ne doit pas y avoir de problème d'heure (décallage, fuseau, ...).

    J'ai ajouté une capture d'écran de chaque étape.

    Si vous avez une idée...
    Images attachées Images attachées      

  6. #6
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    En fait ce n'est pas possible de faire un recover d'un tablespace set until time. Tous les tablespace de la base doivent être consistants.
    Je suis surpris qu'il n'y ait pas d'erreur.

  7. #7
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Effectivement j'ai testé il n'y a pas d'erreur.
    Par contre le SET UNTIL TIME n'est pas considéré par le RECOVER TABLESPACE
    Le recover se fait jusque au bout.

  8. #8
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Juillet 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 142
    Par défaut
    Merci...

    Peut-on l'utiliser sur un DATAFILE, si oui comment fait-on pour connaitre le n° du datafile à restaurer?

    Ou faut-il l'utiliser utniquement sur DATABASE, si oui peut-on le faire sur une instance ouverte?

    Merci pour votre aide.

  9. #9
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Oui, seulement pour database car il faut que toute la base soit consistante.
    Pour récupérer un tablespace, il faut le récupérer dans une autre base, et ensuite importée les données désirées.
    Rman permet d'automatiser un peu ça. Dans les docs c'est Tablespace Point In time Recovery (TSPITR).

  10. #10
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Juillet 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 142
    Par défaut
    Et peut-on restaurer la database si l'instance est OPEN ?

  11. #11
    Expert confirmé
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Restaurer la base, non.
    Mais faire le TSPITR oui vu qu'il utilise une instance auxiliaure pour restaurer le tablespace en question (+SYSTEM et UNDO).

  12. #12
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Juillet 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 142
    Par défaut
    J'ai fait le test ce midi mais depuis gros problème internet, je ne pouvais plus me connecter au forum.

    La restauration de la table fonction avec une restauration de la database et l'option SET UNTIL TIME avec la date et l'heure à restaurer (avant le drop...).
    Et effectivement il faut le faire avec l'instance MOUNT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    STARTUP MOUNT
    RUN {
    SET UNTIL TIME = "to_date('13/06/2013 13:05:00', 'DD/MM/YYYY HH24:MI:SS')";
    RESTORE DATABASE;
    RECOVER DATABASE;
    }
    ALTER DATABASE OPEN RESETLOGS;
    Merci pour vos réponses et conseils.

  13. #13
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Juillet 2007
    Messages
    27
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant ERP
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 27
    Par défaut Oracle DATA BASE point-in-Time Recovery avec rman
    Pouvez-vous m'aider à avoir une procédure de restauration des archivelogs. Je m'explique:
    Je suis entrain de simuler un crache d'une production.
    Comme hypothèse:
    1- Effectuer une sauvegarde online de la base. ( sauvegarde des fs avec en debut ALTER DATABASE BEGIN BACKUP , puis à la fin ... END BACKUP)
    2- Produire de l’activité. création d'une table avec des enregistrements
    3- Faire un swictchilog. générer un archivelog pour prendre en compte cette modification
    4- Produire de l’activité. création une deuxième table avec des enregistrements
    5- Faire un swictchilog. générer un archivelog pour prendre en compte cette modification
    Simuler un crash
    a Restaurer la sauvegarde à la date du première enregistrement .


    RMAN> startup mount;

    Oracle instance started
    database mounted

    Total System Global Area 4626530304 bytes

    Fixed Size 2254056 bytes
    Variable Size 1392511768 bytes
    Database Buffers 3221225472 bytes
    Redo Buffers 10539008 bytes

    RMAN> catalog start with '/oracle/YC0/oraarch' noprompt;

    searching for all files that match the pattern /oracle/YC0/oraarch

    List of Files Unknown to the Database
    =====================================
    File Name: /oracle/YC0/oraarch/YC0arch1_11_935344581.dbf
    File Name: /oracle/YC0/oraarch/YC0arch1_12_935344581.dbf
    cataloging files...
    cataloging done

    List of Cataloged Files
    =======================
    File Name: /oracle/YC0/oraarch/YC0arch1_11_935344581.dbf
    File Name: /oracle/YC0/oraarch/YC0arch1_12_935344581.dbf

    RMAN> run {
    se2> t until time "to_date('2017-02-08-13:45:00','yyyy-mm-dd-hh24:mi:ss')";
    alloca3> te channel t1 DEVICE TYPE DISK;
    allocat4> e channel t2 DEVICE TYPE DISK;
    5> allocate channel t3 DEVICE TYPE DISK;
    a6> llocate channel t4 DEVICE TYPE DISK;
    r7> ecover database;
    release 8> channel t1;
    9> release channel t2;
    10> release channel t3;
    re11> lease channel t4;
    }12>

    executing command: SET until clause

    allocated channel: t1
    channel t1: SID=429 device type=DISK

    allocated channel: t2
    channel t2: SID=490 device type=DISK

    allocated channel: t3
    channel t3: SID=551 device type=DISK

    allocated channel: t4
    channel t4: SID=612 device type=DISK

    Starting recover at 08-FEB-17

    starting media recovery
    media recovery complete, elapsed time: 00:00:01

    Finished recover at 08-FEB-17

    released channel: t1

    released channel: t2

    released channel: t3

    released channel: t4

    RMAN> sql 'alter database open noresetlogs';

    sql statement: alter database open noresetlogs

    RMAN>

    RMAN>

    RMAN> exit

    D’après la procédure tout se passe bien sauf que ma table n'est pas restaure.

    Merci de votre aide

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

Discussions similaires

  1. [11g] rman option until time vers autre base
    Par glood1 dans le forum Recovery Manager
    Réponses: 1
    Dernier message: 26/09/2013, 16h17
  2. rman option until time vers autre base
    Par glood1 dans le forum Administration
    Réponses: 0
    Dernier message: 06/02/2013, 15h00
  3. Restaure RMAN pour Grégory BROISSARD
    Par big1 dans le forum Recovery Manager
    Réponses: 1
    Dernier message: 30/08/2006, 18h38
  4. [RESTAURATION] RMAN : conversion ASM en non-ASM
    Par yador dans le forum Recovery Manager
    Réponses: 13
    Dernier message: 15/12/2005, 13h49
  5. Tables perdues lors d'une restauration RMAN
    Par ndetroye dans le forum Recovery Manager
    Réponses: 6
    Dernier message: 09/12/2005, 17h27

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