KB2648158 - ΕΠΙΔΙΌΡΘΩΣΗ: εμφανίζεται το μήνυμα λάθους "Δεν ήταν δυνατή η εκτέλεση της διαδικασίας" όταν ορίζετε μια μη μηδενική τιμή στην παράμετρο MaxCmdsInTran του παράγοντα ανάγνωσης αρχείων καταγραφής στο SQL Server 2008 R2 ή στο SQL Server 2012

Ισχύει για
SQL Server 2008 R2 Service Pack 1

Η Microsoft διανέμει τις επιδιορθώσεις του Microsoft SQL Server 2008 R2 Service Pack 1 (SP1) ή του Microsoft SQL Server 2012 σε ένα αρχείο με δυνατότητα λήψης. Επειδή οι ενημερώσεις κώδικα είναι αθροιστικές, κάθε νέα έκδοση περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερωμένες εκδόσεις ασφαλείας που συμπεριλήφθηκαν με το προηγούμενο SQL Server 2008 R2 Service Pack 1 (SP1) ή Microsoft SQL Server 2012 ενημερωμένη έκδοση.

Συμπτώματα

Εξετάστε το ακόλουθο σενάριο:

  • Μπορείτε να δημιουργήσετε τουλάχιστον δύο δημοσιεύσεις αναπαραγωγής συναλλαγών που βασίζονται σε μία βάση δεδομένων στο Microsoft SQL Server 2008 R2 ή στο Microsoft SQL Server 2012.
  • Κάθε δημοσίευση έχει τουλάχιστον ένα άρθρο. Τα άρθρα δεν επικαλύπτονται και κάθε άρθρο ανήκει σε μία μόνο δημοσίευση.
  • Μπορείτε να ορίσετε την @sync\_method ιδιότητα των δημοσιεύσεων σε "Ταυτόχρονη".
  • Ρυθμίζετε την @immediate\_sync ιδιότητα των δημοσιεύσεων σε True.
  • Μπορείτε να ορίσετε την παράμετρο MaxCmdsInTran του παράγοντα ανάγνωσης αρχείων καταγραφής σε μια μη μηδενική τιμή.
  • Μία από τις δημοσιεύσεις λαμβάνει πολλά ένθετα σε μία συναλλαγή.
  • Μετά τη δέσμευση της συναλλαγής, ο παράγοντας ανάγνωσης αρχείων καταγραφής αρχίζει να επεξεργάζεται και να διαιρεί τη συναλλαγή σύμφωνα με την παράμετρο MaxCmdsInTran.
  • Ο παράγοντας στιγμιότυπου σε μια άλλη δημοσίευση ξεκινά πριν ο παράγοντας προγράμματος ανάγνωσης καταγραφής ολοκληρώσει την εργασία.

Σε αυτό το σενάριο, ο παράγοντας ανάγνωσης καταγραφής αποτυγχάνει και λαμβάνετε το ακόλουθο μήνυμα λάθους:

Σημείωση

Δεν ήταν δυνατή η εκτέλεση του "sp_MSadd_replcmds" στη διεργασία "διακομιστής\παρουσία".
(Προέλευση: MSSQLServer, αριθμός σφάλματος: 1007)
Δεν είναι δυνατή η εισαγωγή διπλότυπης σειράς κλειδιού στο αντικείμενο 'dbo. MSrepl_commands" με μοναδικό ευρετήριο "ucMSrepl_commands".
(Προέλευση: MSSQLServer, αριθμός σφάλματος: 1007)

Επίλυση

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

SQL Server 2012

Η επιδιόρθωση για αυτό το ζήτημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 1 για SQL Server 2012. Για περισσότερες πληροφορίες σχετικά με αυτό το πακέτο αθροιστική ενημερωμένη έκδοση, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:

2679368 Πακέτο αθροιστικών ενημερώσεων 1 για το SQL Server 2012Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη SQL Server 2012 έκδοση της ενημέρωσης κώδικα. Η Microsoft συνιστά να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

2692828 Οι εκδόσεις του SQL Server 2012 που κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2012 Πρέπει να εφαρμόσετε μια επείγουσα επιδιόρθωση του SQL Server 2012 σε μια εγκατάσταση του SQL Server 2012.

Αθροιστική ενημερωμένη έκδοση πακέτου 4 για SQL Server 2008 R2 SP1

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

2633146 Πακέτο αθροιστικών ενημερώσεων 4 για το SQL Server 2008 R2 SP1Note Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που συμπεριλήφθηκαν με την προηγούμενη έκδοση SQL Server 2008 R2 SP1 της ενημέρωσης κώδικα. Συνιστάται να εξετάσετε την εφαρμογή της πιο πρόσφατης έκδοσης ενημερώσεων κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για προβολή του άρθρου στη Γνωσιακή Βάση της Microsoft:

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

Λύση

Για να επιλύσετε αυτό το ζήτημα, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους:

  • Μην ορίζετε την @sync\_method ιδιότητα των δημοσιεύσεων σε "ταυτόχρονες" και μην ορίζετε την @immediate\_sync ιδιότητα των δημοσιεύσεων σε "αληθές".
  • Ορίστε την τιμή της παραμέτρου MaxCmdsInTran σε μηδέν.

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".