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 :

Transportable Tablespace et TABLE_EXIST=APPEND


Sujet :

Import/Export Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Par défaut Transportable Tablespace et TABLE_EXIST=APPEND
    Bonjour,

    J'essaye de generer beaucoup de donnees (plus ou moins random). Ca, ca va. Pour aller plus vite, je me suis dit que c'etait peut-etre possible de copier/coller directement les datafiles, ca me ferait des doublons, mais vu le temps gagne je m'en accomode. Bien entendu, un bete copie colle ne fonctionne pas.
    Du coup je me suis penche du cote de datapump.

    En gros, pour le moment j'ai ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    SYS@minilhc AS SYSDBA>select table_name, tablespace_name,blocks from dba_tables where table_name='TMP' and owner='TMP';
    TABLE_NAME                     TABLESPACE_NAME                    BLOCKS
    ------------------------------ ------------------------------ ----------
    TMP                            TEST_IMPORT                         33883
     
    SYS@minilhc AS SYSDBA>select count(unique n) from tmp.tmp;
    COUNT(UNIQUEN)
    --------------
             99999
     
    SYS@minilhc AS SYSDBA>select tablespace_name, file_name from dba_data_files where tablespace_name='TEST_IMPORT';
    TABLESPACE_NAME                FILE_NAME
    ------------------------------ --------------------------------------------------------------------------------
    TEST_IMPORT                    C:\DEMO-ORACLE\TEST_IMPORT_01.DF
    Et a la fin de mon import je souhaiterai obtenir quelque chose dans ce style:
    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
    SYS@minilhc AS SYSDBA>select table_name, tablespace_name,blocks from dba_tables where table_name='TMP' and owner='TMP';
    TABLE_NAME                     TABLESPACE_NAME                    BLOCKS
    ------------------------------ ------------------------------ ----------
    TMP                            TEST_IMPORT                         67866 --Deux fois plus de blocks
     
    SYS@minilhc AS SYSDBA>select count(unique n) from tmp.tmp;
    COUNT(UNIQUEN)
    --------------
             99999 --Toujours le meme nombre, vu que ca fait des doublons
     
    SYS@minilhc AS SYSDBA>select tablespace_name, file_name from dba_data_files where tablespace_name='TEST_IMPORT';
    TABLESPACE_NAME                FILE_NAME
    ------------------------------ --------------------------------------------------------------------------------
    TEST_IMPORT                    C:\DEMO-ORACLE\TEST_IMPORT_01.DF
    TEST_IMPORT                    C:\DEMO-ORACLE\TEST_IMPORT_02.DF --Un second datafile
    J'ai essaye de faire la chose suivante:
    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
    C:\>EXPDP tmp/xxxx DIRECTORY='DATA_PUMP_DIR' DUMPFILE='test_import.dump' TRANSPORTABLE=ALWAYS TABLES='TMP.TMP'
     
    Export: Release 11.2.0.1.0 - Production on Mon Nov 14 16:30:42 2011
     
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
     
    Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
    With the Partitioning, OLAP and Real Application Testing options
    Starting "TMP"."SYS_EXPORT_TABLE_01":  tmp/******** DIRECTORY='DATA_PUMP_DIR' DUMPFILE='test_import.dump' TRANSPORTABLE=ALWAYS TABLES='TMP.TMP'
    Processing object type TABLE_EXPORT/TABLE/PLUGTS_BLK
    Processing object type TABLE_EXPORT/TABLE/TABLE
    Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
    Processing object type TABLE_EXPORT/TABLE/END_PLUGTS_BLK
    Master table "TMP"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded
    ******************************************************************************
    Dump file set for TMP.SYS_EXPORT_TABLE_01 is:
      C:\...\TEST_IMPORT.DUMP
    ******************************************************************************
    Datafiles required for transportable tablespace TEST_IMPORT:
      C:\DEMO-ORACLE\TEST_IMPORT_01.DF
    Job "TMP"."SYS_EXPORT_TABLE_01" successfully completed at 16:30:50
    Ce qui me parait pas trop mal par rapport a ce que je souhaite faire.

    Ensuite, faire un copie/colle manuel du datafile, en le renomant TEST_IMPORT_02.df.
    Et apres, lors de l'import, il me dit (avec raison) que le tablespace existe... Ligne 15
    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
    C:\>impdp tmp/xxxx directory='data_pump_dir' dumpfile='test_import.dump' TABLES='TMP.TMP' transport_datafiles='C:\DEMO
    -ORACLE\TEST_IMPORT_02.DF'  TABLE_EXISTS_ACTION=APPEND
     
    Import: Release 11.2.0.1.0 - Production on Mon Nov 14 16:34:49 2011
     
    Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
     
    Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
    With the Partitioning, OLAP and Real Application Testing options
    Master table "TMP"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded
    Starting "TMP"."SYS_IMPORT_TABLE_01":  tmp/******** directory='data_pump_dir' dumpfile='test_import.dump' TABLES='TMP.TMP' transport_datafiles='C:\DEM
    O-ORACLE\TEST_IMPORT_02.DF' TABLE_EXISTS_ACTION=APPEND
    Processing object type TABLE_EXPORT/TABLE/PLUGTS_BLK
    ORA-39123: Data Pump transportable tablespace job aborted
    ORA-29349: tablespace 'TEST_IMPORT' already exists
     
    Job "TMP"."SYS_IMPORT_TABLE_01" stopped due to fatal error at 16:34:51
    Est-ce que c'est simplement pas possible, et je dois necessairement passer par un dumpfile pour faire ca? Ou alors je m'y prends comme un manche?

    Merci!

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

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

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 822
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Transportable tablespace ne permet pas de faire cela. C'est tout le tablespace qui est importé, avec tous les objets. Donc le 'APPEND' ne signifie rien. Pour faire une analogie à 2 balles, tu peux amener 2 voituresdans ton garage, mais tu ne pourra pas les transformer en un camion...

    Pour doubler la taille d'une table, un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    insert /*+ append */ into T select * from T
    est probablement le plus rapide.

    Cordialement,
    Franck Pachot.

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2010
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2010
    Messages : 412
    Par défaut
    Effectivement, le nom du sujet etait tres mal choisi.

    En fait, je me disais que comme dans expdp et impdp il y a l'option TABLES, plus des options du style CONTENT=METADATA_ONLY, TABLE_EXISTS_ACTION=APPEND, il y avait peut-etre moyen de faire un import, non pas du tablespace comme l'indique betement le titre, mais bien d'une table en deplacant directement les datafiles.
    Ce qui aurait ete plus rapide que le insert, si ca ne me derange pas de perdre un peu de place.

Discussions similaires

  1. Erreur Create table lors d'un import Transport Tablespace
    Par ccaye dans le forum Import/Export
    Réponses: 3
    Dernier message: 26/05/2010, 15h46
  2. [XE/linux] Transportable tablespace
    Par booth dans le forum Administration
    Réponses: 2
    Dernier message: 10/08/2007, 13h48
  3. transport tablespace sans view function et package
    Par debdba dans le forum Administration
    Réponses: 13
    Dernier message: 25/06/2007, 11h58
  4. [O9i]Transportable Tablespace
    Par Fabien Celaia dans le forum Oracle
    Réponses: 13
    Dernier message: 19/05/2006, 17h20
  5. Réponses: 6
    Dernier message: 13/02/2006, 13h13

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