DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 953481 - Geändert am: Freitag, 11. Juli 2008 - Version: 1.0

Hotfix-Download ist verfügbar
Hotfix-Downloads anzeigen und anfordern
 
 
Ob # Fehler: 50002854 (SQL-Hotfix)
Microsoft verteilt Microsoft SQL Server 2005-Updates als eine downloadbar Datei. Da die Updates kumulativ sind enthält neues einzelnes Release alle Hotfixes und alle Sicherheitsupdates beheben Version, die mit dem vorherigen SQL Server 2005 enthalten waren.

Auf dieser Seite

Problembeschreibung

Stellen Sie sich das folgende Szenario vor In SQL Server 2005 konfigurieren Sie ein Mergepublikation. Sie fügen eine Tabelle hinzu, die eine Identitätsspalte zu dem Mergepublikation enthält. Anschließend fügen Sie in der Tabelle auf dem Verleger Daten ein. Sie synchronisieren die Daten zwischen dem Abonnent und dem Verleger und Sie versuchen dann, zusätzliche Daten auf dem Verleger einzufügen. In diesem Szenario wird folgende Fehlermeldung Ihnen auf dem Verleger angezeigt:
Nachricht 548, Schweregrad 16, Betriebsart 2, Leitung 1
Die Einfügung schlug fehl. Mit einer Identitätsbereichscheckeinschränkung in Datenbank " DatabaseName" stand es in Konflikt, replizierte Tabelle ' Schema. TableName ', Spalte " ColumnName". Wenn die Identitätsspalte von Replikation automatisch verwaltet wird, aktualisieren Sie den Bereich wie folgt: für den Verleger führen Sie sp_adjustpublisheridentityrange aus; der Verteilungs-Agent oder der Merge-Agent für den Abonnenten ausgeführt werden.
Falls Sie versuchen speicherte das Ausführen des sp_adjustpublisheridentityrange Prozedur auf dem Verleger genannt wie in der Fehlermeldung, Sie speicherten, Sie können dieses Problem weiterhin nicht lösen.

Dieses Problem tritt bei dem Synchronisieren von Daten mehreren Merge-Agenten zu der gleichen Zeit für dasselbe Mergepublikationen auf. Dieses Problem kann exacerbate werden, wenn Sie über wie viele Abonnenten zu dem Mergepublikation verfügen.

Ursache

Dieses Problem tritt auf, da der aktuelle Identitätswert der Tabelle auf dem Verleger nicht innerhalb des Identitätsbereichs der Identitätsbereichscheckeinschränkung ist. Dieses Verhalten tritt auf, wenn mehrere Merge-Agenten versuchen, den Identitätsbereich zu der gleichen Zeit zu erhöhen, indem mehrere Merge-Agenten den nächsten Identitätsbereich auf dem Verleger erstellen.

Lösung

In Cumulative Update 8 wurde die Fehlerbehebung für dieses Problem zuerst freigegeben. Erhalten Sie Weitere Informationen wie dieses kumulative Update-Paket für SQL Server 2005 Service Pack 2 zu erhalten wird, indem auf die folgende Artikelanzahl klickt, um den Artikel der Microsoft Knowledge Base zu lesen:
951217  (http://support.microsoft.com/kb/951217/LN/ ) Kumulatives Update-Paket 8 für SQL Server 2005 Service Pack 2
Hinweis: neues einzelnes Korrigierrelease enthält alle Hotfixes, da die Erstellung kumulativ sind, und alle Sicherheitsupdates beheben Version, die mit dem vorherigen SQL Server 2005 enthalten waren. Microsoft empfiehlt, dass Sie das Anwenden der letzten Korrigierversion berücksichtigen, die dieses Hotfix enthält. Klicken Sie auf die folgende Artikelanzahl, um weitere Informationen zu erhalten, um den Artikel der Microsoft Knowledge Base zu lesen:
937137  (http://support.microsoft.com/kb/937137/LN/ ) Das SQL Server 2005, das veröffentlicht wurde, nachdem SQL Server 2005 Service Pack 2 freigegeben wurde, wird erstellt
Microsoft SQL Server 2005-Hotfixes werden SQL Server auf bestimmten Service Pack erstellt. Auf einer Installation von SQL Server 2005 Service Pack 2 müssen Sie ein SQL Server 2005 Service Pack 2 Hotfix anwenden. Beliebiges Hotfix, das in einem Service Packs SQL Server angegeben wird, ist standardmäßig SQL Server in dem nächsten Service Pack enthalten.

Abhilfe

Um dieses Problem umzugehen, müssen Sie mehrere gleichzeitigen Zusammenführungssynchronisierungen verhindern. Legen Sie die max concurrent merge Eigenschaft dazu für das Mergepublikation fest, indem Sie die folgende Anweisung ausführen:
sp_changemergepublication '<PublicationName>', 'max_concurrent_merge', 1
Hinweis: wenn Sie über wie viele Abonnenten für die Publikation verfügen, kann Leistung verringern, nachdem Sie diese Abhilfe verwenden. Liegt daran, dass nur ein Abonnent Daten zu einem Zeitpunkt synchronisieren kann.

Status

Microsoft hat bestätigt, dass es sich dabei, um ein Problem bei den Microsoft-Produkten, die in dem Abschnitt "Betrifft" aufgeführt sind, handelt.

Weitere Informationen

Wie Ermitteln dieses Problem von auftritt

Gehen Sie folgendermaßen vor, um festzustellen, ob dieses Problem auftritt:
  1. Überprüfen Sie, dass der aktuelle Identitätswert kleiner als die untere Grenze des ersten Identitätsbereichs der Identitätsbereichscheckeinschränkung ist.

    Führen Sie die folgende Anweisung aus, um den aktuellen Identitätswert zu erhalten:
    SELECT IDENT_CURRENT ('<TableName>')
    Führen Sie beide folgende Anweisungen aus, um die Identitätsbereiche der Identitätsbereichscheckeinschränkung zu erhalten:
    Anweisung 1
    sp_helpconstraint '<TableName>'
    Statement 2
    select * from MSmerge_identity_range
    where is_pub_range <>1
    AND artid IN 
     (select artid from sysmergearticles where name='<TableName>')
    AND subid in 
     (select subid from sysmergesubscriptions  MS
    join sysmergepublications MP 
    on MS.subscriber_server=MP.publisher
    AND MS.db_name = MP.publisher_db
    WHERE name='<PublicationName>'
    )
    
  2. Verwenden Sie ein SQL Server Prof-Iler-Ablaufverfolgung, um zu ermitteln, ob mit verzahnten Ausführungen der sp_MSsetup_publisher_idrange Prozedur, das gespeichert wird, mit separaten Merge-Agentensitzungen für dieselbe Publikation begonnen wird.

    Verzahnten Ausführungen der sp_MSsetup_publisher_idrange Prozedur, das gespeichert wird, bedeutet jedoch immer nicht, dass dieses Problem auftritt. Das ist, da SQL Server Profiler nicht ausgeführt wurde, wenn das ursprüngliche Occurance der Zusammenführungssynchronisierung die erste Fehlermeldung erzeugte. Verzahnte Ausführungen der sp_MSsetup_publisher_idrange Prozedur, das gespeichert wird, erhöhen jedoch die Möglichkeit von dem Auftreten diesem Problem.
  3. Sie finden überlappende Zusammenführungssynchronisierungen, die bei dem Auftreten der "548" Fehlermeldung auftreten, wenn Sie erhalten. Zu Zweck können Sie den Zusammenführungsverlauf in der Verteilungsdatenbank überprüfen. Führen Sie zu Zweck die folgenden Anweisungen aus:
    Use distribution
    GO
    select session_id, agent_id, B.publication, min(time) as StartTime, max(time) as EndTime
    into #sessiontimes
    from dbo.MSmerge_history A
    join dbo.msmerge_agents B
    on A.agent_id = B.id
    group by session_id, agent_id, publication
    order by 3 desc
    GO
    -- The left side result is the original session. The right side result is the overlapping session.
    select A.*, B.* 
    from #sessiontimes A
    Join #sessiontimes B
    On B.StartTime >= A.StartTime
    AND B.StartTime <= A.EndTime
    AND A.session_id <> B.session_id
    And A.publication=B.publication
    Order By A.StartTime asc
    GO
    drop table #sessiontimes
    

Wie vorhanden behoben wird, beschädigte Identitätsbereiche für eine problematische Tabelle

Nachdem Sie das kumulative Update installieren oder in dem Umgehungsproblemabschnitt die Methode verwenden, die beschrieben wird, wird ein vorhanden beschädigen Identitätsbereich in einer Tabelle nicht korrigiert. Wenn Sie versuchen, Daten in der Tabelle einzufügen und Daten auf einem Abonnent zu synchronisieren, wird die "548" Fehlermeldung weiterhin Ihnen angezeigt. Daher müssen Sie die beschädigten Identitätsbereiche für die Tabelle manuell korrigieren. Gehen Sie hierzu folgendermaßen vor

Hinweis: diese Schritte umfassen, den aktuellen Identitätsausgangswert manuell außer Kraft zu setzen, die Tabelle den Identitätswert auf dem Verleger korrekt zu reseed. Der aktuelle Identitätswert ist kleiner als das erste Identitätsbereich in der Zusammenführungsreplikationsidentitätsbereichscheckeinschränkung in dem beschädigten Zustand. Um in dem Identitätsbereich zu liegen, der von der Zusammenführungsreplikationsidentitätsbereichscheckeinschränkung definiert wird, lösen die Schritte manuell den Identitätswert aus. Diese Schritte setzen voraus, dass Identitäten auf einer aufsteigenden Weise von Ihnen konfiguriert werden, und der Identitätsschritts so konfiguriert wird, nach einem Wert 1 zu steigen.
  1. Überprüfen Sie, dass der Identität-Inkrement-Wert 1 ist, und die Identität in dem Aufsteigen von Weise fortgesetzt wird. Sie können den Identität-Inkrement-Wert abrufen, indem Sie auf dem Verleger die folgende Anweisung ausführen:
    SELECT IDENT_INCR( '<TableName>')
  2. Führen Sie die folgende Anweisung auf dem Verleger aus, um den aktuellen Identitätswert für die problematische Identitätsspalte zu ermitteln:
    DBCC CHECKIDENT ('<TableName>')
    Notieren Sie den current identity value Wert für Vergleich in den späteren Schritten sich, nachdem Sie das Ergebnis erhalten. Beachten Sie das current column value Valye kann größer oder kleiner als current identity value der Wert sein.

    Wenn der current column value Wert größer als current identity value der Wert ist kann der Spalte-Werts, um andere Replikationen in der Topologie stammen und erfolgreich mit der Verlegerreplikation zusammengeführt worden sein. Wenn der current column value Wert kleiner als current identity value der Wert ist, sind die Werte möglicherweise zu einem früheren Zeitpunkt auf dem Verleger eingefügt worden, indem die Anweisung von SET IDENTITY INSERT ON vor der Zusammenführungsreplikationskonfiguration verwendet.
  3. Führen Sie die folgenden Anweisungen auf dem Verleger aus, um zu ermitteln, dass die aktuellen Identitätsbereiche des Identitätsbereichs Einschränkung für die problematische Tabelle überprüfen:
    Use <PublishedDatabaseName>
    GO
    sp_helpconstraint '<TableName>'
    GO
    
    Notieren Sie den Wert der Spalte von constraint keys von dem Datensatz, von dem der Wert der Spalte von constraint name "repl_identity_range_ GUID" ist, sich, nachdem Sie das Ergebnis erhalten. Der GUID-Wert entspricht dem Wert der Spalte von Artid für den Artikel in der Sysmergearticles-Systemtabelle. Führen Sie die folgende Anweisung aus, um das GUID zu erhalten:
    select artid from sysmergearticles where name = '<TableName>'
    Die Identitätsbereichscheckeinschränkung erstreckt sich über zwei separate Bereiche. Die zwei Mengen der Bereiche müssen nicht zusammenhängend sein. Beispielsweise kann es den folgenden Wert der Spalte von constraint keys geben:
    ([ ColumnName]>(1001) und [ColumnName]<=(2001) ] ]) ] ])
    [ColumnName > ( 9001 ) und [ColumnName]<=(10001))]]
    Hinweis: dieser Artikel verwendet dieses Beispiel, um Code in den übrigen Schritten zu bieten.

    In diesem Beispiel umfassen jede Bereiche 1.000 Werte. Hat 1.000 die Standardbereichsgröße. Sie können die Identitätsbereichsgröße jedoch ändern, indem Sie eine der folgenden Methoden verwenden:
    • Geben Sie den <I> @ pub identity range-</I>-Parameter an, wenn Sie die sp_addmergearticle Prozedur ausführen, das gespeichert wird.
    • Ändern Sie die Subscriber range size Eigenschaft für den Artikel in dem Dialogfeld Article Properties.
  4. Der aktuelle Identitätswert, den Sie sich in Schritt 2 notierten, soll kleiner als die untere Grenze des ersten Identitätsbereichs der Identitätsbereichscheckeinschränkung, die Sie in Schritt 3 angaben sein, wenn das Problem auftritt, das in dem "Symptom" Abschnitt beschrieben wird.

    Überprüfen Sie für den Identitätsbereich Einschränkung, beheben Sie das Problem, indem Sie die Methode verwenden, die in der Fehlermeldung empfohlen wird, wenn der aktuelle Identitätswert in Schritt 2 größer als die obere Grenze des zweiten Identitätsbereichs ist. In daher sollten Sie die sp_adjustpublisheridentityrange, das gespeichert wird, Prozedur auf dem Verleger ausführen.

    Findet mehreres Weitere Informationen zu der Prozedur sp_adjustpublisheridentityrange, das gespeichert wird, Network (MSDN) auf der folgenden Microsoft Developer 's-Website:
    http://msdn.microsoft.com/en-us/library/ms181527.aspx (http://msdn.microsoft.com/en-us/library/ms181527.aspx)
  5. Führen Sie die folgende Anweisung aus, um zu ermitteln, ob alle Zeilen in den aktuellen Identitätsbereichen der Identitätsbereichscheckeinschränkung liegen:
    SELECT COUNT(*) FROM TableName WHERE 
    ([ColumnName]>(1001) AND [ColumnName]<=(2001) 
    OR [ColumnName]>(9001) AND [ColumnName]<=(10001))
    
    Notizen
    • Wenn die Anweisung Wert 0 zurückgibt, liegen keine Zeilen in den aktuellen Identitätsbereichen. Fahren Sie in Fall mit Schritt 6 fort.
    • Führen Sie die folgende Anweisung, wenn die Anweisung einen Wert zurückgibt, der größer als 0 ist, aus, um den maximalen Identitätswert in den aktuellen Identitätsbereichen zu erhalten:
      SELECT MAX(ColumnName) as MaxValue FROM TableName WHERE 
      ([ColumnName]>(1001) AND [ColumnName]<=(2001) OR 
      [ColumnName]>(9001) AND [ColumnName]<=(10001))
      
      Notieren Sie sich den zurückgegebenen Wert, und fahren Sie dann mit Schritt 7 fort.
  6. Reseed Sie die aktuelle Identität manuell, die problematische Tabelle die aktuelle Identität in einem gültigen Bereich zu liegen.

    Reseed Sie die aktuelle Identität auf dem niedrigsten Wert aktuellem Identitätsbereich plus 1. Der erste in-range mögliche Wert ist beispielsweise 1002, da das niedrige Ende des Bereichs der Identitätsbereichscheckeinschränkung die größere verwendet, wenn der niedrigste Wert der aktuellen Identitätsbereiche 1001 ist als Zeichen (>). Führen Sie auf dem Verleger zu Zweck die folgende Anweisung aus, und fahren Sie dann mit Schritt 8 fort:
    DBCC CHECKIDENT ('TableName', RESEED, 1002)
  7. Reseed Sie die aktuelle Identität manuell, die problematische Tabelle die aktuelle Identität in einem gültigen Bereich zu liegen.

    Gehen in Ihnen davon aus, dass der Identitätsschritt 1 ist. Reseed Sie die aktuelle Identität in dem Wert, den Sie in Schritt 5 notierten, und fügen Sie dann 1 hinzu. Reseed Sie die aktuelle Identität zu 1508 beispielsweise, wenn der Wert, den Sie sich in Schritt 5 notierten, 1507 ist. Führen Sie auf dem Verleger zu Zweck die folgende Anweisung aus:
    DBCC CHECKIDENT ('TableName', RESEED, 1508)
  8. Führen Sie einen Test durch, um zu ermitteln, ob neue Zeilen in der Tabelle in der Verlegerdatenbank eingefügt werden können, ohne Fehler 548 aufzutreten.
Klicken Sie auf die folgende Artikelanzahl für Weitere Informationen zu dem Ändern von Dateien, das das Hotfix enthält, das in diesem Artikel der Microsoft Knowledge Base beschrieben wird, und Information über beliebige Voraussetzungen das kumulative Update-Paket anzuwenden, das das Hotfix enthält, das in diesem Artikel der Microsoft Knowledge Base beschrieben wird, den Artikel der Microsoft Knowledge Base zu lesen:
951217  (http://support.microsoft.com/kb/951217/LN/ ) Kumulatives Update-Paket 8 für SQL Server 2005 Service Pack 2

Informationsquellen

Erhalten Sie Weitere Informationen Builds zu der Liste, die nach SQL Server Service Pack 2 verfügbar sind, indem auf die folgende Artikelanzahl klickt, um den Artikel der Microsoft Knowledge Base zu lesen:
937137  (http://support.microsoft.com/kb/937137/LN/ ) Das SQL Server 2005, das veröffentlicht wurde, nachdem SQL Server 2005 Service Pack 2 freigegeben wurde, wird erstellt
Erhalten Sie Weitere Informationen für SQL Server zu dem Incremental Servicing Model, indem auf die folgende Artikelanzahl klickt, um den Artikel der Microsoft Knowledge Base zu lesen:
935897  (http://support.microsoft.com/kb/935897/LN/ ) Ein Incremental Servicing Model ist von dem SQL Server-Team verfügbar, Hotfixes für gemeldete Probleme zu übermitteln
Erhalten Sie Weitere Informationen wie SQL Server 2005 Service Pack 2 zu erhalten wird, indem auf die folgende Artikelanzahl klickt, um den Artikel der Microsoft Knowledge Base zu lesen:
913089  (http://support.microsoft.com/kb/913089/LN/ ) Wie Installieren des neusten Service Pack für SQL Server 2005
Findet weitere Informationen zu den neuen Funktionen und den Verbesserungen von SQL Server 2005 Service Pack 2 auf dem folgenden Website von Microsoft:
http://go.microsoft.com/fwlink/?LinkId=71711 (http://go.microsoft.com/fwlink/?LinkId=71711)
Klicken Sie auf die folgende Artikelanzahl, um weitere Informationen zu dem Namensschema für Aktualisierungen von SQL Server zu erhalten, um den Artikel der Microsoft Knowledge Base zu lesen:
822499  (http://support.microsoft.com/kb/822499/LN/ ) Neu Benennen von Schema für Microsoft SQL Server-Software-Update-Pakete
Aktualisieren Sie für Weitere Informationen zu Software Terminologie, klicken Sie auf die folgende Artikelanzahl, den Artikel der Microsoft Knowledge Base zu lesen:
824684  (http://support.microsoft.com/kb/824684/ ) Beschreibung der Standardterminologie, die zu dem Beschreiben von Softwareupdates von Microsoft verwandt wird

Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium-based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium-based Systems
  • Microsoft SQL Server 2005 Workgroup Edition
Keywords: 
kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced kbhotfixserver kbautohotfix kbsql2005repl KB953481 KbMtde kbmt
Maschinell übersetzter ArtikelMaschinell ü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: 953481  (http://support.microsoft.com/kb/953481/en-us/ )
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.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store