Ongelman ilmenemistapa
Yhdistämisagentti saattaa epäonnistua Microsoft SQL Server 2008:n ja SQL Server:n myöhempien versioiden yhdistämisen replikoinnin synkronoinnin aikana. Lisäksi näyttöön tulee seuraava virhesanoma:
Huomautus
Yhdistämisagentti epäonnistui havaittuaan, että säilytyspohjainen metatietojen siivous on poistanut tilaajan metatiedot muutoksille, joita ei ole vielä lähetetty julkaisijalle. Sinun on alustettava tilaus uudelleen (ilman latausta). (Lähde: MSSQL_REPL, virhenumero: MSSQL_REPL-2147199401)
Ohjeita: http://help/MSSQL_REPL-2147199401
Ongelma voi ilmetä useista syistä. Näihin kuuluu monia syitä, jotka ovat odotettavissa tietyissä olosuhteissa. Voit selvittää, oletko kohdannut tämän virheen odottamatta, tutkimalla Syy-osiossa kuvattuja metatietoja.
Syy
Ongelman syy löytyy seuraavista tilaajan järjestelmätaulukoista:
- dbo.sysMergeSubscriptions
- dbo. MsMerge_Genhistory
Varmista, että yhdistämisagentti ei enää synkronoidu. Suorita sitten seuraava kysely ja tarkastele tuloksia:
select sentgen from SubscriberDB.dbo.sysMergeSubscriptions, where pubid = subid and sentgen is not null
Sentgen-sarakkeessa näkyy vanhin muutosryhmä, jonka tilaaja on lähettänyt julkaisijalle. Jos funktio palauttaa useita arvoja, tarkista dbo.sysMergeSubscriptions-taulukon muista sarakkeista, että tarkastelet oikean julkaisun metatietoja. Käytä seuraavaksi arvoa, jonka tämä kysely palauttaa seuraavassa kyselyssä:
valitse ensimmäiset 20 * SubscriberDB.dbo.MSmerge_genhistory, jossa sukupolvi >= sentgen_value sukupolvien mukaanKyselyn tuloksen pitäisi olla seuraavanlainen:
Virhe saattaa ilmetä odottamatta, kun kaikki seuraavat ehdot täyttyvät:
- Sukupolvi-sarakkeen ensimmäisen rivin arvo on hieman suurempi kuin edellisen kyselyn sentgen-arvo.
- Genstatus-sarakkeen arvo on 4.
- Changecount-sarakkeen arvo on 0.
Huomautus: Ensimmäisen rivin coldate-sarakkeen arvo on myös yleensä paljon vanhempi kuin kyseisen sarakkeen arvo muilla riveillä.
Ratkaisu
Voit ratkaista tämän ongelman alustamalla uudelleen virheen aiheuttaneen tilaajan.
Joissakin tilanteissa voit ratkaista tämän ongelman ilman täydellistä uudelleenalustusta. Ota yhteyttä Microsoftin asiakastukeen, jos haluat lisätietoja mahdollisesta vaihtoehtoisesta menetelmästä.
Jos haluat estää tämän ongelman esiintymisen jatkossa, ota käyttöön jokin seuraavista korjauksista käyttämäsi SQL Server -version mukaan.
Kumulatiiviset päivitystiedot
SQL Server 2008
Tähän ongelmaan ei löydy korjausta SQL Server 2008:ssa.
SQL Server 2008 R2 Service Pack 2
Tämän ongelman korjaus julkaistiin ensin kumulatiivisessa päivityksessä 3. Saat lisätietoja tämän SQL Server 2008 R2 Service Pack 2:n kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:
2754552 Kumulatiivinen päivityspaketti 3 SQL Server 2008 R2 Service Pack 2:lle
Huomautus: Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki hotfix-korjaukset ja tietoturvakorjaukset, jotka sisältyivät aiempaan SQL Server 2008 R2 Service Pack 2:n korjausjulkaisuun. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:
2730301 SQL Server 2008 R2 -koontiversiot, jotka julkaistiin SQL Server 2008 R2 Service Pack 2:n jälkeen
SQL Server 2012
Tämän ongelman korjaus julkaistiin ensin kumulatiivisessa päivityksessä 4. Saat lisätietoja tämän SQL Server 2012:n kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:
2758687 SQL Server 2012:n kumulatiivinen päivityspaketti 4
Huomautus: Koska koontiversiot ovat kumulatiivisia, jokainen uusi korjausversio sisältää kaikki edelliseen SQL Server 2012 -korjausversioon sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:
2692828 SQL Server 2012 -koontiversiot, jotka on julkaistu SQL Server 2012:n julkaisemisen jälkeen
SQL Server 2008 R2 Service Pack 1
Tämän ongelman korjaus julkaistiin ensin kumulatiivisessa päivityksessä 8. Saat lisätietoja tämän SQL Server 2008 R2 Service Pack 1:n kumulatiivisen päivityspaketin hankkimisesta napsauttamalla seuraavaa artikkelin numeroa, jolloin pääset lukemaan artikkelin Microsoft Knowledge Base -tietokanta -tietokannassa:
2723743 Kumulatiivinen päivityspaketti 8 SQL Server 2008 R2 SP1:lleKoontiversiot ovat kumulatiivisia, joten jokainen uusi korjausversio sisältää kaikki hotfix-korjaukset ja tietoturvakorjaukset, jotka sisältyivät edelliseen SQL Server 2008 R2 Service Pack 1:n korjausversioon. Suosittelemme, että otat käyttöön uusimman korjausversion, joka sisältää tämän hotfix-korjauksen. Lisätietoja saat napsauttamalla seuraavaa Microsoft Knowledge Base -tietokanta -artikkelinumeroa:
2567616 SQL Server 2008 R2 -koontiversiot, jotka julkaistiin SQL Server 2008 R2 SP1:n julkaisemisen jälkeen