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 :

Déplacement de données 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 éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 750
    Par défaut Déplacement de données d'un tablespace à un autre
    Bonjour,

    je suis sur une base 9i et j'aimerais déplacer toutes les données d'un USER se trouvant sur un tablespace TB1 ver un tablespace TB2.

    Comment puis-je faire cela?

    merci d'avance pour vos réponses

  2. #2
    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
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Si l' utilisateur n' écrit que dans un seul TBS (TB1) celui par défaut,
    le plus simple est :

    - export owner=...
    - suppression utilisateur
    - création utilisateur , TBS TB2 par défaut
    - Mettre un Quota à 0 pour l' utilisateur sur TB1
    - import fromuser=user touser=user

    s' il écrit dans plusieurs TBS, un alter table move
    permet de déplacer des tables d' un tbs à un autre
    (avec reconstruction des index nécessaires )

    cela est toujours vrai en oracle9, en oracle10 et oracle 11 il existe peut-être
    d' autres outils ...

    cdlt

  3. #3
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Citation Envoyé par ducho Voir le message
    Bonjour,

    Si l' utilisateur n' écrit que dans un seul TBS (TB1) celui par défaut,
    le plus simple est :

    - export owner=...
    - suppression utilisateur
    - création utilisateur , TBS TB2 par défaut
    - Mettre un Quota à 0 pour l' utilisateur sur TB1
    - import fromuser=user touser=user
    Ou bien, plus simple, plutôt que de supprimer et recréer l'utilisateur, juste changer son tablespace par défaut devrait suffire
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  4. #4
    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
    Billets dans le blog
    1
    Par défaut
    Ou bien, plus simple, plutôt que de supprimer et recréer l'utilisateur, juste changer son tablespace par défaut devrait suffire
    Cela suiffira pour les objets futurs mais cetainement pas pour ceux qui sont déjà dans TB1 ..
    ou alors c' est une super nouveauté d' Oracle10 ou 11 !!!!

  5. #5
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Citation Envoyé par ducho Voir le message
    Cela suiffira pour les objets futurs mais cetainement pas pour ceux qui sont déjà dans TB1 ..
    ou alors c' est une super nouveauté d' Oracle10 ou 11 !!!!
    Ca ne marcherait pas juste en enlevant le quota sur l'ancien tablespace pour le forcer à tout réimporter dans le nouveau ?
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  6. #6
    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
    Billets dans le blog
    1
    Par défaut
    Et bien non,
    le tablespace n' est qu' une enveloppe logique, il faut bien faire une action physique pour que les données passent d' un datafile à un autre ..
    Oracle ne fait rien tout seul .

    Si tu mets le quota à 0 sur TB1 pour le USER, oracle n' écrira plus dedans mais laissera les objets existants dedans sans les migrer .

    Dans la doc utilities , il y a un exexmple de migration de Tablespace pour un utilisateur
    This scenario can be used to move a user's tables from one tablespace to another.

    For example, you need to move joe's tables from tablespace A to tablespace B after a full database export. Follow these steps:

    If joe has the UNLIMITED TABLESPACE privilege, revoke it. Set joe's quota on tablespace A to zero. Also revoke all roles that might have such privileges or quotas.

    Role revokes do not cascade. Therefore, users who were granted other roles by joe will be unaffected.

    Export joe's tables.
    Drop joe's tables from tablespace A.
    Give joe a quota on tablespace B and make it the default tablespace for joe.
    Import joe's tables. (By default, Import puts joe's tables into
    tablespace B.)
    Cdlt

  7. #7
    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
    Citation Envoyé par ducho Voir le message
    s' il écrit dans plusieurs TBS, un alter table move
    MOVE et REBUILD c'est bien mieux que exp/imp quand même

Discussions similaires

  1. [Oracle 8.1.7] Copier les données d'un tablespace
    Par bobunny dans le forum Oracle
    Réponses: 2
    Dernier message: 01/12/2005, 14h34
  2. TRansférer des données d'une table à l'autre
    Par kernel57 dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 06/10/2005, 14h05
  3. Conserver des données d'une page à une autre...
    Par Angeldu74 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 24/08/2005, 14h15
  4. Déplacement de donné
    Par dirthangel dans le forum Langage
    Réponses: 13
    Dernier message: 29/07/2005, 03h04
  5. Déplacement de données mais dans scalaire
    Par siaoly dans le forum Langage
    Réponses: 1
    Dernier message: 27/07/2005, 00h30

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