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

Administration Oracle Discussion :

[Streams] ORA-26687 après création de table


Sujet :

Administration Oracle

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut [Streams] ORA-26687 après création de table
    Bonjour,

    Sous Oracle 10gR2 j'essaye tant bien que mal d'utiliser streams. J'ai 3 bases de données SID1, SID2 et SID3. Si je crée une table et insére les lignes dans SID1, la table est bien visible avec ses data sans les autres bases. En revanche, les modifs effectuées dans SID2 ou SID3 ne sont pas répliquées et DBA_APPLY_ERRORS m'alerte sur l'erreur ORA-26687 et j'avoue ne pas bien comprendre comment marche l'instantiation (c'est quel SCN qu'il faut mettre par exemple ?)

    Pourriez-vous m'aider ?

  2. #2
    Membre confirmé
    Inscrit en
    Décembre 2003
    Messages
    493
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 493
    Points : 605
    Points
    605
    Par défaut
    hello, je n'ai pas grande expérience de Stream mais je veux bien essayer de t'aider

    la première chose à faire me semble de vérifier si un apply process est bien défini pour la table en question (dba_apply_instantiated_objects)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Merci

    c'est bien le cas, j'ai lancé sur les 3 instances :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    exec DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(
    source_object_name => 'MYUSER.MYTABLE',
    source_database_name => 'SID1',
    instantiation_scn => NULL);
    mais je suis surpris de ne pas trouver au moins 2 lignes par instance, c'est à dire les 2 masters de chaque SID

  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 : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    j'ai réglé le problème ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    connect strmadmin/strmadmin@sid1
    DECLARE
    iSCN NUMBER;
    BEGIN
    SELECT dbms_flashback.get_system_change_number()
       INTO iSCN
      FROM dual@sid2;
     
    exec DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(
    source_object_name => 'MYUSER.MYTABLE',
    source_database_name => 'SID2',
    instantiation_scn => iSCN);
     
    SELECT dbms_flashback.get_system_change_number()
       INTO iSCN
      FROM dual@sid3;
     
    exec DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(
    source_object_name => 'MYUSER.MYTABLE',
    source_database_name => 'SID3',
    instantiation_scn => iSCN);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    connect strmadmin/strmadmin@sid2
    DECLARE
    iSCN NUMBER;
    BEGIN
    SELECT dbms_flashback.get_system_change_number()
       INTO iSCN
      FROM dual@sid1;
     
    exec DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(
    source_object_name => 'MYUSER.MYTABLE',
    source_database_name => 'SID1',
    instantiation_scn => iSCN);
     
    SELECT dbms_flashback.get_system_change_number()
       INTO iSCN
      FROM dual@sid3;
     
    exec DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(
    source_object_name => 'MYUSER.MYTABLE',
    source_database_name => 'SID3',
    instantiation_scn => iSCN);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    connect strmadmin/strmadmin@sid3
    DECLARE
    iSCN NUMBER;
    BEGIN
    SELECT dbms_flashback.get_system_change_number()
       INTO iSCN
      FROM dual@sid2;
     
    exec DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(
    source_object_name => 'MYUSER.MYTABLE',
    source_database_name => 'SID2',
    instantiation_scn => iSCN);
     
    SELECT dbms_flashback.get_system_change_number()
       INTO iSCN
      FROM dual@sid1;
     
    exec DBMS_APPLY_ADM.SET_TABLE_INSTANTIATION_SCN(
    source_object_name => 'MYUSER.MYTABLE',
    source_database_name => 'SID1',
    instantiation_scn => iSCN);
    mais n'y a-t-il pas plus simple ?

  5. #5
    Invité
    Invité(e)
    Par défaut
    Je bosse aussi sur le stream en ce moment et je n'ai rien vu d'autres que ce que tu fais...

  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 : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Et quelles sont les étapes pour installer la réplication d'un nouveau schéma et son contenu ? Je dois créer le schéma, tablespace et objets dans toutes les instances ou je le fais que dans une seule et je lance la répli sur les autres (sachant que je ne sais pas comment faire) ?

    La doc n'est pas vraiment claire quand même

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par orafrance Voir le message
    La doc n'est pas vraiment claire quand même
    Je ne te le fais pas dire...

    Je n'ai pas tester ton cas, mais je créerais d'abord le schéma sur chaque base, puis création des RULES sur le schema et relance du stream...

    Est-ce que la création d'un schema et d'un tablespace peut-être répliquer par stream ? Je ne sais pas mais j'ai un doute. Surtout pour le tablespace, où le placerait-il ?

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    il pourrait le placer au même endroit

    Sinon, il y a aussi une problèmatique qui me géne. Si j'ai un process qui met une ligne à jour dans 3 tables. Ce process génére un conflit sur update dans la 2° table mais un commit et fait après chaque update.

    Moi je veux annuler toutes les transactions répliquées en cas de conflit... à l'heure actuelle je m'oriente vers un flashbash du tablespace mais ça ne me parait pas super pratique... Oracle a bien pensé à ce cas quand même

    Je n'ai pas tester ton cas, mais je créerais d'abord le schéma sur chaque base, puis création des RULES sur le schema et relance du stream...
    sans vouloir abuser de ton aide... tu n'aurais pas un exemple par hasard

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    je pense pouvoir m'en sortir avec ça : http://download.oracle.com/docs/cd/B...o.htm#BCGBFBBH

    finalement, un bon exemple vaut mieux qu'un long manuel parfois

Discussions similaires

  1. Réponses: 3
    Dernier message: 18/06/2013, 00h18
  2. Réponses: 3
    Dernier message: 13/07/2011, 15h58
  3. Placer des index après création d'une table
    Par defluc dans le forum Outils
    Réponses: 4
    Dernier message: 03/07/2007, 19h55
  4. Réponses: 4
    Dernier message: 12/03/2007, 11h48
  5. Réponses: 2
    Dernier message: 10/02/2006, 14h46

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