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 :

[XMLTYPE] move d'un tablespace à un autre


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Par défaut [XMLTYPE] move d'un tablespace à un autre
    Bonjour à tous,

    je suis en train de transferer une série de LOB d'un tablespace à un autre.
    Pour les LOB pas de problème, mais pour les colonnes de type xmltype (CLOB), il n'accepte pas le simple move.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table epss_xmltemplateforms move lob(stored_form) STORE AS  (tablespace epss_data_lob)
    Ce code marche très bien avec les LOB mais pas avec les XMLTYPE(CLOB).

    Donc voilà je suis coincé.

    Si vous avez une solution, je l'accepte de suite

    Merci d'avance pour vos réponses.

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Voila ce que propose Metalink :
    * goal: How to Move XMLTYPE LobSegment To a Different Tablespace ?
    * fact: Oracle Server - Enterprise Edition 9.2.0.1



    fix:

    1. If you need to move the lob segment associated to an XMLTYPE column to
    another tablespace :

    SQL> create table test (id NUMBER, spec XMLTYPE);
    Table created.

    SQL> select table_name,column_name,segment_name from user_lobs;

    TABLE_NAME COLUMN_NAME SEGMENT_NAME
    ---------- -------------- -------------------------
    TEST SYS_NC00003$ SYS_LOB0000027563C00003$$

    SQL> select segment_name,segment_type,tablespace_name
    from user_extents
    where segment_name='SYS_LOB0000027563C00003$$';

    SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
    ------------------------- ------------ ---------------
    SYS_LOB0000027563C00003$$ LOBSEGMENT SYSTEM

    2. Use the ALTER TABLE MOVE LOB command to move the XMLDATA of the lob
    segment to another tablespace:

    SQL> alter table test move lob (spec.XMLDATA) store as test_clob
    (tablespace USERS);
    Table altered.

    SQL> select table_name,column_name,segment_name from user_lobs;

    TABLE_NAME COLUMN_NAME SEGMENT_NAME
    ---------- -------------- -------------------------
    TEST SYS_NC00003$ TEST_CLOB

    SQL> select segment_name,segment_type,tablespace_name
    from user_extents
    where segment_name='TEST_CLOB';

    SEGMENT_NAME SEGMENT_TYPE TABLESPACE_NAME
    ------------------------- ------------ ---------------
    TEST_CLOB LOBSEGMENT USERS

    3. To get the following information from the dictionary views, you need to be
    in a patched version of 9.2.0.1:

    SQL> select * from ALL_XML_TAB_COLS where table_name='TEST' ;

    OWNER TABLE_NAME COLUMN_NAME STORAGE_TYPE
    ------- ---------- ----------- -------------
    ELECTRE TEST SPEC CLOB

  3. #3
    Membre émérite

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Par défaut
    Merci à toi pour la réponse, cela fonctionne parfaitement.

    Mais d'un autre coté je dois être rouge de honte.
    Ayant un accès à metalink, je n'ai même pas pensé aller voir directement là.

    Merci quand même

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    ça mériterait un ban


  5. #5
    Membre émérite

    Homme Profil pro
    Senior Développeur JEE
    Inscrit en
    Avril 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Senior Développeur JEE
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 795
    Par défaut
    Bouuuuuu le méchant responsable SGBD


    J'aurais une autre question.

    Quels pourraient être les autres objets présents dans un tablespace à part les table, dba segment, et indexes. Je n'ai pas de partitioning.

    J'ai effectué un move de ces trois catégories d'objets.

    Mais le tablespace n'est pas tout à fait vide, il reste 200K.

    J'ai executé ce script sur la table all_tab_columns

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select 'select count(*),'''||table_name||''' from '||table_name || ' where tablespace_name=''USERS'';'  from all_tab_columns where column_name = 'TABLESPACE_NAME'
    et ensuite j'ai éxécute les différentes requêtes.
    Mais rien de bien significatif, les rows retournées étaient en rapport avec les table (user_tablespace,dba_free_space,...)


    Voilà

    D'avance merci pour vos réponses

  6. #6
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    tout est dans DBA_SEGMENTS. Si ton tablespace occupe 200k c'est probablement simplement un ou plusieurs extents alloué mais vide

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

Discussions similaires

  1. Déplacement de données d'un tablespace à un autre
    Par farenheiit dans le forum Administration
    Réponses: 6
    Dernier message: 11/09/2008, 19h04
  2. Erreur 1555 après un alter table/move tablespace
    Par Daily dans le forum Oracle
    Réponses: 4
    Dernier message: 11/10/2006, 11h39
  3. Réponses: 4
    Dernier message: 26/07/2006, 10h29
  4. Deplacer un index d'un tablespace vers un autre
    Par hkhan13 dans le forum Oracle
    Réponses: 1
    Dernier message: 03/07/2006, 09h19
  5. [Ora 9.2] Rebuild index et move tablespace
    Par scornille dans le forum Oracle
    Réponses: 1
    Dernier message: 03/02/2006, 00h41

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