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

Αυτό το πρόβλημα ενδέχεται να παρουσιαστεί για πολλούς λόγους. Αυτοί περιλαμβάνουν πολλούς λόγους που αναμένονται υπό ορισμένες συνθήκες. Για να προσδιορίσετε αν αντιμετωπίσατε αυτό το σφάλμα απροσδόκητα, εξετάστε τις λεπτομέρειες των μετα-δεδομένων που περιγράφονται στην ενότητα "Αιτία".

Αιτία

Η αιτία αυτού του προβλήματος μπορεί να βρεθεί στους ακόλουθους πίνακες συστήματος στο συνδρομητή:

  • dbo.sysMergeSubscriptions
  • dbo. MsMerge_Genhistory

Βεβαιωθείτε ότι ο παράγοντας συγχώνευσης δεν συγχρονίζεται πλέον. Στη συνέχεια, εκτελέστε το ακόλουθο ερώτημα και εξετάστε τα αποτελέσματα:

επιλέξτε sentgen από SubscriberDB.dbo.sysMergeSubscriptions όπου pubid = subid και sentgen δεν είναι null

Αποτελέσματα ερωτήματος

Η στήλη sentgen επισημαίνει την παλαιότερη ομάδα αλλαγών που έστειλε ο συνδρομητής στον εκδότη. Εάν επιστραφούν πολλές τιμές, εξετάστε τις άλλες στήλες στον πίνακα dbo.sysMergeSubscriptions για να βεβαιωθείτε ότι προβάλετε τα μετα-δεδομένα για τη σωστή δημοσίευση. Στη συνέχεια, χρησιμοποιήστε την τιμή που επιστρέφει αυτό το ερώτημα στο ακόλουθο ερώτημα:

επιλέξτε τα πρώτα 20 * από SubscriberDB.dbo.MSmerge_genhistory όπου γενιά >= sentgen_value σειρά ανά γενιάΤο αποτέλεσμα του ερωτήματος πρέπει να μοιάζει με το εξής:

Αποτέλεσμα ερωτήματος κατά δημιουργία

Ενδέχεται να αντιμετωπίσετε το σφάλμα απροσδόκητα, όταν ισχύουν όλες οι ακόλουθες συνθήκες:

  • Η τιμή στη στήλη δημιουργίας στην πρώτη γραμμή είναι ελαφρώς μεγαλύτερη από την τιμή sentgen στο προηγούμενο ερώτημα.
  • Η τιμή στη στήλη genstatus είναι 4.
  • Η τιμή στη στήλη changecount είναι 0.

Σημείωση Η τιμή της στήλης coldate της πρώτης γραμμής είναι επίσης συνήθως πολύ παλαιότερη από την τιμή αυτής της στήλης στις άλλες γραμμές.

Επίλυση

Για να επιλύσετε αυτό το πρόβλημα, προετοιμάστε ξανά το συνδρομητή που δημιούργησε το σφάλμα.

Σε ορισμένα σενάρια, ενδέχεται να μπορείτε να επιλύσετε αυτό το πρόβλημα χωρίς πλήρη εκ νέου προετοιμασία. Επικοινωνήστε με τις Υπηρεσίες Υποστήριξης Πελατών της Microsoft για πληροφορίες σχετικά με μια πιθανή λύση.

Για να αποτρέψετε μελλοντικές εμφανίσεις αυτού του προβλήματος, εφαρμόστε μία από τις ακόλουθες επιδιορθώσεις, ανάλογα με την έκδοση του SQL Server.

Πληροφορίες αθροιστικής ενημέρωσης

SQL Server 2008

Δεν υπάρχει διόρθωση για αυτό το ζήτημα στο SQL Server 2008.

SQL Server 2008 R2 Service Pack 2

Η επιδιόρθωση για αυτό το πρόβλημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 3. Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης αυτού του πακέτου αθροιστική ενημερωμένη έκδοση για το SQL Server 2008 R2 Service Pack 2, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

2754552 Αθροιστική ενημερωμένη έκδοση πακέτου 3 για SQL Server 2008 R2 Service Pack 2
 Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με το προηγούμενο 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
 Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη 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Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη έκδοση SQL Server 2008 R2 Service Pack 1 της ενημέρωσης κώδικα. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης ενημερώσεων κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

2567616 Οι SQL Server δομές του 2008 R2 κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 R2 SP1