none
בעיה בLINKED SERVER עם Always on RRS feed

  • שאלה

  • שלום

    עלינו לאויר עם תצורת AO 2012 , בNODE1 יש כמה בסיסי נתונים שאחד מתוכם מסונכן עם AVAILABILITY GROUP , ה readable secondary  מוגדר כ read-intent only .

    הבעיה מתחילה כשאני יוצרת LINKED SERVER לNODE2 מNODE1 עם applicationintent=readonly , כשאני מנסה לשלוף נתונים מNODE2 מDB שנמצא בAG ולהכניס לטבלה בNODE1 לבסיס נתונים שלא נמצא בavailabilty group  :

    insert into table
    select * from NODE2.DB.dbo.Table


    אני מקבלת את השגיאה הבאה:

     

    The operation could not be performed because OLE DB provider "SQLNCLI11" for linked server "NODE2" was unable to begin a distributed transaction.

    הגדרתי את הDTC בשני השרתים כך:

    www.theboreddba.com/Categories/issuesAndBugs/Unable-to-begin-a-Distributed-Transaction.aspx

    ועדיין מקבלת את השגיאה.

    הבנתי שDTC עם AO זה נושא בעייתי- אבל- בסביבת הטסטים שלי שמוגדרת בדיוק!! כמו סביבת היצור השליפה מהלינקד סרבר עובדת כראוי- גם בטרנזקציה כלומר בהכנסה לטבלה.

    האם משהו מכיר את הנושא?\ נתקל בעיה ויוכל לעזור לי?

    תודה רבה!

    יום חמישי 21 מאי 2015 06:44

כל התגובות

  • ערב טוב,

    אנא בידקי את הקישור הבא:
    http://www.virtualizationhowto.com/2015/04/ole-db-provider-sqlncli11-linked-server-unable-distributed-transaction/

    כמו כן לפעמים פשוט מספיק לבצע 

    msdtc -uninstall
    msdtc -install
    וכמובן לאתחל את השרת.


    signature   Ronen Ariely
     [Personal Site]    [Blog]    [Facebook]

    • הוצע כתשובה על-ידי pituachMVP, Editor יום שלישי 09 יוני 2015 18:39
    יום שלישי 02 יוני 2015 16:04
    מנחה דיון
  • הי,

    לפני שאת מנסה ליצור טרנזקציה מבוזרת, כדאי לבדוק קודם כל שאת יכולה לקרוא מ-NODE2 בצורה הזאת. נסי להריץ רק את ה-SELECT בלי ה-INSERT. לפי מה שכתבת, אני לא בטוח שזה בכלל יעבוד, כי בשביל לעבוד בתצורה של ApplicationIntent = ReadOnly, את צריכה להתחבר ל-Listener.

    אחרי שתוודאי שהקריאה עובדת, צריך לטפל בטרנזקציה המבוזרת. נתקלתי בהרבה מקרים שבהם משתמשים באותו Image בשביל להקים את שני השרתים, ואז יש קונפליקט בין שני ה-DTC Services, כי הם משתמשים באותו Identity Key. כפי שרונן כתב, Uninstall ו-Install פותר את הבעיה. אם זה לא הסיפור, אז צריך לבדוק שכל אחד מהשרתים רואה את השרת השני דרך הרשת. יכול להיות שבאחד הכיוונים אין תקשורת, או בגלל Firewall או בגלל DNS.

    בהצלחה!

    -----------------------------
    גיא גלנצר
    יועץ ומדריך SQL Server
    http://www.madeiradata.com

    • הוצע כתשובה על-ידי pituachMVP, Editor יום שלישי 07 יולי 2015 10:56
    יום שלישי 07 יולי 2015 05:08
    מנחה דיון