Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 18 sur 18
  1. #1
    Membre confirmé
    Inscrit en
    octobre 2006
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 460
    Points : 248
    Points
    248

    Par défaut Mise en place de la Réplication : erreur dans la log

    Bonjour,

    Après avoir cassé une réplication, je m'attaque à sa remise en place. Voici les étapes effectuées :
    1 - Création d'un utilisateur de maintenance sur les 2 ASE (sce et stdby)
    2 - Installation de la procedure stockée rs_install_primary.sql (sauf dbcc settrunc et sp_setreplicate) sur les 2 ASE (sce et stdby)
    3 - enable rep agent threads
    4 - Création de la connexion logique sur le RS
    5 - Création de la connexion de la database sce
    6 - Création du login dans le RS
    7 - Configuration du Rep Agent
    sp_config_rep_agent "<syb_src_db>", "enable",...
    sp_config_rep_agent "<syb_src_db>", "send warm standby xacts", true
    sp_setreplicate rs_marker,"true"
    sp_setreplicate rs_update_lastcommit,"true"
    sp_start_rep_agent "<syb_src_db>"
    8 - Marquer la database pour la replication
    sp_reptostandby "<syb_src_db>","all"
    9 - Création de la connexion de la database stdby
    10 - Dump de la base

    Dans le log du RS, voici le message d'erreur qui arrive :
    E. 2009/02/19 16:47:13. ERROR #1028 CREATE(DataServer_stdby.Ma_Base) - /dsiexec.c(392)
    Message from server: Message: 10330, State 1, Severity 14 -- 'EXECUTE permission denied on object rs_marker, database cd_but001, owner dbo
    E. 2009/02/19 16:47:13. ERROR #5051 CREATE(DataServer_stdby.Ma_Base) - /dsiexec.c(409)
    Received errors from database 'DataServer_Prod.Ma_Base'. See logged ct-lib and data server messages for more information.

    Durant tout le déroulement, aucune erreur n'est apparu. Je pense que cela pourrai éventuellement venir de
    Code :
    sp_setreplicate rs_marker,"true"
    ,vu le message d'erreur, mais aucune erreur n'est apparue.

    Merci pour votre aide.

  2. #2
    Rédacteur/Modérateur

    Inscrit en
    janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : janvier 2006
    Messages : 1 307
    Points : 1 750
    Points
    1 750

    Par défaut

    Personellement j'utilise simplement rs_init pour initialiser les env. de repli - c'est plus simple :-)

    Mais dans ce cas précis - le problème est que le maintenance user n'a pas le droit d'exécuter la proc rs_marker - donc il manque un grant execute dans la base source (et probablement dans la destination aussi)

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  3. #3
    Membre confirmé
    Inscrit en
    octobre 2006
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 460
    Points : 248
    Points
    248

    Par défaut

    Merci Michael.

    Existe t'il une SP qui affiche les membres d'un rôle, comme sp_helprolemember de MS SQL Server, mais qui ne fonctionne pas sur ASE 12_5. Je souhaite comparer ce qui existe sur une autre base en Warm Standby en terme de rôle pour l'utilisateur de maintenance et l'appliquer sur les deux bases sur lesquelles je travaille.

    Merci.

  4. #4
    Rédacteur/Modérateur

    Inscrit en
    janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : janvier 2006
    Messages : 1 307
    Points : 1 750
    Points
    1 750

    Par défaut

    Non, pas vraiment.

    Il y a sp_displaylogin, qui va donner les roles d'un login.

    Par contre, un select sur master..sysloginroles et master..syssrvroles devrait donner la liste des roles par login.

    Et inversement, sp_helprotect pour voir les grants sur un objets.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  5. #5
    Rédacteur/Modérateur

    Inscrit en
    janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : janvier 2006
    Messages : 1 307
    Points : 1 750
    Points
    1 750

    Par défaut

    Euh - je dis des bêtises...

    Regardes sp_displayroles 'login_name'...

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  6. #6
    Membre confirmé
    Inscrit en
    octobre 2006
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 460
    Points : 248
    Points
    248

    Par défaut

    J'ai lance la sp_displayroles "user" sur les 2 ASE.
    J'ai bien le rôle replication_role sur chaque utilisateur de maintenance.
    Par contre concernant le rôle "rs_marker", il se trouve dans la base RSSD du serveur de Réplication. Je ne pense pas qu'on puisse affecter ce rôle aux utilisateurs de maintenance, étant donné que ces derniers sont situés sur des ASE (donc serveurs différents).
    Je continue de chercher mais suis preneur de toutes les solutions.

  7. #7
    Membre confirmé
    Inscrit en
    octobre 2006
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 460
    Points : 248
    Points
    248

    Par défaut

    Lorsque je passe par "rs_ini", j'obtiens le message d'erreur suivant lors de l'ajout de la standby à la réplication :
    Unable to execute query 'exec sp_config_rep_agent "Ma_base", enable,"rsc_XX","rsc_XX_ra", "rsc_XX_ra_ps"' against server 'Mon_DataServer_De_Secour'.
    ???

  8. #8
    Rédacteur/Modérateur

    Inscrit en
    janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : janvier 2006
    Messages : 1 307
    Points : 1 750
    Points
    1 750

    Par défaut

    Il faut lire le reste de la log pour voir pourquoi cela ne marche pas!

    (permissions, etc.)

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 33
    Points : 41
    Points
    41

    Par défaut

    Unable to execute query 'exec sp_config_rep_agent "Ma_base", enable,"rsc_XX","rsc_XX_ra", "rsc_XX_ra_ps"' against server 'Mon_DataServer_De_Secour'.
    Effectivement, il faudrait avoir/voir le fichier de log de "rs_init", mais je soupconne fortement que ce soit du au fait que le RepAgent ai deja ete configure precedement (voir point 7 du premier post).

    Il faudrait supprimer la config precedement faite :

    Code , arret du RAT, au cas ou ... :
    sp_stop_rep_agent <syb_src_db>[, "nowait"]
    Code , puis suppression de la config precedente :
    sp_config_rep_agent <syb_src_db>, "disable"
    puis relancer la creation de la connection avec "rs_init" ...


    DBRep

  10. #10
    Membre confirmé
    Inscrit en
    octobre 2006
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 460
    Points : 248
    Points
    248

    Par défaut

    Bonjour,

    Je vous joint mon fichier de log.

    Merci pour votre aide.
    Fichiers attachés Fichiers attachés

  11. #11
    Membre actif
    Inscrit en
    août 2007
    Messages
    134
    Détails du profil
    Informations forums :
    Inscription : août 2007
    Messages : 134
    Points : 167
    Points
    167

    Par défaut

    rs_init configure automatiquement le rep agent.
    Il faut donc que celui ci soit désactivé (suivre la procédure donnée par dbrep) avant de le lancer
    DBA sybase confirmé
    Cherche un poste sur Paris

  12. #12
    Membre du Club
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 33
    Points : 41
    Points
    41

    Par défaut

    Citation Envoyé par tibal Voir le message
    Je vous joint mon fichier de log.
    Désolé pour le délai.

    D'après la log du "rs_init", la raison de l'échec doit être la suivante :
    Code :
    1
    2
    3
    2009/02/27 15:44:20 WARNING: "Active database or logical connection to
                        L_DS_PROD.L_BASE_001 does not exist or is not controlled
                        by this site"
    2 possibilités :

    1) Soit le nom de la connexion Logique spécifiée n'est pas bonne : L_DS_PROD.L_BASE_001

    2) soit, vous essayez de créer la connexion Standby sur un autre RepServer.
    ceci n'est pas permis pour la création d'une Warm/Standby classique (il faut que les 2 connexions soit gérer par le même RepServer)

    Si vous tenez absolument à avoir 2 RepServer, il faut utiliser la fonctionnalité MSA, dans ce cas, il faut créer la 1ère connexion Primaire classique sur le premier RepServer, la 2ème connexion Replicate classique sur le deuxième RepServer (avec une route du 1er au 2ème) et ensuite définir une Database Replication Definition (sur le 1er RS) et sa Subscription (sur le 2e RS).


    DBRep

  13. #13
    Membre confirmé
    Inscrit en
    octobre 2006
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 460
    Points : 248
    Points
    248

    Par défaut

    Merci BDRep, je contrôle tout ça dès demain et vous tiens au courant du résultat.
    Existe t'il de la doc (en français) sur la réplication 12_6 avec des exemples et exercices ?

  14. #14
    Membre confirmé
    Inscrit en
    octobre 2006
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 460
    Points : 248
    Points
    248

    Par défaut

    Bonsoir,
    Après maintes tentatives de configuration de la réplication à l'aide du binaire RS_INIT, tout c'est déroulé sans erreurs. Ensuite, j'ai fait un Dump de la base primaire, un load sur la base répliquée, puis résumé la connexion. Mais le hic c'est que lorsque je créé une table sur la base primaire, elle n'est pas créée sur la base répliquée ??
    Je ne pense pas être très loin de la vérité, mais que me manque t'il, alors même que plus aucune erreur ne se produit lors de la config.
    Encore merci pour votre aide.

  15. #15
    Membre confirmé
    Inscrit en
    octobre 2006
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 460
    Points : 248
    Points
    248

    Par défaut

    Ca y est, ça fonctionne enfin. Pour y parvenir j'ai du octroyé au maintenance_user des droits sur les objets de les bases primaire et répliquée. Par contre, lorsque je créé une table dans la base primaire, cela bloque de nouveau la réplication car les maintenance_user des bases primaire et répliquée n'ont aucun droit sur la table nouvellement créée.
    Comment peux t'on contourner ce problème et faire en sorte que les maintenance_user des bases primaire et répliquée aient les droits nécessaires sur tout objet créé dans la base primaire ?
    Merci pour votre aide.

  16. #16
    Rédacteur/Modérateur

    Inscrit en
    janvier 2006
    Messages
    1 307
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : janvier 2006
    Messages : 1 307
    Points : 1 750
    Points
    1 750

    Par défaut

    Une solution: aliaser le user de maintenace à "dbo":

    Code :
    1
    2
    3
    4
    5
    6
    7
     
    USE ma_db
    go
    sp_dropuser 'user_de_maintenance'
    go
    sp_addalias 'user_de_maintenance', dbo
    go
    Maintanent le user de maintenance a les mêmes droits que dbo, et peu donc créer des tables, etc.

    Michael
    Michael Peppler
    Membre de TeamSybase - www.teamsybase.com

    "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    décembre 2007
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : décembre 2007
    Messages : 33
    Points : 41
    Points
    41

    Par défaut

    Citation Envoyé par tibal Voir le message
    Mais le hic c'est que lorsque je créé une table sur la base primaire, elle n'est pas créée sur la base répliquée ??
    Pour ça il faut activer la réplication des DDL avec :
    Code :
    1
    2
    3
    4
    USE <myactivedb>
    go
    sp_reptostandby <myactivedb>, 'all'
    go
    Pour les droits d'accès aux objets pour l'utilisateur de maintenance, effectivement, "alliasser" l'utilisateur de maintenant à DBO est une solution.

    Sinon, lors de la création de la table, pensez à donner des droits, cela doit aussi être répliqué :
    Code :
    1
    2
    3
    4
    create table <mytable> bla bla bla
    go
    grant all on mytable to <mymaintuser>
    go
    (cela impose d'avoir les mêmes utilisateurs de maintenance pour l'ACTIVE et la STANDBY, ou du moins que l'utilisateur de maintenance de la STANDBY existe aussi dans l'ACTIVE, ce qui fait qu'"alliasser" l'utilisateur de maintenant à DBO pour être moins contraignant...)


    bonne journée
    DBRep

  18. #18
    Membre confirmé
    Inscrit en
    octobre 2006
    Messages
    460
    Détails du profil
    Informations forums :
    Inscription : octobre 2006
    Messages : 460
    Points : 248
    Points
    248

    Par défaut

    Merci à tous pour votre aide.
    A bientôt pour un nouveau sujet.

+ Répondre à la discussion
Cette discussion est résolue.

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
  •