Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Konflikter i sammanslagningsreplikering löses baserat på den resolver som anges för varje artikel. Som standard löses konflikter utan behov av användaringripande. Men konflikter kan ses, och resultatet av lösningen kan ändras, i Microsoft Replication Conflict Viewer.
Konfliktdata finns tillgängliga i Replication Conflict Viewer under den tid som anges för konfliktlagringsperioden (med en standardtid på 14 dagar). Om du vill ange kvarhållningsperioden för konflikter gör du något av följande:
Ange ett behållningsvärde för parametern
@conflict_retentionsp_addmergepublication (Transact-SQL).Ange värdet conflict_retention för parametern
@propertyoch ett kvarhållningsvärde för parametern@valuei sp_changemergepublication (Transact-SQL).
Som standard lagras konfliktinformation:
- För utgivaren och prenumeranten om publikationskompatibilitetsnivån är 90RTM eller högre.
- I Publisher om publikationens kompatibilitetsnivå är lägre än 80RTM.
- I Publisher om prenumeranter kör SQL Server Compact. Konfliktdata kan inte lagras på SQL Server Compact-prenumeranter.
Lagring av konfliktinformation styrs av conflict_logging publiceringsegenskapen. För mer information, se sp_addmergepublication (Transact-SQL ) och sp_changemergepublication (Transact-SQL).
Konflikter kan också lösas interaktivt under synkronisering med hjälp av Microsoft Interactive Resolver. Den interaktiva lösaren är tillgänglig via Microsoft Windows Synchronization Manager. Mer information finns i Synkronisera en prenumeration med Windows Synchronization Manager (Windows Synchronization Manager).
Lösa konflikter
Anslut till Publisher (eller Subscriber om det är lämpligt) i Microsoft SQL Server Management Studio, och expandera sedan servernoden.
Expandera mappen Replikering och expandera sedan mappen Lokala publikationer .
Högerklicka på publikationen som du vill visa konflikter för och klicka sedan på Visa konflikter.
Note
Om du angav värdet 'prenumerant' för conflict_logging-egenskapen är menyn Visa konflikter inte tillgänglig. För att se konflikter, börja ConflictViewer.exe från kommandoprompten. Som standard finns ConflictViewer.exe i följande katalog: Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE. För en lista med giltiga startparametrar, kör ConflictViewer.exe -?.
I dialogrutan Välj konflikttabell väljer du en databas, publikation och tabell som du vill visa konflikter för.
I Replikeringskonfliktsvisaren kan du:
Filtrera rader med knapparna till höger om det övre rutnätet.
Välj en rad i det övre rutnätet för att visa information på raden i det nedre rutnätet.
Välj en eller flera rader i det övre rutnätet och klicka sedan på Ta bort, vilket motsvarar att klicka på knappen Skicka vinnare (utan att göra några ändringar i datan).
Klicka på egenskapsknappen (...) om du vill visa mer information om en kolumn som är inblandad i en konflikt.
Redigera data i kolumnen Konfliktvinnaren eller Konfliktförloraren innan du skickar in datan (data är skrivskyddad om kolumnen är grå).
Klicka på Skicka in vinnare för att acceptera raden som utsetts till vinnare av konflikten.
Klicka på Submit Loser för att åsidosätta konfliktlösningen och sprida vidare det värde som har utsetts till förlorare i konflikten till alla noder i topologin.
Välj Logga information om den här konflikten för att logga konfliktdata till en fil. Om du vill ange en plats för filen pekar du på menyn Visa och klickar sedan på Alternativ. Ange ett värde eller klicka på bläddra-knappen (...) och navigera sedan till lämplig fil. Klicka på OK för att avsluta dialogrutan Alternativ .
Stäng visningsprogrammet för replikeringskonflikt.
Visa konfliktinformation
När en konflikt löses i sammanslagningsreplikering skrivs data från den förlorande raden till en konflikttabell. Denna konfliktdata kan ses programmatiskt genom att använda replikeringslagrade procedurer. Mer information finns i Avancerad identifiering och lösning av konflikter vid sammanfogningsreplikering.
Kör sp_helpmergepublication på publiceringsdatabasen hos utgivaren. Notera värdena för följande kolumner i resultatuppsättningen:
centralized_conflicts - 1 indikerar att konfliktrader lagras vid Publisher, och 0 indikerar att konfliktrader inte lagras vid Publisher.
decentralized_conflicts - 1 indikerar att konfliktrader lagras hos prenumeranten, och 0 indikerar att konfliktrader inte lagras hos prenumeranten.
Note
Konfliktloggningsbeteendet för en sammanslagningspublikation sätts genom att använda parametern
@conflict_loggingsp_addmergepublication. Användningen av parametern@centralized_conflictshar föråldrats.
Följande tabell beskriver värdena för dessa kolumner baserat på det värde som anges för
@conflict_logging.@conflict_logging värde centraliserade_konflikter decentraliserade_konflikter förläggare 1 0 Prenumerant 0 1 Båda 1 1 Antingen på Publishern i publikationsdatabasen eller på Subscribern i prenumerationsdatabasen kör du sp_helpmergearticleconflicts. Ange ett värde för
@publicationatt endast returnera konfliktinformation för artiklar som tillhör en specifik publikation. Detta returnerar information om konflikttabeller för artiklar med konflikter. Notera värdet av conflict_table för alla intressanta artiklar. Om värdet av conflict_table för en artikel är NULL har endast borttagningskonflikter förekommit i denna artikel.(Valfritt) Gå igenom konfliktrader för artiklar av intresse. Beroende på värdena på centralized_conflicts och decentralized_conflicts från steg 1, gör något av följande:
Vid Publisher i publikationsdatabasen, kör sp_helpmergeconflictrows. Ange en konflikttabell för artikeln (från steg 1) för
@conflict_table. (Valfritt) Ange ett värde för@publicationatt begränsa returnerad konfliktinformation till en specifik publikation. Detta returnerar raddata och annan information för den förlorande raden.På prenumeranten i prenumerationsdatabasen kör du sp_helpmergeconflictrows. Ange en konflikttabell för artikeln (från steg 1) för
@conflict_table. Detta returnerar raddata och annan information för den förlorande raden.
Konflikt där borttagningen misslyckades
Kör sp_helpmergepublication på publiceringsdatabasen hos utgivaren. Notera värdena för följande kolumner i resultatuppsättningen:
centralized_conflicts - 1 indikerar att konfliktrader lagras vid Publisher, och 0 indikerar att konfliktrader inte lagras vid Publisher.
decentralized_conflicts - 1 indikerar att konfliktrader lagras hos prenumeranten, och 0 indikerar att konfliktrader inte lagras hos prenumeranten.
Note
Konfliktloggningsbeteendet för en sammanslagningspublikation sätts med parametern
@conflict_loggingsp_addmergepublication. Användningen av parametern@centralized_conflictshar föråldrats.
Antingen på Publishern i publikationsdatabasen eller på Subscribern i prenumerationsdatabasen kör du sp_helpmergearticleconflicts. Ange ett värde för
@publicationatt endast returnera konflikttabellsinformation för artiklar som tillhör en specifik publikation. Detta returnerar information om konflikttabeller för artiklar med konflikter. Notera värdet av source_object för eventuella intressanta artiklar. Om värdet av conflict_table för en artikel är NULL har endast borttagningskonflikter förekommit i denna artikel.(Valfritt) Gå igenom konfliktinformation för att ta bort konflikter. Beroende på värdena på centralized_conflicts och decentralized_conflicts från steg 1, gör något av följande:
På Publisher i publiceringsdatabasen, kör sp_helpmergedeleteconflictrows. Ange namnet på källtabellen (från steg 1) där konflikten inträffade för
@source_object. (Valfritt) Ange ett värde för@publicationatt begränsa returnerad konfliktinformation till en specifik publikation. Detta returnerar raderad konfliktinformation som lagrats hos Publisher.På prenumeranten i prenumerationsdatabasen, kör sp_helpmergedeleteconflictrows. Ange namnet på källtabellen (från steg 1) där konflikten inträffade för
@source_object. (Valfritt) Ange ett värde för@publicationatt begränsa returnerad konfliktinformation till en specifik publikation. Detta returnerar borttagningskonfliktinformation som lagrats hos prenumeranten.