p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Invité de passage
    Inscrit en
    juillet 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : juillet 2012
    Messages : 6
    Points : 0
    Points
    0

    Par défaut [11g] Déplacer mes tables dans un autre schéma / tablespace

    Bonjour à tous,

    j'ai été amené à travailler avec Oracle 11g sur un gros projet alors que je n'avais jamais utilisé que MySQL (non innodb) sur des petits projets faciles.

    J'ai donc commencé un peu en tatonnant à créer mes tables avec SQL Developer.
    Pour ce faire, j'ai créé une connexion avec le username "SYSTEM" dans SQL Developer et j'ai créé toutes mes tables.

    Je sais que j'ai un peu fait les chose à l'envers - au bébut c'était plutôt juste des essais puis j'ai continué en laissant cette réflexion de côté...

    Je ne suis pas très familiarisé avec les USER/SCHEMA et les TABLESPACE mais j'ai bien l'impression que mes tables ne sont pas où elles devraient être !!!

    USER/SCHEMA :
    Pour le projet, mes tables devront être accessibles via une interface web. Je pense donc créé un USER qui sera identifié par la base de données.
    Si j'ai bien compris, quand je vais créer le USER, un SCHEMA correspondant sera créé.
    Et un SCHEMA étant une collection d'objet, est-ce que c'est bien dans ce schéma que devraient se trouver mes tables ?

    TABLESPACE :
    Quel rapport entre le SCHEMA et le TABLESPACE ? Est-ce que ce USER (que j'aurai créé) doit avoir son propre TABLESPACE ?
    Et donc, est-ce que je dois créé un nouveau TABLESPACE pour ce USER et y mettre toutes mes tables ?
    Si oui, il y a-t-il moyen d'exporter toutes mes tables (structure, data, PK, UK, FK, index, ...) du tablespace SYSTEM vers un autre tablespace ?
    Si non, j'imagine que c'est parce que ça n'a rien à voir ! Alors, comment déplacer mes tables du schema SYSTEM vers le schema que j'aurai créé (en créant le USER) ?

    Voilà... un message un peu long...
    Merci à ceux qui voudront bien m'aiguiller un peu !

    (°-°)

  2. #2
    McM
    McM est déconnecté
    Expert Confirmé Sénior

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    juillet 2003
    Messages
    3 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : juillet 2003
    Messages : 3 793
    Points : 5 791
    Points
    5 791
    Billets dans le blog
    1

    Par défaut

    USER=SCHEMA
    Sur ta base, tu as les user SYSTEM et SYS avec lesquels tu ne dois jamais te connecter pour créer des objets.

    En règle générale, on crée un user particulier pour la gestion des tables et des procédures, et ensuite on donne les droits aux différents utilisateurs de l'application.

    TABLESPACE = espace physique
    Utilisé plus pour séparer les données physiquement et pour la maintenance.
    Par contre certains tablespace ne doivent pas être utilisés (genre SYSTEM)
    en règle générale, on crée un tablespace DONNEES dans lequel on met les tables, et un tablespace INDEXES dans lequel on met les indexes.
    Le déplacement d'objets d'un tablespace à l'autre est facile avec la commande MOVE.
    More Code : More Bugs. Less Code : Less Bugs

  3. #3
    Expert Confirmé Sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    octobre 2007
    Messages
    4 945
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : octobre 2007
    Messages : 4 945
    Points : 9 810
    Points
    9 810

    Par défaut

    Citation Envoyé par McM Voir le message
    USER=SCHEMA
    ...
    TABLESPACE = espace physique...
    Non, fait partie des Logical Storage Structures

  4. #4
    Invité de passage
    Inscrit en
    juillet 2012
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : juillet 2012
    Messages : 6
    Points : 0
    Points
    0

    Par défaut

    J'ai créé un tablespace "data" (pour les tables) et un tablespace "indx" (pour les index).
    J'ai créé un USER dont le tablespace par défaut est "data" avec quota illimité.

    Et en ce qui concerne les TABLESPACE, il faut que je déplace mes tables avant ou après les avoir changer de schema ?

    Et pour changer mes tables de schema, j'ai trouvé ceci dans un autre topic :

    Export de mon schéma X (SYSTEM) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    expdp system/xxxxxxx
    SCHEMAS=SYSTEM DIRECTORY=data_pump_dir
    DUMPFILE=SYSTEM.dmp
    LOGFILE=expdpSYSTEM.log
    Import dans mon schéma Y :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    impdp system/xxxxxxx
    DIRECTORY=data_pump_dir
    DUMPFILE=SYSTEM.dmp
    LOGFILE=impdpSYSTEM.log
    REMAP_SCHEMA=SYSTEM:SCHEMA_Y
    Mais dans ce cas, cela va importer tous les objets SYSTEM or je ne veux "déplacer" que mes tables de données.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/09/2009, 09h54
  2. [AC-2007] déplacer un enregistrement dans une autre table
    Par botk62 dans le forum VBA Access
    Réponses: 1
    Dernier message: 03/07/2009, 20h40
  3. [9i]Copie de table dans un autre schéma.
    Par sali dans le forum Oracle
    Réponses: 5
    Dernier message: 10/02/2006, 07h52
  4. Déplacer un fichier dans un autre répertoire
    Par t_om84 dans le forum Général Python
    Réponses: 2
    Dernier message: 16/05/2005, 09h36
  5. concatenation des données d'une table dans une autre
    Par Fabby69 dans le forum MS SQL-Server
    Réponses: 6
    Dernier message: 04/10/2004, 11h38

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