KB2733630 – Yhdistämisagentti voi epäonnistua SQL Server yhdistämisen replikoinnin synkronoinnin aikana

Käytetään kohteeseen
SQL Server 2008 Developer SQL Server 2008 Enterprise SQL Server 2008 Express SQL Server 2008 R2 Datacenter SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Express SQL Server 2008 R2 Parallel Data Warehouse SQL Server 2008 R2 Standard SQL Server 2008 R2 Web SQL Server 2008 R2 Workgroup SQL Server 2008 Standard SQL Server 2008 Web SQL Server 2008 Workgroup SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Enterprise Core SQL Server 2012 Express SQL Server 2012 Standard SQL Server 2012 Web SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

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

Kyselyn tulokset

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:

Kyselyn tulos sukupolvien mukaan

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