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 :

Flashback archive pour une table [11gR2]


Sujet :

Administration Oracle

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web (en formation)
    Inscrit en
    Septembre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web (en formation)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2014
    Messages : 30
    Points : 25
    Points
    25
    Par défaut Flashback archive pour une table
    Bonjour,

    J'essaye d'utiliser le flashback archive pour une table afin de pouvoir revenir à un état antérieur de cette table mais lorsque j'utilise le flashback pour revenir à l'état d'avant de cette table cela agit aussi sur d'autres tables qui ne sont pas dans l'archive, cela ne me semble pas normal du tout.

    Est-ce possible d'éviter ça ? Et comment ?

    Merci.

  2. #2
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    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 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Et quelle commande utilisez-vous pour "revenir à l'état d'avant" ?
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web (en formation)
    Inscrit en
    Septembre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web (en formation)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2014
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    J'utilise cette commande :

    EXECUTE DBMS_FLASHBACK.ENABLE_AT_TIME(sysdate- (15/1440)); --15 min

  4. #4
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    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 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Ce que vous obtenez est donc tout à fait normal !

    Cette commande généraliste (qui n'est pas spécialement liée au flashback archive) positionne votre session en lecture seule, et vous restituera les données telles qu'elles étaient un quart d'heure auparavant. Elle s'applique à tous les SELECT que vous ferez, quelle que soit la table.
    Pour les tables qui ne sont pas associées à une archive flashback, les données seront extraites du tablespace d'annulation, dans la limite de ce qu'il a en stock. Si vous essayiez par exemple de remonter 2 jours en arrière, il y a toutes les chances que ça ne fonctionne plus.

    Pour que le mode flashback s'applique uniquement pour une requête donnée, il faut utiliser une autre syntaxe basée sur AS OF :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select * from emp
    AS OF timestamp sysdate - interval '15' minute
    where deptno=30;
    Dans ce cas, votre session reste en mode normal : elle n'est pas en lecture seule, et les SELECT qui ne comportent pas la clause AS OF présenteront les données dans leur état actuel.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web (en formation)
    Inscrit en
    Septembre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web (en formation)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2014
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    D'accord,

    donc le select me permet de voir le contenu de la table 15 minutes auparavant.

    Et si je veux récupérer la table dans son état antérieur d'il y a 15 minutes mais uniquement cette table ?

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    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 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Citation Envoyé par gillout Voir le message
    Et si je veux récupérer la table dans son état antérieur d'il y a 15 minutes mais uniquement cette table ?
    Vous voulez donc remplacer les données actuelles de la table par celles qu'elle contenait il y a 15 minutes ?

    Dans ce cas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alter table emp enable row movement;
    flashback table emp to timestamp (sysdate - INTERVAL '15' minute);
    Mais ça n'a rien à voir avec le flashback archive, qui semblait être votre préoccupation initiale...
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Développeur Web (en formation)
    Inscrit en
    Septembre 2014
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur Web (en formation)
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2014
    Messages : 30
    Points : 25
    Points
    25
    Par défaut
    Bonjour,

    et merci pour tes réponses, Pomalaix.

    Oui, en effet je pensais que l'intérêt du Flashback Archive était de mettre les tables dans des archives pour pouvoir les récupérer ensuite.

    Donc pour les tables je dois utiliser la solution dont tu parles juste avant ? Ou y a t'il une autre solution pour les tables ?

    Du coup je crains d'avoir mal compris l'intérêt de ce type de Flashback, donc quel est son intérêt en fait ?

  8. #8
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 460
    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 460
    Points : 8 074
    Points
    8 074
    Par défaut
    Le flashback data archive conserve pendant une durée définie (par exemple 5 années glissantes) l'historique de toutes les modifications effectuées sur les données de la table désignée.
    Par exemple, si le salaire de SCOTT est passé au fil du temps de 2000 à 2200 puis 2500, les valeurs historiques (2000 et 2200) sont enregistrées, et accessibles en lecture seule par des requêtes flashback AS OF.
    On peut donc effectuer à volonté, avec une certitude de succès sur tout l'intervalle d'historique, une requête signifiant : montre-moi les données telles qu'elles étaient à telle date.

    Ces valeurs historiques peuvent répondre à différents besoins :
    * exigences règlementaires de conservation des données pendant une certaine durée
    * audit des modifications
    * alimentation d'une autre table à partir des valeurs d'une certaine date
    * etc.
    Consultant / formateur Oracle indépendant
    Certifié OCP 12c, 11g, 10g ; sécurité 11g

    Ma dernière formation Oracle 19c publiée sur Linkedin : https://fr.linkedin.com/learning/oracle-19c-l-administration

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

Discussions similaires

  1. augmenter la taille pour une table mysql
    Par zidenne dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/08/2006, 15h01
  2. Je n'arrive pas à un treeview pour une table Access
    Par clemasson dans le forum Access
    Réponses: 2
    Dernier message: 01/03/2006, 12h49
  3. lien pour une table qui ne doit pas etre public
    Par raslain dans le forum Oracle
    Réponses: 1
    Dernier message: 12/12/2005, 13h40
  4. Changement de tablespace pour une table
    Par slyv dans le forum Oracle
    Réponses: 5
    Dernier message: 28/04/2005, 20h46
  5. Créer une partition pour une table
    Par Erakis dans le forum SQL Procédural
    Réponses: 22
    Dernier message: 28/02/2005, 18h39

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