IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Oracle Discussion :

Table déplacée Oracle


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Table déplacée Oracle
    Bonjour à tous,

    Je souhaite déplacer une table d'une instance vers une autre partition ?
    Quelqu'un a-t-il une procédure a me donner ? Est-ce compliqué ? Faut-il obligatoirement éteindre la base ?

    merci beaucoup d'avance pour vos réponse.

    Cordialement,

    Séb.

  2. #2
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Citation Envoyé par smahieu Voir le message
    Je souhaite déplacer une table d'une instance vers une autre partition ?
    Attention au language. Est-ce une table partitionnée dont tu souhaites déplacer une ou plusieurs partitions ? Ou une table normale que tu souhaites changer de tablespace ?

    Dans les 2 cas il faut utiliser ALTER TABLE tatable MOVE ... :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE ta_table MOVE TABLESPACE ton_tbs;
    ALTER TABLE ta_table MOVE PARTITION ta_partition TABLESPACE ton_tbs;
    Cela peut être faire à chaud, la seule conséquence de cette action est que les indexes de cette table deviendront 'unusable' donc devront être rebuildés après coup. Si pendant le move, des requêtes sur cette table utilisent l'index, elles peuvent potentiellement planter à moins de positionner avant le move le paramètre skip_unusable_indexes (10g) ou _skip_unusable_indexes (9i) à true au niveau des session ou de l'instance
    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/

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 12
    Points
    12
    Par défaut Déplacement table
    Pour être plus préçis,

    Je souhaite déplacer une seule table d'un tablespace vers un autre datafile. Ect-ce possible ?

    Instance I - Tablespace T - Table Tb - Datafile DBF sur partition A
    vers
    Instance I - Tablespace T - Table Tb - Datafile DBF sur partition B

    car je souhaite isoler une grosse table sur un autre raid.

    Merci.

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    pour ça il faut créer un nouveau tablespace avec des datafiles sur l'autre disque. Tu n'as pas la possibilité de choisir le datafile dans lequel Oracle met les données... d'ailleurs des datafiles avec des stratégies disque différentes dans un même tablespace c'est pas super

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Donc je je créé un tablespace sur un autre disque avec les datafiles et que je déplace ma table vers ce nouveau datafile, ma table sera toujours opérationnelle ?

    J'ai peur que mon instance ne trouve pas la table.

  6. #6
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par smahieu Voir le message
    je déplace ma table vers ce nouveau datafile
    un nouveau tablespace qui contient un ou plusieurs datafiles : http://oracle.developpez.com/guide/a...ablespaces/#L1

    Citation Envoyé par smahieu Voir le message
    J'ai peur que mon instance ne trouve pas la table.
    Aucun risque Oracle ne fait "que" déplacer les données d'un tablespace à un autre, le dictionnaire lui ne change pas donc ta table et tous les objets et privilèges associés resteront comme avant

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    J'ai crée mon tablespace DATAZ avec son datafile.

    Lorsque je tape la commande SQL suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     SQL> alter table clduptest.alister move tablespace dataz;
    alter table clduptest.alister move tablespace dataz
                          *
    ERREUR Ó la ligne 1 :
    ORA-01950: pas de privilÞges sur le tablespace 'DATAZ'
     
    SQL>
    Comment puis-je affecter les droits (je suis connecté en sys as sysdba).
    Merci.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Points : 436
    Points
    436
    Par défaut
    Citation Envoyé par smahieu Voir le message
    J'ai crée mon tablespace DATAZ avec son datafile.

    Lorsque je tape la commande SQL suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     SQL> alter table clduptest.alister move tablespace dataz;
    alter table clduptest.alister move tablespace dataz
                          *
    ERREUR Ó la ligne 1 :
    ORA-01950: pas de privilÞges sur le tablespace 'DATAZ'
     
    SQL>
    Comment puis-je affecter les droits (je suis connecté en sys as sysdba).
    Merci.
    Le propriétaire de la table doit avoir des quotas sur le tablespace DATAZ
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alter user user_name
    quota unlimited on DATAZ
    Consultant et formateur Oracle

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Merci pour votre réponse, mais j'ai toujours la même erreur.
    ?????

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 354
    Points : 436
    Points
    436
    Par défaut
    Avez-vous fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    alter user clduptest
    quota unlimited on dataz
    Consultant et formateur Oracle

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Effectivement j'avais mal écrit. Merci
    suite à cela j'exécute le move sur ma table vers le nouveau tablespace, si on peut le faire à chaud, pourquoi oracle m'indique cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    SQL> alter table cldupont.zadtxs move tablespace dataz;
    alter table cldupont.zadtxs move tablespace dataz
                         *
    ERREUR Ó la ligne 1 :
    ORA-00054: Ressource occupÚe et acquisition avec NOWAIT (pas d'attente)
    indiquÚe
     
    SQL>

  12. #12
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    le déplacement n'est possible que quand la table n'est pas lockée

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Merci beaucoups pour votre aide préçieuse, c'est sympa, j'ai réussi à déplacer ma table.

    Puis-je fait la même chose avec l'index de la table ?
    Merci.

  14. #14
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    bien sûr avec la commande REBUILD

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Donc si j'ai bien compris , je crée un tablespace sur mon disque (dataz_index.dbf) et je tape cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter index zadtxs_idx rebuils tablespace dataz_index.dbf ?

  16. #16
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Spécifie le tablespace et pas le datafile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter index zadtxs_idx rebuild tablespace dataz
    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/

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Ah ok, donc avec cette instruction, le fichier contenant les index sera a l'endroit où se trouve le tablespace.

  18. #18
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par smahieu Voir le message
    Donc si j'ai bien compris , je crée un tablespace sur mon disque (dataz_index.dbf)
    t'as encore confondu tablespace et datafile... quand je te donne un lien t'es prié de le lire

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 21
    Points : 12
    Points
    12
    Par défaut
    Ok désolé.Merci encore pour vos lumières.
    Ps : je début en oracle....

    A plus.

  20. #20
    Membre éprouvé Avatar de 13thFloor
    Homme Profil pro
    DBA Oracle freelance
    Inscrit en
    Janvier 2005
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Points : 945
    Points
    945
    Par défaut
    Citation Envoyé par smahieu Voir le message
    Merci beaucoups pour votre aide préçieuse, c'est sympa, j'ai réussi à déplacer ma table.

    Puis-je fait la même chose avec l'index de la table ?
    Merci.
    C'est plus que conseillé : c'est nécessaire car les rowid ayant changé, tous les index d'une table déplacée doivent être reconstruits (les index deviennent unusable après un move).

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Table système Oracle
    Par Nomade95000 dans le forum Oracle
    Réponses: 8
    Dernier message: 12/10/2005, 08h46
  2. Table Mapping Oracle vers MS SQL
    Par cheachwood dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/08/2005, 13h05
  3. Réponses: 15
    Dernier message: 30/06/2005, 16h35
  4. lier les tables acces oracle
    Par xtaze dans le forum Access
    Réponses: 5
    Dernier message: 12/06/2005, 21h39
  5. Réponses: 3
    Dernier message: 19/11/2004, 21h48

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