Existe-t-il un moyen pratique d'importer un schéma dans Oracle 11gR2 en utilisant un seul espace de table nouveau ou différent de celui d'où proviennent les données?
Par exemple, j'ai exporté BLOG_DATA depuis OLDDB, où toutes les données utilisateur sont stockées dans l'espace de table USERS.
Sur NEWDB, je voudrais importer le schéma BLOG_DATA, mais stocker les objets utilisateur dans l'espace de table BLOG_DATA, créé spécifiquement pour cet utilisateur.
J'ai créé l'utilisateur BLOG_DATA, créé l'espace de table BLOG_DATA et l'ai défini comme espace de table par défaut pour cet utilisateur et ajouté un quota illimité approprié.
CREATE TABLESPACE blog_data DATAFILE SIZE 1G;
CREATE USER blog_data IDENTIFIED BY secretpassword DEFAULT TABLESPACE blog_data QUOTA UNLIMITED ON blog_data;
GRANT connect,resource TO blog_data
Le schéma a été exporté depuis OLDDB avec quelque chose comme
exp blog_data/secretpassword@OLDDB file=blog_data.dmp
Après avoir lu l'excellente réponse de Phil ci-dessous, je me suis demandé :
Étant donné que les données n'ont aucun autre endroit où aller que l'espace de table par défaut - le seul espace de table sur lequel l'utilisateur dispose d'un quota - cela forcera-t-il effectivement imp à placer tous les objets utilisateur dans cet espace de table par défaut?
imp blog_data/secretpassword@NEWDB file=blog_data.dmp
Cela placerait-il alors l'intégralité du schéma blog_data dans l'espace de table blog_data sur NEWDB? Y a-t-il une raison pour laquelle cela ne fonctionnerait pas ou que je rencontrerais des problèmes avec certains objets, etc.?
mise à jour:
J'ai fait un test rapide et j'ai trouvé que c'était le cas. Imp
place les objets dans le tablespace par défaut pour cet utilisateur, à condition qu'il ne puisse pas les placer dans le tablespace d'origine (par exemple, le tablespace n'existe pas). Explication complète: http://www.dolicapax.org/?p=57
Pourtant, je suppose que l'utilisation de Data Pump comme Phil le suggère pourrait être l'option préférée.
exp
utilitaire hérité ou avecexpdp
(pompe de données)?