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

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.

828637
Dieser Artikel wurde archiviert. Er wird im vorliegenden Zustand bereitgestellt und nicht mehr aktualisiert.
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'orexec 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' ]
-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

Warnung: Dieser Artikel wurde automatisch übersetzt

Eigenschaften

Artikelnummer: 828637 – Letzte Überarbeitung: 02/26/2014 21:08:23 – Revision: 5.3

  • 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
  • kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbqfe kbsqlserv2000presp4fix kbfix kbbug KB828637 KbMtde
Feedback