web-dev-qa-db-fra.com

À Oracle, comment déplacez-vous un schéma à un espace de table différent?

J'ai remarqué qu'un schéma a été créé dans la table des utilisateurs, mais notre règle locale est que cela devrait être dans un espace de table en soi. À Oracle, comment déplacez-vous un schéma à un espace de table différent?

5
Stuart Woodward

Un schéma lui-même ne peut pas être stocké ni ne peut avoir changé de tablespace EN Bloc de quelque manière que ce soit. En fait, c'est juste une méta-structure. À la place - il y a DEFAULT TABLESPACE attribut du sous-jacent USER. Si vous le modifiez, les nouveaux objets sont créés dans cette zone de table par défaut (sauf si vous ne spécifiez pas un autre).

De plus, chaque type de structure (table/index/partition ...) a sa propre façon de passer à un autre espace de table. (C'est-à-dire. Déplacement d'une table ne déplace pas les index intégrés - qui seraient plutôt indésirables, car vous souhaitez stocker des index dans un autre système de fichiers pour une meilleure performance). Cela signifie que vous devrez déplacer le contenu de l'objet de schéma par objet.

7
Iľja

Pour 10 et 11g, utilisez Utilitaire de pompe à données. Suivez le tutoriel ici:

http://techxploration.blogspot.com.au/2012/10/changing-tablespace-of-oracle-schema.html

C'est le plus sûr sinon la meilleure façon de le faire.

2
ai10

J'ai essayé de nombreux scripts mais je n'ai pas travaillé pour tous les objets. Vous ne pouvez pas déplacer des objets en clusters d'un tablespace à un autre, car vous devrez utiliser le FDDP. Je vais donc suggérer que le DEPDP est la meilleure option pour déplacer tous les objets à différents tablesAPCE.

Vous trouverez ci-dessous la commande.

Nohup expdp\"/ comme sysdba \" annuaire = test_dir bennefile = users.dmp logfile = users.log tableespaces = users &

Pour une explication claire: https://www.orahow.com/2018/06/move-all-objects-a-another-tablespace.html

0
santosh tiwary