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

Oracle Discussion :

Déplacement d'un schéma vers un tablespace


Sujet :

Oracle

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut Déplacement d'un schéma vers un tablespace
    Bonjour,

    Je souhaite, suite au passage d'un dump, déplacer un schéma (soit l'ensemble des objets d'un user) d'un tablespace vers un aute.
    J'ai trouvé plusieurs méthodes plus ou moins bonnes mais aucune ne me déplace l'ensemble des objets.

    Première méthode:
    export schema A

    drop user A cascade

    create user A identified by A default tablespace new_tablespace

    alter user A quota 0 on old_tablespace

    alter user A quota unlimited on new_tablespace

    imp userid=system file=exp.dmp fromuser=A touser=A
    http://www.odba.idv.tw/mvschema.htm

    Deuxième méthode:
    1)Select toutes les tables du schema

    select * from all_tables
    where owner = upper('SCHEMANAME');

    2)déplacer les tables vers le bon tablespace:
    select 'alter table <table_name> move tablespace <new_ts>;'
    from user_tables;


    4)Idem avec les indexes
    http://www.experts-exchange.com/Data..._21417940.html

    La première méthode est complétement infructueuses. La seconde ne me déplace pas l'ensemble des objets (views, triggers, packages, lobsegment, logindex...)
    Est-ce normal?
    Y'a-t'il une autre solution?

    Merci d'avance!

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    pour les indexes c'est REBUILD qu'il faut utiliser

    pour les sources, il faut "simplement" les recréer avec le bon user... mais ne serait-ce pas plus simple de réimporter le dump dans le bon shema ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    Pour les indexes effectivement, j'ai voulu trop simplifier
    Mais pour le dump, lorsque je recois le mien, il est pour un user particulier et pour un tablespace particulier.
    Exemple:
    user / tbs
    toto / tbs_toto
    lulu / tbs_lulu

    Lors de l'import, je peux préciser le nouveau user avec l'option:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    imp fromuser=toto touser=lulu
    s je ne peux pas préciser le nouveau tablespace (même si je précise à la création de lulu que son quota sur tbs_toto est de 0, je me retrouve quand même avec mes objets dans le tbs_toto )

  4. #4
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Je conseille d'ajouter l'option ignore=Y

    Il faut la tablespace tbs_lulu soit par défaut pour l'utilisateur lulu

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    ha oui, c'est balaud

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    J'ai rajouté l'option ignore=y lors de import et ca n'a pas changé (en passant par la méthode 1 du premier post).
    Donc je desespère

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    En fait, ce que je ne comprend pas c'est que après avoir modifier les quotas de mon user toto (tbs_toto=0m, tbs_tata=unlimited) et que je lance l'import, les tables sont inséré dans tbs_toto. Etant donné que le quota est nul, il devrait au moins me faire une erreur, ou qqc!

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    Une solution est de dropper le vieux tablespace avant l'import.
    Ca fonctionne mais je ne veux pas utiliser cette solution parce que le vieux tablesapce contient des données d'autres bases...
    c'est galère!

  9. #9
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Ese ce que tbs_lulu est la tablespace par défaut de l'utilisateur lulu ?

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    Oui.

    Mais bon, il semblerait que j'ai trouvé une solution qui me convienne à peu près:
    Can one import tables to a different tablespace?
    Oracle offers no parameter to specify a different tablespace to import data into. Objects will be re-created in the tablespace they were originally exported from. One can alter this behaviour by following one of these procedures:

    Pre-create the table(s) in the correct tablespace:

    * Import the dump file using the INDEXFILE= option
    * Edit the indexfile. Remove remarks and specify the correct tablespaces.
    * Run this indexfile against your database, this will create the required tables in the appropriate tablespaces
    * Import the table(s) with the IGNORE=Y option.

    Change the default tablespace for the user:

    * Revoke the "UNLIMITED TABLESPACE" privilege from the user
    * Revoke the user's quota from the tablespace from where the object was exported. This forces the import utility to create tables in the user's default tablespace.
    * Make the tablespace to which you want to import the default tablespace for the user
    * Import the table
    http://www.orafaq.com/faqiexp.htm#TS

    Je le teste et je mets mon résultat

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    Bon, ca ne simpifie pas le traitement mais ca marche donc je crois que je vais partir la dessus.
    Merci pour votre aide!

  12. #12
    CD
    CD est déconnecté
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Points : 151
    Points
    151
    Par défaut
    Et bien, en fait, lors de l'import, l'ordre de création se fait sur l'ancien tablespace. Il ne prend le tablespace par défaut que si l'ancien n'existe plus.

    Sinon, en utilisant Indexfiles, tu génères les ordres de création de tes objets, en changeant le tablespace, tu auras donc ta structure au bon endroit.

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    Oui, c'est ce que j'ai pu constater
    Merci, j'en sais un peu plus sur les tablespaces et les imports maintenant!

  14. #14
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 710
    Points
    710
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    je déplace mes schémas comme indiqué dans la méthode 1 .
    cela fonctionne tres bien .
    c' est d' ailleurs celle préconisée par oracle dans sa doc .

    soit : le quota n' est pas vraiment mis à zéro pour le tbs d' origine .
    soit : ce n' est pas le tbs par défaut de l' utilisateur
    soit un bug oracle ???

    dans mon cas en oracle 8.1.7.4 cela marche tres bien sans supprimer
    le tablespace d' origine (heureusement d' ailleurs )

    à vérifier les privilèges systéme attribués à l' utilisateur .

    cdlt

  15. #15
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 710
    Points
    710
    Billets dans le blog
    1
    Par défaut
    en relisant la doc sur l' import, il y a queques cas ou oracle ne crée pas
    les objets dans le tbs par défaut mais dans celui précisé dans l' export même si le quota est zéro :
    tables partitionées
    tables contenant des LOBs
    table iot

    cdlt

  16. #16
    CD
    CD est déconnecté
    Membre habitué
    Inscrit en
    Septembre 2004
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 127
    Points : 151
    Points
    151
    Par défaut
    Pour les tables partitionnées, iot, ou avec lob, la méthode est de faire l'import de la structure en utilisant le paramètre indexfiles afin de créer les tables dans le bon tablespace est la démarche à avoir pour faire les changements de tablespace.

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    98
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 98
    Points : 50
    Points
    50
    Par défaut
    Merci,
    je me trouve effectivement dans l'un des cas pour lesquels ca ne marche pas: mes tables contiennent des lobs!!!
    Au moins, je sais d'ou viens mon problème!!

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

Discussions similaires

  1. Déplacement user (+ tables et index) de Tablespace
    Par tibal dans le forum Administration
    Réponses: 5
    Dernier message: 01/04/2008, 10h35
  2. Déplacement d'une tables entre deux tablespaces
    Par hamdinebil dans le forum Administration
    Réponses: 4
    Dernier message: 19/02/2008, 11h46
  3. Export de procédures d'un schéma vers un autre
    Par dyvim dans le forum Administration
    Réponses: 17
    Dernier message: 24/11/2006, 17h02
  4. [VBA-Excel] Déplacement d'une feuille vers un autre fichier
    Par Olivier95 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2006, 11h17

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