Συμπτώματα
Χρήση αναπαραγωγής συγχώνευσης του SQL Server 2005 ή SQL Server 2008 της αναπαραγωγής συγχώνευσης με τον συγχρονισμό Web με βάση το συνδρομητή. Παρουσιάζεται διαρροή μνήμης μετά από επανειλημμένη συγχρονισμών και ενδέχεται να λάβετε σφάλματα "μνήμη εξαντλήθηκε" μετά από ένα χρονικό διάστημα. Αυτό γίνεται εμφανές όταν δεν γίνεται επανεκκίνηση τη διαδικασία κεντρικού υπολογιστή για πολύ καιρό, όπως όταν χρησιμοποιείται ο παράγοντας συγχώνευσης (Replmerg.exe) με το - συνεχή διακόπτη ή όταν η συνεχής παράμετρος έχει καθοριστεί στο προφίλ παράγοντα που εφαρμόζεται στον παράγοντα. Αυτό το ζήτημα μπορεί επίσης να επηρεάσει μια εφαρμογή RMO ή την υπηρεσία που έχετε αναπτύξει που εκτελείται συγχρονισμός με επανάληψη, όταν η εφαρμογή εκτελείται για αρκετές ημέρες χωρίς να κλείσετε.
Αιτία
Διάφορα εσωτερικά αντικείμενα είναι διαρροής μετά από κάθε συγχρονισμό.
Προτεινόμενη αντιμετώπιση
SQL Server 2005 Service Pack 3
Η ενημέρωση κώδικα για αυτό το ζήτημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 6 για SQL Server 2005 Service Pack 3. Για περισσότερες πληροφορίες σχετικά με αυτό το πακέτο αθροιστική ενημερωμένη έκδοση, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
974648 συγκεντρωτική ενημερωμένη έκδοση πακέτου 6 για SQL Server 2005 Service Pack 3Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που είχαν περιληφθεί σε προηγούμενες SQL Server 2005 έκδοση της ενημέρωσης κώδικα. Η Microsoft συνιστά να σκέφτεστε εφαρμογή στην πιο πρόσφατη έκδοση της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
960598 του SQL Server 2005 δημιουργεί που κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2005 Service Pack 3. Επείγουσες επιδιορθώσεις του Microsoft SQL Server 2005 δημιουργούνται για συγκεκριμένο SQL Server service pack. Μια εγκατάσταση του SQL Server 2005 Service Pack 3, πρέπει να εφαρμόσετε μια επείγουσα επιδιόρθωση του SQL Server 2005 Service Pack 3. Από προεπιλογή, κάθε επείγουσα επιδιόρθωση που παρέχεται σε ένα service pack του SQL Server περιλαμβάνεται στο επόμενο service pack του SQL Server.
Την έκδοση του SQL Server 2008
Σημαντικό Εάν εκτελείτε την έκδοση του SQL Server 2008, πρέπει να εγκαταστήσετε αυτήν την ενημέρωση κώδικα.
Η ενημέρωση κώδικα για αυτό το ζήτημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 8. Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης αυτού του πακέτου αθροιστική ενημερωμένη έκδοση για τον SQL Server 2008, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:975976 συγκεντρωτική ενημερωμένη έκδοση πακέτου 8 για SQL Server 2008Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που είχαν περιληφθεί σε προηγούμενες SQL Server 2008 έκδοση της ενημέρωσης κώδικα. Συνιστούμε ότι μπορείτε να εξετάσουν την εφαρμογή της πιο πρόσφατης έκδοσης της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
956909 ο SQL Server 2008 δημιουργεί που κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008
SQL Server 2008 Service Pack 1
Σημαντικό Εάν εκτελείτε το SQL Server 2008 Service Pack 1, πρέπει να εγκαταστήσετε αυτήν την ενημέρωση κώδικα.
Η ενημέρωση κώδικα για αυτό το ζήτημα κυκλοφόρησε πρώτα στην αθροιστική ενημερωμένη έκδοση 5 για SQL Server 2008 Service Pack 1. Για περισσότερες πληροφορίες σχετικά με αυτό το πακέτο αθροιστική ενημερωμένη έκδοση, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:975977 συγκεντρωτική ενημερωμένη έκδοση πακέτου 5 για SQL Server 2008 Service Pack 1Σημείωση Επειδή το build που είναι αθροιστικές, κάθε νέα έκδοση της ενημέρωσης κώδικα περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ενημερώσεις κώδικα ασφαλείας που είχαν περιληφθεί σε προηγούμενες SQL Server 2008 έκδοση της ενημέρωσης κώδικα. Η Microsoft συνιστά να σκέφτεστε εφαρμογή στην πιο πρόσφατη έκδοση της ενημέρωσης κώδικα που περιέχει αυτήν την επείγουσα επιδιόρθωση. Για περισσότερες πληροφορίες, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
970365 του SQL Server 2008 δημιουργεί που κυκλοφόρησαν μετά την κυκλοφορία του SQL Server 2008 Service Pack 1 Επείγουσες επιδιορθώσεις του Microsoft SQL Server 2008 δημιουργούνται για συγκεκριμένο SQL Server service pack. Μια εγκατάσταση του SQL Server 2008 Service Pack 1, πρέπει να εφαρμόσετε μια επείγουσα επιδιόρθωση του SQL Server 2008 Service Pack 1. Από προεπιλογή, κάθε επείγουσα επιδιόρθωση που παρέχεται σε ένα service pack του SQL Server περιλαμβάνεται στο επόμενο service pack του SQL Server.
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Εναλλακτικός τρόπος αντιμετώπισης
Για να επιλύσετε αυτό το ζήτημα, χρησιμοποιήστε μία από τις ακόλουθες μεθόδους:
Μέθοδος 1
Εάν χρησιμοποιείτε έναν παράγοντα συγχώνευσης σε συνεχή λειτουργία, διακοπή της διαδικασίας συγχώνευσης παράγοντα περιοδικά και εκκινήστε το ξανά.
Για παράδειγμα, λαμβάνετε "μνήμη εξαντλήθηκε" σφάλματα ύστερα από πέντε ημέρες, και σας παράγοντα συγχώνευση έχει προγραμματιστεί ως εργασία. Στη συνέχεια, μπορείτε να προγραμματίσετε μια νέα εργασία του παράγοντα διακομιστή SQL για την κλήση sp_stop_job , ακολουθούμενο από sp_start_job Καθορίζει το όνομα της εργασίας συγχώνευση παράγοντα, η οποία μετακινείται η διαδικασία που επηρεάζεται κάθε πέντε ημέρες. Όταν διακόπτετε τη διαδικασία παράγοντα συγχώνευσης (Replmerg.exe), θα κυκλοφορήσει τις διαρροής μνήμης στο εσωτερικό του χώρου μνήμης διεργασίας. Για περισσότερες πληροφορίες σχετικά με τη χρήση του - συνεχή διακόπτη σε παράγοντα συγχώνευση, ανατρέξτε την ακόλουθη τοποθεσία του Microsoft Developer Network (MSDN) στο Web:http://msdn.microsoft.com/en-us/library/ms147839.aspx
sp_stop_job http://msdn.microsoft.com/en-us/library/ms182793(SQL.90).aspx
sp_start_job http://msdn.microsoft.com/en-us/library/ms186757(SQL.90).aspx
Μέθοδος 2
Εάν χρησιμοποιείτε τον παράγοντα συγχώνευσης από μια εργασία, θα μπορούσε να ρυθμίζετε μη αυτόματη λογική βρόχου μέσα την εργασία χρησιμοποιώντας πρόσθετα βήματα αντί να βασίζεστε στο η συνεχής παράμετρος. Αντί για τη διαδικασία παράγοντα μία συγχώνευση επανάληψη εσωτερικά συνεχώς συνεχώς, να προγραμματίσετε τον παράγοντα συγχώνευσης ως βήμα εργασίας που επαναλαμβάνεται σε συχνή βάση όπως μία φορά κάθε λεπτό. Η διεργασία θα τερματιστεί μεταξύ των επαναλήψεων και αυτό ελευθερώνει τις διαρροής μνήμης.
Επεξεργαστείτε τον παράγοντα συγχώνευση εργασία, έτσι ώστε να επαναλάβετε τα βήματα σε ένα βρόχο με μια παύση μεταξύ επαναλαμβάνεται.-
Μετά το βήμα [3] "Εντοπισμός τερματισμού nonlogged παράγοντα," Προσθήκη νέου βήματος [4] με το όνομα "Απεριόριστη" Επανάληψη "βρόχος." Ορισμός του τύπου TSQL και την εντολή για να "waitfor καθυστέρηση ' 0: 00:05'", αυτή η καθυστέρηση TSQL θα παρέχει 5 δεύτερο παύση μπορείτε να ρυθμίσετε ως ένα διάστημα σταθμοσκόπησης με τέτοιο τρόπο ώστε ο παράγοντας συγχώνευσης θα μια μικρή παύση ανάμεσα εκτελέσεις και να μην εκτελείται συνεχώς. Στην καρτέλα για προχωρημένους καθορίσετε το "με επιτυχία την ενέργεια" ως "Μετάβαση στο βήμα [2] παράγοντα εκτέλεσης" και "Αποτυχία ενέργειας" ως "Go παράγοντα εκτέλεσης βήμα [2]".
-
Επεξεργασία παράγοντα εκτελέσετε βήμα [2] ώστε να καλυφθεί ο βρόχος βήμα [4]. Στην καρτέλα "για προχωρημένους" του βήματος [2], ορίστε την επιτυχία ενέργεια σε, ", μεταβείτε στο βήμα: [4] απεριόριστη επανάληψη Επανάληψη" και της ενέργειας σε αποτυχία "Μετάβαση στο επόμενο βήμα."
-
Επεξεργασία βήμα [3] "Εντοπισμός nonlogged παράγοντα τερματισμού" για να βεβαιωθείτε ότι επιτυγχάνεται το βρόχο στο βήμα [4]. Στην καρτέλα "για προχωρημένους" βήμα [3], ορίστε την με επιτυχία την ενέργεια, ", μεταβείτε στο επόμενο βήμα". Μπορείτε επίσης να αποφασίσετε εάν θέλετε το βήμα [3] σε αποτυχία ενέργειας θα οριστεί ως ", μεταβείτε στο επόμενο βήμα" ή "Κλείστε το έργο αναφοράς σφάλματος." Εάν έχει ρυθμιστεί για να κλείσετε, θα εμφανίζεται η αποτυχία εργασίας στην παρακολούθηση αναπαραγωγής και την οθόνη εργασίας. Εάν έχει ρυθμιστεί περίπτωση αποτυχίας για να μεταβείτε στο τέταρτο βήμα βρόχος, ο παράγοντας συγχώνευσης ενδέχεται να εκτελέστε ξανά αόριστο χρονικό διάστημα και τα σφάλματα καταγράφονται αόριστο χρονικό διάστημα.
Η μέθοδος 3
Κατά τον ίδιο τρόπο εάν χρησιμοποιείτε μια εφαρμογή RMO για να καλέσετε τη μέθοδο MergeSynchronizationAgent.Synchronize() , η οποία συγχρονίζει τη βάση δεδομένων του συνδρομητή με επανάληψη, διακόψτε και ξεκινήστε πάλι τη διαδικασία περιοδικά για να αποδεσμεύετε τις μνήμης που είναι διαρροής εξαιτίας αυτού του προβλήματος.http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.replication.mergesynchronizationagent.synchronize(SQL.90).aspx
Για περισσότερες πληροφορίες σχετικά με αυτό το αντικείμενο και τη μέθοδο, ανατρέξτε την ακόλουθη τοποθεσία του Microsoft Developer Network (MSDN) στο Web:Αναφορές
Για περισσότερες πληροφορίες σχετικά με τη χρήση του - συνεχή διακόπτη σε παράγοντα συγχώνευσης, επισκεφθείτε την ακόλουθη τοποθεσία του Microsoft Developer Network (MSDN) στο Web:
http://msdn.microsoft.com/en-us/library/ms147839.aspx Για περισσότερες πληροφορίες σχετικά με τη sp_stop_job αποθηκευμένη διαδικασία, επισκεφθείτε την ακόλουθη τοποθεσία του Microsoft Developer Network (MSDN) στο Web:
http://http://msdn.microsoft.com/en-us/library/ms182793(SQL.90).aspx Για περισσότερες πληροφορίες σχετικά με τη sp_start_job αποθηκευμένη διαδικασία, επισκεφθείτε την ακόλουθη τοποθεσία του Microsoft Developer Network (MSDN) στο Web:
http://msdn.microsoft.com/en-us/library/ms186757(SQL.90).aspx Για περισσότερες πληροφορίες σχετικά με τον τρόπο απόκτησης του SQL Server 2005 Service Pack 3, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
913089 Τρόπος λήψης του τελευταίου service pack για τον SQL Server 2005 Για περισσότερες πληροφορίες σχετικά με τις νέες δυνατότητες του SQL Server 2005 Service Pack 3 (SP3) και σχετικά με τις βελτιώσεις σε SQL Server 2005 SP3, επισκεφθείτε την ακόλουθη τοποθεσία της Microsoft στο Web:
http://go.microsoft.com/fwlink/?LinkId=131442Για περισσότερες πληροφορίες σχετικά με τη διάταξη ονομασίας των ενημερωμένων εκδόσεων του SQL Server, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής Βάσης της Microsoft:
822499 νέα διάταξη ονομασίας για το λογισμικό Microsoft SQL Server πακέτα ενημερωμένων εκδόσεων Για περισσότερες πληροφορίες σχετικά με την ορολογία των ενημερώσεων λογισμικού, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο στη Γνωσιακή Βάση της Microsoft:
824684 Περιγραφή της βασικής ορολογίας που χρησιμοποιείται για την περιγραφή ενημερώσεων λογισμικού της Microsoft