KB2733630 - เอเจนต์การผสานอาจล้มเหลวระหว่างการซิงโครไนซ์การจําลองแบบจดหมายเวียนใน SQL Server

นำไปใช้กับ
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2008 Standard SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

อาการ

ระหว่างการซิงโครไนซ์ของการจําลองแบบผสานใน Microsoft SQL Server 2008 และ SQL Server รุ่นที่ใหม่กว่า เอเจนต์ผสานอาจล้มเหลว นอกจากนี้ คุณได้รับข้อความแสดงข้อผิดพลาดต่อไปนี้:

หมายเหตุ

เอเจนต์ผสานล้มเหลวหลังจากตรวจพบว่าการล้างข้อมูลเมตาดาต้าตามการเก็บข้อมูลได้ลบเมตาดาต้าที่ผู้สมัครใช้งานสําหรับการเปลี่ยนแปลงที่ยังไม่ได้ส่งไปยังผู้เผยแพร่ คุณต้องเตรียมการสมัครใช้งานใหม่ (โดยไม่ต้องอัปโหลด) (ที่มา: MSSQL_REPL หมายเลขข้อผิดพลาด: MSSQL_REPL-2147199401)

รับความช่วยเหลือ: http://help/MSSQL_REPL-2147199401

ปัญหานี้อาจเกิดขึ้นได้จากหลายสาเหตุ ซึ่งรวมถึงเหตุผลหลายประการที่คาดหวังภายใต้สถานการณ์บางอย่าง เมื่อต้องการตรวจสอบว่าคุณพบข้อผิดพลาดนี้โดยไม่คาดคิดหรือไม่ ให้ตรวจสอบรายละเอียด Metadata ที่อธิบายไว้ในส่วน "สาเหตุ"

สาเหตุ

สาเหตุของปัญหานี้สามารถพบได้ในตารางระบบต่อไปนี้บนผู้สมัครใช้งาน:

  • dbo.sysMergeSubscriptions
  • ดีบีโอ MsMerge_Genhistory

ตรวจสอบให้แน่ใจว่า เอเจนต์ผสานไม่ได้ซิงโครไนซ์อีกต่อไป จากนั้น เรียกใช้คิวรีต่อไปนี้ และตรวจสอบผลลัพธ์:

เลือก sentgen จาก SubscriberDB.dbo.sysMergeSubscriptions โดยที่ pubid = subid และ sentgen is not null

ผลลัพธ์ของคิวรี

คอลัมน์ sentgen ทําเครื่องหมายกลุ่มการเปลี่ยนแปลงที่เก่าที่สุดที่สมาชิกส่งไปยังผู้เผยแพร่ ถ้ามีค่าหลายค่าถูกส่งกลับ ให้ตรวจสอบคอลัมน์อื่นๆ ในตาราง dbo.sysMergeSubscriptions เพื่อให้แน่ใจว่า คุณกําลังดู Metadata สําหรับการประกาศที่ถูกต้อง ถัดไป ให้ใช้ค่าที่คิวรีนี้ส่งกลับในคิวรีต่อไปนี้

เลือก 20 อันดับแรก * จาก SubscriberDB.dbo.MSmerge_genhistory WHERE Generation >= sentgen_value order by generation ผลลัพธ์ของคิวรีควรมีลักษณะดังต่อไปนี้:

ผลลัพธ์ของคิวรีตามรุ่น

คุณอาจพบข้อผิดพลาดโดยไม่คาดคิดเมื่อเงื่อนไขต่อไปนี้ทั้งหมดเป็นจริง

  • ค่าในคอลัมน์ Generation ในแถวแรก มากกว่าค่า sentgen ในคิวรีก่อนหน้าเล็กน้อย
  • ค่าในคอลัมน์ genstatus คือ 4
  • ค่าในคอลัมน์ changecount คือ 0

หมายเหตุ: โดยทั่วไปแล้วค่าของคอลัมน์ coldate ของแถวแรกจะเก่ากว่าค่าของคอลัมน์นั้นในแถวอื่นๆ มาก

การแก้ปัญหา

เมื่อต้องการแก้ไขปัญหานี้ ให้เริ่มต้นการทํางานของผู้สมัครใช้งานที่ทําให้เกิดข้อผิดพลาดใหม่

ในบางสถานการณ์ คุณอาจแก้ไขปัญหานี้ได้โดยไม่ต้องเตรียมใช้งานใหม่ทั้งหมด ติดต่อฝ่ายบริการสนับสนุนลูกค้าของ Microsoft สําหรับข้อมูลเกี่ยวกับวิธีแก้ไขปัญหาชั่วคราว

เพื่อป้องกันการเกิดปัญหานี้ในอนาคต ให้ใช้หนึ่งในวิธีแก้ไขต่อไปนี้ โดยขึ้นอยู่กับรุ่นของ SQL Server ของคุณ

ข้อมูลการอัปเดตสะสม

SQL Server 2008

ไม่มีการแก้ไขปัญหานี้ใน SQL Server 2008

SQL Server 2008 R2 Service Pack 2

การแก้ไขสําหรับปัญหานี้เผยแพร่ครั้งแรกใน Cumulative Update 3 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจการปรับปรุงแบบสะสมสําหรับ SQL Server 2008 R2 Service Pack 2 นี้ ให้คลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2754552 แพคเกจการปรับปรุงสะสม 3 สําหรับ SQL Server 2008 R2 Service Pack 2
 หมายเหตุ เนื่องจากรุ่นนี้เป็นแบบสะสม การแก้ไขใหม่แต่ละรุ่นจะมีการแก้ไขด่วนและการแก้ไขความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไข SQL Server 2008 R2 Service Pack 2 ก่อนหน้า เราขอแนะนําให้คุณพิจารณาใช้การแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ไปใช้ สําหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2730301 รุ่น SQL Server 2008 R2 ที่วางจําหน่ายภายหลัง SQL Server 2008 R2 Service Pack 2

SQL Server 2012

การแก้ไขสําหรับปัญหานี้เผยแพร่ครั้งแรกในการอัปเดตสะสม 4 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงสะสมสําหรับ SQL Server 2012 นี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2758687 แพคเกจการปรับปรุงสะสม 4 สําหรับ SQL Server 2012
 หมายเหตุ เนื่องจากรุ่นนี้เป็นแบบสะสม การแก้ไขใหม่ที่เผยแพร่ออกมาจะมีการแก้ไขด่วนและการแก้ไขความปลอดภัยทั้งหมดที่รวมอยู่ในการแก้ไข SQL Server 2012 รุ่นก่อนหน้า เราขอแนะนําให้คุณพิจารณาใช้การแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ไปใช้ สําหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2692828 รุ่น SQL Server 2012 ที่วางจําหน่ายภายหลัง SQL Server 2012

SQL Server 2008 R2 Service Pack 1

การแก้ไขสําหรับปัญหานี้เผยแพร่ครั้งแรกในการอัปเดตสะสม 8 สําหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการขอรับแพคเกจโปรแกรมปรับปรุงสะสมสําหรับ SQL Server 2008 R2 Service Pack 1 นี้ ให้คลิกหมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2723743 แพคเกจการปรับปรุงสะสม 8 สําหรับ SQL Server 2008 R2 SP1 หมายเหตุ เนื่องจากรุ่นนี้เป็นแบบสะสม การแก้ไขใหม่แต่ละรุ่นจะมีการแก้ไขด่วนและการแก้ไขความปลอดภัยทั้งหมดที่รวมอยู่ในการเผยแพร่การแก้ไข SQL Server 2008 R2 Service Pack 1 ก่อนหน้า เราขอแนะนําให้คุณพิจารณาใช้การแก้ไขล่าสุดที่มีโปรแกรมแก้ไขด่วนนี้ไปใช้ สําหรับข้อมูลเพิ่มเติม โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

2567616 รุ่น SQL Server 2008 R2 ที่วางจําหน่ายภายหลัง SQL Server 2008 R2 SP1