Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/09/2008, 14h41   #1
Membre confirmé
 
Inscription : mars 2007
Messages : 750
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 750
Points : 277
Points : 277
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
farenheiit est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 15h02   #2
Membre expérimenté
 
Homme Didier Duchossoir
Administrateur de base de données
Inscription : mars 2003
Messages : 582
Détails du profil
Informations personnelles :
Nom : Homme Didier Duchossoir
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 : 582
Points : 536
Points : 536
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
ducho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 16h05   #3
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
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/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 16h19   #4
Membre expérimenté
 
Homme Didier Duchossoir
Administrateur de base de données
Inscription : mars 2003
Messages : 582
Détails du profil
Informations personnelles :
Nom : Homme Didier Duchossoir
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 : 582
Points : 536
Points : 536
Citation:
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 !!!!
ducho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 17h53   #5
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
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/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 18h10   #6
Membre expérimenté
 
Homme Didier Duchossoir
Administrateur de base de données
Inscription : mars 2003
Messages : 582
Détails du profil
Informations personnelles :
Nom : Homme Didier Duchossoir
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 : 582
Points : 536
Points : 536
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
Citation:
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
ducho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 19h04   #7
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
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
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h43.


 
 
 
 
Partenaires

Hébergement Web