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 31/03/2008, 15h57   #1
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
Par défaut Déplacement user (+ tables et index) de Tablespace

Bonjour,
J'ai une base qui a été crée avec tous tes utilisateurs dans le tablesapce SYSTEM. Je souhaite tous les déplacer dans un autre tablespace. La commande ALTER TABLE ma_table MOVE TABLESPACE mon_tablespace fait cela de manière unitaire. Est-il possible de déplacer à la fois le USER + le contenu de son schèma?
Merci d'avance.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2008, 16h07   #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,

en oracle 9.2 , il faut traiter les utilisateurs 1 par 1 :

- export du user
- suppression du user
- création du tbs
- création du user
- quota à 0 pour le user ds le tbs system
- import du user

je ne connais pas d' autres méthodes , attention à bien mettre à 0 le quota
pour le tbs system, car lors de l' import oracle crée les objets
par odre de priorité :
1- tbs d' origine (donc system ds votre cas )
2- tbs par défaut du user

il existe peut-être d' autres solutions en oracle 10 et 11

cdlt
ducho est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2008, 17h45   #3
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
sinon une boucle sur dba_segments avec du SQL dynamique pour faire un MOVE ou un REBUILD et le tour est joué
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2008, 21h27   #4
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
Bonsoir et merci pour la réponse.
Citation:
sinon une boucle sur dba_segments avec du SQL dynamique pour faire un MOVE ou un REBUILD et le tour est joué
Auriez vous un exemple sur le code pour faire cette boucle. J'imagine que vous parlez de PL/SQL que je ne connais pas.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/03/2008, 21h53   #5
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
J'ai trouvé ce code sur le forum :
Code :
1
2
3
4
5
6
7
8
9
10
11
SELECT 'ALTER TABLE '||OWNER||'.'||SEGMENT_NAME||' MOVE TABLESPACE TS_DATA;'
      FROM  DBA_SEGMENTS
      WHERE TABLESPACE_NAME = 'TS_BASE_TEST_TEMPORAIRE'
      AND OWNER             = 'USER_TEST'
      AND SEGMENT_TYPE      = 'TABLE';
 
SELECT 'ALTER INDEX '||OWNER||'.'||SEGMENT_NAME||' REBUILD TABLESPACE TS_INDEX;'
      FROM  DBA_SEGMENTS
      WHERE TABLESPACE_NAME = 'TS_BASE_TEST_DATA_TEMPORAIRE'
      AND OWNER           = 'USER_TEST'
      AND SEGMENT_TYPE    = 'INDEX';
Je pense adapter ce code. Y a t'il une meilleure solution.
Merci pour votre aide.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/04/2008, 10h35   #6
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
Attention cependant, quand tu commences un move d'une table, tous ses indexes seront inutilisables tant que leur rebuild n'aura pas été fait
__________________
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
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h53.


 
 
 
 
Partenaires

Hébergement Web