Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Import/Export
Import/Export Forum d'entraide sur les outils d'import/export Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2007, 12h19   #1
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 4
Points : 4
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
KhaoOs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 11h17   #2
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
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:


Citation:
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.

--------------------------------------------------------------------------------
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 16h13   #3
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 52
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juin 2007
Messages : 52
Points : 37
Points : 37
De plus tu as utilisé
Code :
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
lapincretin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 18h03   #4
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 4
Points : 4
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.
KhaoOs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/10/2007, 18h28   #5
Invité de passage
 
Inscription : octobre 2007
Messages : 6
Détails du profil
Informations forums :
Inscription : octobre 2007
Messages : 6
Points : 4
Points : 4
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
KhaoOs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/10/2007, 11h24   #6
Nouveau Membre du Club
 
Inscription : juin 2007
Messages : 52
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : juin 2007
Messages : 52
Points : 37
Points : 37
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 :
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 ...
lapincretin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h44.


 
 
 
 
Partenaires

Hébergement Web