none
רפליקציה חד כיוונית - כפילויות RRS feed

  • שאלה

  • שלום,

    לאחרונה אני מקבלת הודעת שגיאה החוזרת על עצמה:

    Cannot insert duplicate key row in object 'dbo.TableName' with unique index 'IndexName.

    שאלותיי הן:

    1. אם מדובר ברפליקציה חד כיוונית, כיצד יכול להיווצר מצב שרשומה מוכנסת פעמיים לטבלה? האם ניתן למנוע שגיאה זו?

    2. בגרסת SQLS 2000 היתה נרשמת הרשומה המדוייקת שגרמה לכפילות. בגרסת 2005 לא מצאתי פירוט שכזה. כיצד ניתן לראות מהי הרשומה הגורמת לבעיית הכפילות?

    תודה מראש,

    מיכל

     

     

    יום ראשון 06 מרץ 2011 13:34

תשובות

  • היי מיכל,

    1. הייתכן שהבעיה היא אפליקטיבית ולאו דווקא מהרפליקציה?

    2. במידה והטבלה לא מאוד עמוסה - תייצרי טריגר INSTEAD OF על הטבלה ל INSERT ובטריגר תוודאי שאין כפילות בערכים המדוברים ובמידה ויש תשימי את השורה בטבלת מעקב.

    כך נראה לי שתוכלי לעלות במהירות על הבעיה.

    HTH


    Ami Levin, SQL Server MVP. CTO, DBSophic LTD. - http://www.dbsophic.com/ --Performance is the most significant driver in maintaining data and service availability.--
    • סומן כתשובה על-ידי מיכל יום שלישי 08 מרץ 2011 07:21
    יום שני 07 מרץ 2011 06:27
  • הי מיכל,

    לגבי הרשומה הכפולה דעתי כמו של עמי שזה נגרם ע"י האפליקציה, הזנה כפולה של אותה רשומה.

    צירפתי לינק למאמר ב- SQLMAG על troubleshooting transactional replication אולי תמצאי תשובה לשאלה השניה.

    http://www.sqlmag.com/article/sql-server/Troubleshooting-Transactional-Replication.aspx

    בהצלחה ויום טוב,

     

     


    אסף שלם
    • סומן כתשובה על-ידי מיכל יום שלישי 08 מרץ 2011 07:21
    יום שני 07 מרץ 2011 07:55

כל התגובות

  • היי מיכל,

    1. הייתכן שהבעיה היא אפליקטיבית ולאו דווקא מהרפליקציה?

    2. במידה והטבלה לא מאוד עמוסה - תייצרי טריגר INSTEAD OF על הטבלה ל INSERT ובטריגר תוודאי שאין כפילות בערכים המדוברים ובמידה ויש תשימי את השורה בטבלת מעקב.

    כך נראה לי שתוכלי לעלות במהירות על הבעיה.

    HTH


    Ami Levin, SQL Server MVP. CTO, DBSophic LTD. - http://www.dbsophic.com/ --Performance is the most significant driver in maintaining data and service availability.--
    • סומן כתשובה על-ידי מיכל יום שלישי 08 מרץ 2011 07:21
    יום שני 07 מרץ 2011 06:27
  • הי מיכל,

    לגבי הרשומה הכפולה דעתי כמו של עמי שזה נגרם ע"י האפליקציה, הזנה כפולה של אותה רשומה.

    צירפתי לינק למאמר ב- SQLMAG על troubleshooting transactional replication אולי תמצאי תשובה לשאלה השניה.

    http://www.sqlmag.com/article/sql-server/Troubleshooting-Transactional-Replication.aspx

    בהצלחה ויום טוב,

     

     


    אסף שלם
    • סומן כתשובה על-ידי מיכל יום שלישי 08 מרץ 2011 07:21
    יום שני 07 מרץ 2011 07:55
  • תודה רבה על התשובות :-)

    אגב, ניתן לדעת מהי הרשומה הכפולה ע"י הרצת הפקודה הבאה על בסיס הנתונים distribution:

    exec

     

    sp_browsereplcmds @xact_seqno_start = '0x0000C74B00001D79003300000000', @xact_seqno_end = '0x0000C74B00001D79003300000000'

    יום שלישי 08 מרץ 2011 07:23