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 :

récuperer un package dropé


Sujet :

Administration Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 45
    Points : 18
    Points
    18
    Par défaut récuperer un package dropé
    Bonjour,

    Est-il possible de récuperer un package dropé ? sachant que le package a été supprimé le 16/06/2011 à 18h.

    Base : Oracle 9.2
    OS : (AIX)

    merci par vance

  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
    Malheureusement, les opérations DDL comme le DROP sont définitives, car elles sont suivies par un COMMIT implicite.

    Si vraiment la récupération de ce paquetage est vitale et que vous êtes prêt à une manipulation assez lourde, je ne vois qu'une restauration de votre base sur une machine de test pour vous sortir de ce mauvais pas.
    Après il suffira d'extraire le code source (dans DBA_SOURCE, par DBMS_METADATA ou un quelconque outil graphique), et de le rejouer sur la base de prod.
    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
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 45
    Points : 18
    Points
    18
    Par défaut
    Merci mais je n'ai pas compri votre réponse.

    Restaurer la base à partir d'un dump ? mais le dump n'existe pas.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Si tu as une ancienne sauvegarde par exp, tu peux aussi sortir uniquement le script complet de la bd qui devrait contenir ton package.
    Ça t'évitera d'avoir à créer une nouvelle bd.
    Je ne sais plus l'option précise, je n'ai pas de bd oracle à porter de main, lance une recherche.

  5. #5
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 45
    Points : 18
    Points
    18
    Par défaut
    non, le package n'est pas disponible dans une ancienne version. il a été créé cette semaine.

  6. #6
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Regarde ceci :
    Retrieve old versions of procedures with Flashback Query
    et dépèche toi car le flashback n'est possible qu'un temps limité

  7. #7
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Using Oracle Flashback Query (SELECT AS OF)
    Normalement cette requête devrait te convenir à executer sous sys (et joue autour de l'horraire):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select text 
      from dba_source as of timestamp TO_TIMESTAMP('16/06/2011 17:55:00', 'DD/MM/YYYY HH24:MI:SS')
     where OWNER = 'LE_USER'
       and name='NOM_DU_PACKAGE' 
     order by line;
    Dans sqlplus tu ne verras peut être pas tout le code.
    Pour être sûr de ne pas perdre le code (s'il est encore disponnible) le temps de mettre en place ton script spool je te conseil de le sauvegarder dans une table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    create table UN_SCHEMA_CAR_TU_NE_VEUX_PAS_CREER_UNE_TABLE_DANS_SYS.pkg_back as
    select text 
      from dba_source as of timestamp TO_TIMESTAMP('16/06/2011 17:55:00', 'DD/MM/YYYY HH24:MI:SS')
     where OWNER = 'LE_USER'
       and name='NOM_DU_PACKAGE'
     order by line;
    A priori la disponnibilité est de quelques heures à quelques jours (max 5) en fonction de l'undo management et de l'activité de la base.

  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
    Citation Envoyé par skuatamad Voir le message
    Regarde ceci :
    Retrieve old versions of procedures with Flashback Query
    et dépèche toi car le flashback n'est possible qu'un temps limité
    Excellent, je m'en veux de ne pas y avoir pensé !
    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

  9. #9
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 947
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 947
    Points : 5 846
    Points
    5 846
    Par défaut
    Au fait plutôt comme ça, en rajoutant le numéro de ligne, et pense qu'il y a aussi un header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TABLE UN_SCHEMA_CAR_TU_NE_VEUX_PAS_CREER_UNE_TABLE_DANS_SYS.pkg_back AS
    SELECT line,text 
      FROM dba_source AS of timestamp TO_TIMESTAMP('16/06/2011 17:55:00', 'DD/MM/YYYY HH24:MI:SS')
     WHERE OWNER = 'LE_USER'
       AND name='NOM_DU_PACKAGE'
     ORDER BY line;
    Excellent, je m'en veux de ne pas y avoir pensé !
    Merci, en même temps l'absence de backup n'est pas normal...

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    45
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 45
    Points : 18
    Points
    18
    Par défaut
    Merci bcp pour vos réponses,
    mais mon undo_retention=10800s soit 180min

    je dois réécrire le package.

  11. #11
    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 skuatamad Voir le message
    Normalement cette requête devrait te convenir ...
    A vrai dire, la syntaxe AS OF n'existe qu'à partir de la V10.
    En V9, il faut d'abord positionner la session en mode Flashback en précisant le point de retour en arrière, faire un SELECT ordinaire, mais qui fera référence au passé, puis repasser la session en mode normal.
    Voir un exemple ici http://helyos.developpez.com/flashback/#L4.3

    J'ajoute, pour le demandeur qui a visiblement renoncé sans même tester, que la valeur UNDO_RETENTION n'est qu'indicative par défaut, et que selon l'activité modificative subie par la base, on peut retrouver les anciennes données pendant beaucoup moins ou beaucoup plus de temps.
    J'ai même eu un cas dans lequel les données visées semblaient perdues, mais où une augmentation après coup de UNDO_RETENTION les a rendues accessibles. Elles étaient donc toujours présentes dans l'UNDO, mais il fallait un peu forcer la porte.
    Ca peut donc valoir le coup de tenter sa chance sans pessimisme.

    Ceci amène une autre question : jusqu'où peut-on réellement remonter par requête Flashback ?
    En V9, je ne connais aucun moyen, mais dès la V10, la requête suivante fournira la réponse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select min(start_timestamp) from flashback_transaction_query;
    On peut considérer cette vue comme une sorte de table externe donnant accès au contenu de l'UNDO.
    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

Discussions similaires

  1. Drop Down Menu : Récuperer le nombre des fichiers dans une répertoire
    Par slim.bouzrati dans le forum ActionScript 1 & ActionScript 2
    Réponses: 1
    Dernier message: 08/05/2012, 00h16
  2. récuperer code d'un package R
    Par emilie89 dans le forum R
    Réponses: 2
    Dernier message: 13/01/2011, 18h27
  3. Drop des index avec les packages.
    Par 6bil1 dans le forum Débuter
    Réponses: 0
    Dernier message: 09/12/2008, 13h28
  4. RJS - Récuperer la liste glisée dans le drag and drop
    Par devmassi dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 16/10/2007, 10h33
  5. Réponses: 2
    Dernier message: 24/08/2005, 11h54

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