Bonjour,
Je souhaite separer les index et des data afin demettre les index sur un tablesspace INDEX et les dats sur un tablespace DATA. Actuellement tout est dans USERS
Comment faire ? en utilisant datapump ?
merci
Version imprimable
Bonjour,
Je souhaite separer les index et des data afin demettre les index sur un tablesspace INDEX et les dats sur un tablespace DATA. Actuellement tout est dans USERS
Comment faire ? en utilisant datapump ?
merci
Et en quoi est-ce un problème ?
Si je voulais vraiment faire ça, et dans le cadre d'une faible volumétrie d'index (quelques dizaines de Go), je ferais l'import sans options particulières, puis je déplacerais les index avec un REBUILD.
Code:
1
2
3
4
5
6
7
8
9 set serveroutput on begin for ind in (select owner, index_name from dba_indexes where tablespace_name='USERS' order by 1, 2) loop dbms_output.put_line( 'alter index ' || ind.owner || '.' || ind.index_name || ' rebuild tablespace DATA;'); -- execute immediate 'alter index ' || ind.owner || '.' || ind.index_name || ' rebuild tablespace DATA' ; end loop; end; /
Le probleme c'est que j'ai pas le choix, la structure finale m'a ete imposée et je dois importe des datas qui initialement etaient sur un seul tablespace.
Je pourrais aussi tout importer puis faire un rebuild mais le probleme c'est qu'on m'a imposé des tablespace sur des disques differents avec un espace limité !!!
Merci pour la proc.
Il serait intéressant de savoir pourquoi on vous demande de faire ça.
Il y a bien des chances que ça ne serve strictement à rien, mais ça ne devrait pas avoir pour autant d'impact négatif, à part vous faire perdre votre temps !
Bonjour;
La solution via l'import datapump est la suivante:
Pour les Tables:
Pour les indexes:Code:impdp test/test@db10g directory=TEST_DIR logfile=imp_data.log dumpfile=EMP.dmp INCLUDE=TABLE remap_tablespace=USERS:DATA
Code:impdp test/test@db10g directory=TEST_DIR logfile=imp_index.log dumpfile=EMP.dmp INCLUDE=INDEX remap_tablespace=USERS:INDEX