Update: Benutzer können den kompensierenden Änderungsprozess in Mergereplikation steuern

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 828637 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Wenn Sie die Mergereplikation verwenden, kann der Merge-Agent Synchronisierungsfehler auftreten, wenn eine einfügen-Änderung, ein Update ändern oder eine löschen-Änderung in einem Zielreplikat aus verschiedenen Gründen, einschließlich der primären Schlüsselverletzung an der Herausgeber oder an den Abonnenten angewendet werden kann. Der Merge-Agent sendet eine kompensierende Änderung immer an das Quellreplikat, um die fehlgeschlagene Änderung rückgängig zu machen. Der Merge-Agent führt den kompensierenden Änderungsprozess um sicherzustellen, dass Daten in einen konsistenten und convergent Zustand in allen Replikaten verwaltet werden. Ohne die Änderungen kompensierenden können Daten zwischen Replikaten abweichen, wenn Fehler wie z. B. einen primären Schlüssel Verstoß. Wenn die Daten in Replikaten variiert, tritt ein, non-Convergence von Daten.

Bevor Sie diesen Hotfix gab es keine Möglichkeit, damit Benutzer den kompensierenden Änderungsprozess steuern. Der kompensierenden Änderungsprozess wurde vom Merge-Agent intern behandelt. Da dieser Prozess intern vom Merge-Agent behandelt wurde, war es schwierig zu beheben, warum bestimmte Konflikte aufgetreten. Da die konfliktverursachende Zeile gelöscht oder in allen Replikaten rückgängig gemacht, werden auch die Zeilendaten aus der gesamten Topologie entfernt. Damit diese Probleme zu beheben, hat Microsoft eine neue Artikel-Level-Eigenschaft Mergereplikation Benutzer den kompensierenden Änderungsprozess steuern lässt hinzugefügt.

Lösung

Informationen zu Service Packs

Installieren Sie das neueste Service Pack für Microsoft SQL Server 2000, um dieses Problem zu beheben. Weitere Informationen finden Sie die folgende KB-Artikelnummer:
290211So erhalten Sie das neueste Service Pack für SQL Server 2000

Hotfix-Informationen

Die englische Version dieses Hotfixes weist die in der nachstehenden Tabelle aufgelisteten Dateiattribute (oder höher) auf. Die Datums- und Uhrzeitangaben für diese Dateien werden in Coordinated Universal Time () angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Um die Differenz zwischen UTC und der Ortszeit zu ermitteln verwenden Sie die Registerkarte Zeitzone des Tools ? Datum und Uhrzeit in der Systemsteuerung.
   Date         Time   Version            Size    File name
   ----------------------------------------------------------------------
   31-May-2003  18:45  2000.80.818.0      78,400  Console.exe      
   25-Jun-2003  01:01  2000.80.818.0      33,340  Dbmslpcn.dll     
   25-Apr-2003  02:12                    786,432  Distmdl.ldf
   25-Apr-2003  02:12                  2,359,296  Distmdl.mdf
   30-Jan-2003  01:55                        180  Drop_repl_hotfix.sql
   26-Aug-2003  20:16  2000.80.854.0     528,960  Dtspump.dll      
   23-Jun-2003  22:40  2000.80.837.0   1,557,052  Dtsui.dll        
   23-Jun-2003  22:40  2000.80.837.0     639,552  Dtswiz.dll       
   24-Apr-2003  02:51                    747,927  Instdist.sql
   03-May-2003  01:56                      1,581  Inst_repl_hotfix.sql
   08-Feb-2003  06:40  2000.80.765.0      90,692  Msgprox.dll      
   01-Apr-2003  02:07                      1,873  Odsole.sql
   05-Apr-2003  01:46  2000.80.800.0      62,024  Odsole70.dll     
   07-May-2003  20:41  2000.80.819.0      25,144  Opends60.dll     
   02-Apr-2003  21:48  2000.80.796.0      57,904  Osql.exe         
   02-Apr-2003  23:15  2000.80.797.0     279,104  Pfutil80.dll     
   04-Aug-2003  18:17                    550,780  Procsyst.sql
   22-May-2003  22:57                     19,195  Qfe469571.sql
   06-Sep-2003  01:36                  1,090,932  Replmerg.sql
   06-Sep-2003  07:18  2000.80.858.0     221,768  Replprov.dll     
   06-Sep-2003  07:18  2000.80.858.0     307,784  Replrec.dll      
   06-Sep-2003  00:00                  1,087,150  Replsys.sql
   13-Aug-2003  16:28                    986,603  Repltran.sql
   29-Jul-2003  20:13  2000.80.819.0     492,096  Semobj.dll       
   31-May-2003  18:27  2000.80.818.0     172,032  Semobj.rll
   05-Aug-2003  21:06                    127,884  Sp3_serv_uni.sql
   01-Jun-2003  01:01  2000.80.818.0   4,215,360  Sqldmo.dll       
   07-Apr-2003  17:44                     25,172  Sqldumper.exe    
   19-Mar-2003  18:20  2000.80.789.0      28,672  Sqlevn70.rll
   02-Jul-2003  00:18  2000.80.834.0     180,736  Sqlmap70.dll     
   03-Sep-2003  02:56  2000.80.857.0     188,992  Sqlmmc.dll       
   02-Sep-2003  23:03  2000.80.857.0     479,232  Sqlmmc.rll
   08-Feb-2003  06:40  2000.80.765.0      57,920  Sqlrepss.dll     
   06-Sep-2003  07:19  2000.80.858.0   7,598,161  Sqlservr.exe     
   25-Jul-2003  21:44  2000.80.845.0     590,396  Sqlsort.dll      
   08-Feb-2003  06:40  2000.80.765.0      45,644  Sqlvdi.dll       
   25-Jun-2003  01:01  2000.80.818.0      33,340  Ssmslpcn.dll     
   01-Jun-2003  01:01  2000.80.818.0      82,492  Ssnetlib.dll     
   01-Jun-2003  01:01  2000.80.818.0      25,148  Ssnmpn70.dll     
   01-Jun-2003  01:01  2000.80.818.0     158,240  Svrnetcn.dll     
   31-May-2003  18:59  2000.80.818.0      76,416  Svrnetcn.exe     
   30-Apr-2003  23:52  2000.80.816.0      45,132  Ums.dll          
   02-Jul-2003  00:19  2000.80.834.0      98,816  Xpweb70.dll      

Hinweis: Aufgrund von Dateiabhängigkeiten enthält das aktuellste Update oder Feature, das diese Dateien enthält, möglicherweise auch weitere Dateien.

Status

Microsoft hat bestätigt, dass dies ein Problem in den Microsoft-Produkten ist, die im Abschnitt "Gilt für" dieses Artikels aufgeführt sind.Dieses Problem wurde erstmals im Microsoft SQL Server 2000 Service Pack 4.

Weitere Informationen

Dieser Hotfix Fügt eine neue Artikel Ebene Compensate_for_errors -Eigenschaft für Mergepublikationen. Sie können diese Eigenschaft auf true oder false festlegen. Der Standardwert für diese Eigenschaft ist True. Die Standardeinstellung bedeutet, dass die Mergereplikation kompensierende Änderungen ausgeben, da es in allen früheren Versionen und Servicepacks verfügt weiterhin. Wenn diese Eigenschaft auf True und eine einfügen-Änderung eine Änderung Update festgelegt ist oder eine löschen-Änderung kann nicht auf ein Zielreplikat aus verschiedenen Gründen (primäre Schlüsselverletzung tritt am Verleger oder dem Abonnenten z. B.) angewendet werden, sendet der Merge-Agent eine kompensierende Änderung an das Quellreplikat, um die Änderung rückgängig zu machen.

Wenn Compensate_for_errors -Eigenschaft auf False festgelegt ist und eine Änderung kann nicht in einem Zielreplikat angewendet werden, kompensierende Aktionen werden nicht ausgegeben, und die fehlgeschlagene Änderung bleibt als Konflikt, bis der Datenbankadministrator die Fehlerbedingung behoben. Der Merge-Agent versucht, replizieren die Zeile auf jeder nachfolgenden Synchronisierung ausgeführt, bis der Fehler behoben ist.

Downlevel Abonnement-Agenten, besonders Pull-Abonnenten, die nicht diesen Hotfix installiert haben, verfügen weiterhin Verhalten, als wäre die Eigenschaft Compensate_for_errors festgelegt ist, auf true, selbst wenn Sie diesen Hotfix auf dem Verleger installiert haben und Compensate_for_errors -Eigenschaft auf False auf dem Verleger festgelegt ist. Daher sollten Benutzer alle Abonnenten zu diesem Hotfix aktualisieren, wenn Sie die Funktionalität, die durch die neue Compensate_for_errors -Eigenschaft bereitgestellt wird, verwenden möchten. Dieses Update hilft dabei, konsistentes Verhalten über die Topologie sicherzustellen.

Für Microsoft SQL Server 2000 Windows CE Edition-Abonnenten Download Konflikte Verhalten wie in allen vorherigen SQL Server veröffentlicht, unabhängig von der Einstellung der Eigenschaft Compensate_for_errors . Die Einstellung der Eigenschaft Compensate_for_errors wird jedoch festgelegt, ob kompensierende Änderungen während der Upload der Fehler und Konflikte von SQL Server CE-Abonnenten zu einem SQL Server-Verleger generiert werden, (Wenn sowohl der Verleger und der Computer, auf Internetinformationsdienste (IIS) ausgeführt wird, diesen Hotfix aktualisiert wurden).

Diese Eigenschaft in der Prozedur Sp_addmergearticle gespeichert und die Sp_changemergearticle gespeicherten Prozedur als ein neuer Parameter mit dem Namen @ Compensate_for_errors verfügbar gemacht wird . Diese Eigenschaft wird nicht in SQL Server Enterprise Manager verfügbar gemacht. Diese Eigenschaft kann für vorhandenen Artikel geändert werden, ohne erneut initialisiert wird. Die typische Verwendung von dieser Eigenschaft ist:
exec sp_addmergearticle @publication = N'mypubl1', @article = N'authors', @source_owner = N'dbo', @source_object = N'authors', @compensate_for_errors='false'
or
exec sp_changemergearticle  @publication='mypubl1',@article='authors', @property='compensate_for_errors',@value='false'

Zusätze zum Thema in der SQL Server 2000-Onlinedokumentation ? Sp_addmergearticle"

sp_addmergearticle [@compensate_for_errors = ]
		  'compensate_for_errors'
Die Compensate_for_errors -Eigenschaft steuert, ob die kompensierenden Aktionen durchgeführt werden, wenn während der Synchronisierung Fehler auftreten. @ Compensate_for_errors Parameter als vom Datentyp nvarchar(5) definiert ist und eine Standardeinstellung von True aufweist. Standardmäßig führt eine Änderung, die auf einem Abonnenten oder auf einem Verleger während der Synchronisierung immer angewendet werden kann nicht zum Ausgleichen der Aktionen um die Änderung rückgängig zu machen. Ein falsch konfigurierter Abonnent, der einen Fehler generiert kann jedoch Änderungen an andere Abonnenten und Verleger falsch rückgängig gemacht werden führen. Die Compensate_for_errors -Eigenschaft festlegen auf false deaktiviert diese kompensierenden Aktionen.

Hinweis: Eine Einstellung Compensate_for_errors -Eigenschaft auf False, kann non-Convergence führen.

Zusätze zum Thema in der SQL Server-Onlinedokumentation "Sp_changemergearticle"

sp_changemergearticle [ @publication = ] 'publication' , [ @article = ] 'article' [ , [
		  @property = ] 'property' ] [ , [ @value =] 'value' ]
Tabelle minimierenTabelle vergrößern
-Eigenschaft Werte Beschreibung
compensate_for_errors TrueKompensierende Aktionen werden ausgeführt, bei Fehlern während der Synchronisierung. Dies ist das standardmäßige Verhalten.
compensate_for_errors False Kompensierende Aktionen werden nicht ausgeführt.

Hinweis: Eine Einstellung Compensate_for_errors -Eigenschaft auf False, kann non-Convergence führen.

Die folgende select-Anweisung bestimmt, ob die Compensate_for_errors -Eigenschaft auf true oder false festgelegt ist:
select CASE compensate_for_errors WHEN 0 THEN ?FALSE? ELSE ?TRUE? END from sysmergearticles where name = ?NameOfTheArticle?

da Compensate_for_errors -Eigenschaft einer freigegebenen Eigenschaft für einen bestimmten Artikel ist, dessen Wert sollte konsistent, wenn der Artikel zu mehreren Publikationen gehört (z. B. Neuverleger Szenarien mit alternative Synchronisierungspartner). Diese Bedingung wird in den meisten Fällen erzwungen. Es ist jedoch Verantwortung des Benutzers sicherstellen, dass die Compensate_for_errors -Eigenschaft denselben Wert für einen bestimmten Artikel in allen Publikationen verfügt, die im Artikel gemeinsam nutzen. In diesem Fall sichergestellt konsistentes Verhalten über die Topologie.

Hinweis: Wenn Sie eine Sicherungskopie einer replizierten Datenbank wiederherzustellen, die gesichert wurde, bevor diesen Hotfix auf die Instanz von SQL Server angewendet wurde, führen Sie die Sp_vupgrade_replication gespeicherte Prozedur mit den notwendigen Parametern für die Instanz von SQL Server für die Replikation die wiederhergestellte Datenbank verwendet.

Weitere Informationen finden Sie die folgende KB-Artikelnummer:
824684Erläuterung von Standardbegriffen bei Microsoft Softwareupdates

Eigenschaften

Artikel-ID: 828637 - Geändert am: Mittwoch, 26. Februar 2014 - Version: 5.3
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 Workgroup Edition
  • Microsoft SQL Server 2000 Desktop Engine (Windows)
  • Microsoft SQL Server 2000 Enterprise Edition 64-bit
Keywords: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB828637 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 828637
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com