Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  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
    Inscrit en
    juillet 2003
    Messages
    3 581
    Détails du profil
    Informations forums :
    Inscription : juillet 2003
    Messages : 3 581
    Points : 4 486
    Points
    4 486

    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 Marius Nitu
    Ingénieur développement logiciels
    Inscrit en
    octobre 2007
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Nom : Homme Marius Nitu
    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 580
    Points : 8 297
    Points
    8 297

    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 :
    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 :
    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •