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

Import/Export Oracle Discussion :

Problème pour récupérer les données d'un datafile


Sujet :

Import/Export Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut Problème pour récupérer les données d'un datafile
    Bonjour,

    J'explique mon problème
    je travaile sur oracle version 9.2

    j'ai supprimé un tablespace (drop tablespace ... including contents)
    j'ai conservé les datafiles, ils sont bien dans le répertoire oradata

    Conséquence du drop : la table rattachée à ce tablespace a disparu.

    étape 1 : je recrée le tablespace avec les datafiles présents dans oradata avec l'option reuse

    étape 2 : je relance le script de création de ma table

    problème : ma table est vide. Je pensais quand utilisant l'option reuse on recréé le lien entre le datafile et le tablespace et du coup on récupérait les données des tables rattachées au tablespace. (je précise je débute dans l'administration de base de données)

    Questions:

    - Comment récupérer les données de ma table?
    - le datafile présent dans oradate est-il vidé lorsque l'on drop son tablespace ?
    - Que fait l'option reuse, si on ne peut pas récupérer les données d'un datafile? surtout que l'on doit repréciser la taille alloué au datafile

    J'aimerai bien comprendre le principe en fait

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Citation Envoyé par KhaoOs Voir le message
    Bonjour,
    - Comment récupérer les données de ma table?
    Il faut restaurer la base à un instant avant la suppression du tablespace.

    Citation Envoyé par KhaoOs Voir le message
    - le datafile présent dans oradate est-il vidé lorsque l'on drop son tablespace ?
    - Que fait l'option reuse, si on ne peut pas récupérer les données d'un datafile? surtout que l'on doit repréciser la taille alloué au datafile
    L'option REUSE est documentée dans le SQL Reference:


    REUSE
    Specify REUSE to allow Oracle to reuse an existing file. You must specify REUSE if you specify a filename that already exists.

    If the file already exists, then Oracle reuses the filename and applies the new size (if you specify SIZE) or retains the original size.
    If the file does not exist, then Oracle ignores this clause and creates the file.
    Restriction on the REUSE Clause
    You cannot specify REUSE unless you have specified filename.


    --------------------------------------------------------------------------------
    Note:
    Whenever Oracle uses an existing file, the file's previous contents are lost.

    --------------------------------------------------------------------------------

  3. #3
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 46
    Points
    46
    Par défaut
    De plus tu as utilisé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    drop tablespace ... including contents
    Comme indiqué, including contents, supprime le contenu du tablespace ...

    L'option REUSE évite d'avoir une erreur spécifiant que le TABLESPACE/DATAFILE existe deja lors de sa création ...

    Les 2 commandes SQL que tu as lancé ont forcémment supprimé tes données.

    Désolé, mais comme le dis pifor tu peux sortir un bon vieux backup.

    Si tu es en 9i/10g tu peux peut etre jeter un coup d'oeil sur les fonctionnalités suivantes :
    * RECYCLEBIN
    * FLASHBACK TABLE

    Mais sans garanties

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    Merci pour ces précisions.
    La solution pour laquelle j'ai opté n'ayant pas de sauvegarde a été d'exporter les structures de mes tables d'un autre environnement (la DEV en autre)
    pour les reconstruire en recette
    Puis de réalimenter mes tables à l'aide d'un ETL.

    Dernière question : Comment faire un export uniquement des données d'un schéma ?

    je sais exporter des structures d'un schéma ou exporter les données (uniquement d'une table) mais les données (uniquement et pas les structres) d'un schéma ca je ne sais pas ?

    exemples:

    EXP userid=schéma/mdpschéma@nominstance FILE=D:\DUMP\export_full_ma_table.dump log=D:\DUMP\export_full_ma_table.log tables=schéma.ma_table


    EXP schéma/mdpschéma@nominstance file='D:\DUMP\nomschéma.dmp' log='D:\DUMP\nomschéma.log' rows=n
    OWNER=nomschéma

    Merci d'avance.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 6
    Points : 6
    Points
    6
    Par défaut
    précision : je travaille sur 3 environnements DEV-REC-PROD

    mon problème est au niveau de la recette
    je récupère les structures de DEV pour les copier en REC et je veux insérer les données de PROD dans la REC (car plus fiable et on retrouve la totalité des infos)

    d'où l'export uniquement des données de PROD et non des structures.

    Maintenant, c'est peut être impossible mais je préfère avoir un avis extérieur.
    En effet, vouloir insérer des données dans un champ qui n'existerait pas ca parait difficile...

    J'espère être plus clair

  6. #6
    Membre du Club
    Inscrit en
    Juin 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Juin 2007
    Messages : 52
    Points : 46
    Points
    46
    Par défaut
    En 10G il y a des parametres tel que data_only, metadata_only si je me souviens bien (avec l'utilitaire expdp/impdp)

    En général l'export ne pose pas de problemes, tu peux exporter un peu tout ce que tu veux ... Dans ton cas tu exportes tout un schéma ou tout une table.

    La par contre ou cela risque de coincer, c'est lors de l'import ...

    Je pense que dans ton cas, avant de lancer l'import, tu vérifies que tes tables a importer son vides (logiquement oui si tu as deja importé que la structure avec le parametres rows=n). Ensuite tu lances un import de cette manière :


    Pour un schéma :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    imp schéma/mdpschéma@nominstance file='D:\DUMP\nomschéma.dmp' log='D:\DUMP\imp_nomschéma.log' fromuser=nomschéma_source touser=nomschéma_cible rows=y ignore=y
    Avec ces paramètres :
    rows=y --> Tu importes bien les datas
    ignore=y --> Tu ignores les erreurs liées aux créations des tables, qui dans ton cas existent deja.
    fromuser / touser --> schéma source / cible .Peut etre facultatif, a voir ...


    Attention, certaines insertions vont peut etre etre refusées à cause des contraintes de clés primaires/étrangères ou triggers ...
    Pour contourner j'avais un petit script SQL qui désactivais tout ca avant l'import ...

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/11/2009, 09h37
  2. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  3. Réponses: 12
    Dernier message: 25/06/2006, 23h24
  4. Réponses: 1
    Dernier message: 07/06/2006, 18h56
  5. Réponses: 10
    Dernier message: 16/11/2005, 08h33

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