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 :

Backup de tablespace avec exclusion


Sujet :

Administration Oracle

  1. #21
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 39
    Points : 37
    Points
    37
    Par défaut
    Voici l'ouput de ma commande RUN : http://pastebin.com/F0qA3AaH

    J'ai essayé de faire un until time et voici ce que ça me donne :

    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
    RMAN> RECOVER tablespace USERS until time "to_date('2012-09-11 15:30:00','YYYY-M
    M-DD HH24:MI:SS')" auxiliary destination 'D:\oradata\oraaux';
     
    Starting recover at 13/09/12
    allocated channel: ORA_DISK_1
    channel ORA_DISK_1: SID=155 device type=DISK
     
    Creating automatic instance, with SID='Ezkm'
     
    initialization parameters used for automatic instance:
    db_name=ORACLE
    db_unique_name=Ezkm_tspitr_ORACLE
    compatible=11.2.0.0.0
    db_block_size=8192
    db_files=200
    sga_target=280M
    processes=50
    db_create_file_dest=D:\oradata\oraaux
    log_archive_dest_1='location=D:\oradata\oraaux'
    #No auxiliary parameter file used
     
     
    starting up automatic instance ORACLE
     
    Oracle instance started
     
    Total System Global Area     292278272 bytes
     
    Fixed Size                     2254584 bytes
    Variable Size                100665608 bytes
    Database Buffers             184549376 bytes
    Redo Buffers                   4808704 bytes
    Automatic instance created
    Running TRANSPORT_SET_CHECK on recovery set tablespaces
    The following errors need to be fixed before peforming this command
         Violation: ORA-39932: L'index extensible SH.SUP_TEXT_IDX n'est pas entiFrem
    ent contenu dans l'ensemble transportable.
     
    Removing automatic instance
    shutting down automatic instance
    Oracle instance shut down
    Automatic instance removed
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of recover command at 09/13/2012 15:45:12
    RMAN-05072: TRANSPORT_SET_CHECK failed

  2. #22
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Un restore/recover, c'est pout récupérer toute la base. Récuperer seulement une partie pose un problème de consistence de données.
    C'est possible comme vou sl'avez fait pour récupérer un tablespace s'il est 'self-contained', mais ce n'est pas le cas ici à cause de l'index SH.SUP_TEXT_IDX.

    Et de toute façon si vous voulez récupérer seulement une table, vous ne souhaitez probablement pas restaurer tout le tablespace.

    La solution, c'est de faire un RMAN DUPLICATE pour restaurer ailleurs le tablespace en question, plus les tablespaces SYSTEM, SYSAUX et UNDO. Ensuite, vous récupérez seulement ce que vous voulez par export/import.

    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  3. #23
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 39
    Points : 37
    Points
    37
    Par défaut
    Citation Envoyé par pachot Voir le message
    Bonjour,

    Un restore/recover, c'est pout récupérer toute la base. Récuperer seulement une partie pose un problème de consistence de données.
    C'est possible comme vou sl'avez fait pour récupérer un tablespace s'il est 'self-contained', mais ce n'est pas le cas ici à cause de l'index SH.SUP_TEXT_IDX.

    Et de toute façon si vous voulez récupérer seulement une table, vous ne souhaitez probablement pas restaurer tout le tablespace.

    La solution, c'est de faire un RMAN DUPLICATE pour restaurer ailleurs le tablespace en question, plus les tablespaces SYSTEM, SYSAUX et UNDO. Ensuite, vous récupérez seulement ce que vous voulez par export/import.

    Cordialement,
    Franck.
    Merci

    Dans ce cas la c'est seulement une table à restaurer, mais quand ça sera réellement en place, il s'agira de restaurer des schéma avec plus de 2000 tables, je restaurerai tout le tablespace en cas de perte de données, car cela va me prendre trop de temps de chercher les tables en question.. vu la complexité de la structure de la base.

  4. #24
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 741
    Points
    741
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Pour vérifier que tous les objets sont ds un seul TBS (self-contained) comme le précise PACHOT , la doc (encore elle ) donne :


    How RMAN TSPITR Works With an RMAN-Managed Auxiliary Instance
    Having selected tablespaces from the recovery set, an auxiliary destination and a target time, you are now ready to perform Fully Automated RMAN TSPITR (default). The automated mode of RMAN TSPITR shares many of these high-level processing steps.
    RMAN TSPITR automatically performs the following actions:
    1.If the tablespaces in the recovery set have not been dropped, checks to see if they are self-contained by executing the DBMS_TTS.TRANSPORT_SET_CHECK for the recovery set tablespaces and then checking that the view TRANSPORT_SET_VIOLATIONS is empty. If the query returns rows, RMAN stops TSPITR processing. You must resolve any tablespace containment violations before TSPITR can proceed. Example 21-1 shows you how to set up and run the query before invoking RMAN TSPITR.

    je lis la doc en même temps car c'est une partie que je ne maitrise pas complétement, elle est assez claire .
    cdlt

  5. #25
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Citation Envoyé par linux_sql Voir le message
    mais quand ça sera réellement en place, il s'agira de restaurer des schéma avec plus de 2000 tables, je restaurerai tout le tablespace en cas de perte de données,
    Alors il faut s'assurer que l'ensemble de tablespace à restaurer est 'self-contained' avec DBMS_TTS.TRANSPORT_SET_CHECK
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  6. #26
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2011
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2011
    Messages : 39
    Points : 37
    Points
    37
    Par défaut
    Merci pour vos réponses.

    Voici les actions que j'ai effectuées :

    1) J'ai d'abord testé si le tablespace est self contained :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    SQL> EXECUTE DBMS_TTS.TRANSPORT_SET_CHECK ('TEST8',TRUE);
     
    PL/SQL procedure successfully completed.
     
    SQL> SELECT * FROM TRANSPORT_SET_VIOLATIONS;
     
    no rows selected
    2) J'ai lancé un backup de ma base de données.

    J'ai supprimé un élement dans une table, et j'ai essayé de restaurer le tablespace en question comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RMAN> RECOVER tablespace TEST8 until time "to_date('2012-09-14 8:00:00','YYYY-MM
    -DD HH24:MI:SS')" auxiliary destination 'D:\oradata\oraaux';
    Sauf que j'ai des erreurs de ce type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    the file name for datafile 9 is missing in the control file

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    RMAN-00571: ===========================================================
    RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
    RMAN-00571: ===========================================================
    RMAN-03002: failure of recover command at 09/14/2012 09:07:04
    RMAN-03015: error occurred in stored script Memory Script
    RMAN-03009: failure of sql command on clone_default channel at 09/14/2012 09:06:
    59
    RMAN-11003: failure during parse/execution of SQL statement: alter database data
    file  9 online
    ORA-01516: le fichier journal, le fichier de donnTes ou le fichier temporaire "9
    " n'existe pas
    Le log complet ici : http://pastebin.com/3ih5AEVG

    Merci pour votre aide

Discussions similaires

  1. [Access 2003] Sélection d'un table avec exclusion
    Par morpheez dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/11/2006, 11h16
  2. Requête avec exclusion
    Par illegalsene dans le forum Langage SQL
    Réponses: 5
    Dernier message: 01/02/2006, 11h07
  3. Utiliser un héritage avec exclusion mutuelle correctement
    Par akecoocoo dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 20/11/2005, 22h54
  4. suppresion d'une tablespace avec Oracle 8i
    Par nbo dans le forum Oracle
    Réponses: 8
    Dernier message: 01/07/2005, 16h01
  5. problème de backup des archivelogs avec RMAN
    Par 79Charles dans le forum Recovery Manager
    Réponses: 14
    Dernier message: 24/05/2005, 18h33

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