FIX: Gaunate atminties stokos klaidos pranešimų, kai suliejimo replikavimas su žiniatinklio sinchronizavimo SQL Server 2005 "arba" SQL Server 2008

Taikoma: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Enterprise EditionMicrosoft SQL Server 2005 Developer Edition

Požymiai


Galite naudoti SQL Server 2005 režimą arba SQL Server 2008 režimą su žiniatinklio sinchronizavimo sistemos abonentas. Atminties nutekėjimas atsiranda, kai pakartotinai sinchronizacijų ir gali būti "baigėsi atmintis" klaidos po tam tikro laiko. Tai tampa pastebimas, kai pagrindinis procesas yra nebuvo paleista iš naujo ilgą laiką, pvz., kai naudojamas suliejimo agentas (Replmerg.exe) - nuolat jungiklis arba kai nuolat parametras nurodyta agento profilį, kuriame yra taikomas agentas. Taip pat ši problema gali turėti įtakos RVG taikomosios programos arba pakeitimų, kuriuos sukūrė, kuris veikia sinchronizavimo ciklo programa veikia kelias dienas neišeidami.

Priežastis


Keli vidiniai objektai yra perduotas kiekvieno sinchronizavimo metu.

Sprendimas


SQL Server 2005 3 pakeitimų paketas


Ši problema buvo pirmą kartą buvo išleistas Kaupiamasis naujinimas 6 SQL Server 2005 3 pakeitimų paketą. Jei norite gauti daugiau informacijos apie šį kaupiamųjų naujinimų paketą, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:
974648 kaupiamojo naujinimo paketo 6 SQL Server 2005 3 pakeitimų paketu
Pastaba. Kadangi komponavimo versijos yra kaupiamosios, kiekvienoje pataisų laidoje būna visos karštosios ir visus saugos pataisas, kurios buvo įtrauktos į ankstesnę SQL Server 2005 nustatyti išleidimo. "Microsoft" rekomenduoja, kad manote, kad pritaikyti pačios naujausios pataisų laidos, kuriame bus šios karštosios pataisos. Norėdami gauti daugiau informacijos, spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite „Microsoft Knowledge Base“ žinių bazės straipsnį:
960598 the SQL Server 2005 komponavimo versijos, išleistos po to, kai buvo išleistas SQL Server 2005 3 pakeitimų paketą.
Microsoft SQL Server 2005 karštosios pataisos yra sukurti konkrečių SQL serverio pakeitimų paketus. SQL Server 2005 3 pakeitimų paketo karštosios pataisos turi būti taikomas SQL Server 2005 3 pakeitimų paketo diegimas. Pagal numatytuosius nustatymus, bet karštąsias pataisas, pateiktą "SQL Server" pakeitimų paketą yra įtrauktas į kitą "SQL Server" pakeitimų paketą.

SQL Server 2008 versiją

Svarbu. Jei naudojate SQL Server 2008 versiją, turite įdiegti šį pakeitimą.

Ši problema buvo pirmą kartą buvo išleistas Kaupiamasis naujinimas 8. Jei norite gauti daugiau informacijos apie tai, kaip gauti šį kaupiamųjų naujinimų paketas, skirtas SQL Server 2008, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:
975976 kaupiamojo naujinimo paketo 8 SQL Server 2008
Pastaba. Kadangi komponavimo versijos yra kaupiamosios, kiekvienoje pataisų laidoje būna visos karštosios ir visus saugos pataisas, kurios buvo įtrauktos į ankstesnę SQL Server 2008 pataisymų laidą. Rekomenduojame, kad manote, kad pritaikyti pačios naujausios pataisų laidos, kuriame bus šios karštosios pataisos. Norėdami gauti daugiau informacijos, spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite „Microsoft Knowledge Base“ žinių bazės straipsnį:
956909 the SQL Server 2008 komponavimo versijos, išleistos po to, kai buvo išleistas SQL Server 2008

SQL Server 2008 1 pakeitimų paketas

Svarbu. Jei naudojate SQL Server 2008 1 pakeitimų paketą, turite įdiegti šį pakeitimą.


Ši problema buvo pirmą kartą buvo išleistas Kaupiamasis naujinimas 5 SQL Server 2008 1 pakeitimų paketą. Jei norite gauti daugiau informacijos apie šį kaupiamųjų naujinimų paketą, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:
975977 kaupiamojo naujinimo paketo 5, SQL Server 2008 1 pakeitimų paketas
Pastaba. Kadangi komponavimo versijos yra kaupiamosios, kiekvienoje pataisų laidoje būna visos karštosios ir visus saugos pataisas, kurios buvo įtrauktos į ankstesnę SQL Server 2008 pataisymų laidą. "Microsoft" rekomenduoja, kad manote, kad pritaikyti pačios naujausios pataisų laidos, kuriame bus šios karštosios pataisos. Norėdami gauti daugiau informacijos, spustelėkite toliau pateiktą straipsnio numerį ir peržiūrėkite „Microsoft Knowledge Base“ žinių bazės straipsnį:
970365 the SQL Server 2008 komponavimo versijos, išleistos po to, kai buvo išleistas SQL Server 2008 1 pakeitimų paketas
Microsoft SQL Server 2008 karštosios pataisos yra sukurti konkrečių SQL serverio pakeitimų paketus. SQL Server 2008 1 pakeitimų paketo karštosios pataisos turi būti taikomas SQL Server 2008 1 pakeitimų paketo diegimas. Pagal numatytuosius nustatymus, bet karštąsias pataisas, pateiktą "SQL Server" pakeitimų paketą yra įtrauktas į kitą "SQL Server" pakeitimų paketą.

Būsena


„Microsoft“ patvirtino, kad tai yra „Microsoft“ produktų, išvardytų skyriuje „Taikoma“, problema.

Sprendimas


Norėdami išspręsti šią problemą, naudokite vieną iš toliau nurodytų būdų:

1 būdas

Jei jūs naudojate suliejimo agentas nuolat režimu, sustabdyti suliejimo agentas procesą periodiškai ir paleisti iš naujo.

Pvz., galite gauti "baigėsi atmintis" klaidos po penkių dienų, o jūsų suliejimo agentas planuojama kaip užduotį. Tada galite suplanuoti naują SQL Server agento užduoties paskambinti sp_stop_job eina sp_start_job nurodant savo sujungti agento užduoties pavadinimas, kuris bus ciklą susijusio proceso per penkias dienas. Bandant sustabdyti suliejimo agentas (Replmerg.exe) procesą, bus išleistas nutekėjusį atminties viduje procesą atminties vietos.

Jei norite gauti daugiau informacijos apie naudojimą - nepertraukiamas jungiklio sujungti agento, žr. šioje "Microsoft" programų kūrėjų tinklo (MSDN) žiniatinklio svetainėje:

2 Metodas

Jei naudojate suliejimo agentas iš darbo, gali konfigūruoti rankiniu būdu looping logikos viduje darbą naudojant papildomus veiksmus, užuot vedę nuolat parametras. Vietoj vieno suliejimo agentas procesą viduje visam laikui nuolat padarę, planuoti suliejimo agentas kaip užduoties veiksmą, kartoja dažniau kaip vieną kartą kiekvieną minutę. Procesas bus išeiti iš tarp pakartotinių bandymų skaičius, ir tai atlaisvina nutekėjusį atminties.
Redaguoti sujungti agento užduoties, kad veiksmus pakartokite su pristabdyti tarp ciklo kartoja.
  1. Po veiksmo [3] "Aptikti nonlogged agento išjungti," Pridėti naują etapą [4] pavadinimas "Neribotą kartoti ciklą." Nustatyti ir TSQL komandą "waitfor sulaikymą" 0: 00:05 "", šis TSQL sulaikymą suteiks 5 antrasis sustabdyti, galite konfigūruoti kaip sekundėmis tarp taip, kad suliejimo agentas bus sustabdyti trumpai tarp turto ir paleisti nuolat. Skirtuką Išsamiau nustatyti ", sėkmingai veiksmus" kaip "Eiti į žingsnis [2] paleisti agentas" ir "klaida veiksmas" kaip "Eiti į [2] veiksmo vykdymo agentas."
  2. Redaguoti [2] veiksmo vykdyti agento užtikrinti ciklą [4] veiksmo pasiekiama. Dėl išsamiau [2] veiksmo nustatyti dėl sėkmingos veiksmų, "pereikite prie veiksmo: [4] neribotą kartoti ciklą" ir toliau klaida veiksmų "Pereiti prie kito veiksmo."
  3. Redaguoti [3] veiksmo "Aptikti nonlogged agento išjungimas" įsitikinkite, kad atlikdami [4] linijos pasiekiama. Skirtuką Išsamiau [3] veiksmo, nustatyti, sėkmingai veiksmą, "Pereikite prie kito veiksmo". Galėsite nuspręsti, ar norite apie triktis veiksmų veiksmas [3] nustatyti kaip "Pereiti prie kito veiksmo" arba "Baigti užduotį, praneša apie gedimą." Jei jį išjungti, jis bus rodomas užduoties triktis dubliavimo ir darbo monitoriuje. Jei tai sukonfigūruota nutrūkus eiti į ketvirtą ciklą veiksmas, suliejimo agentas gali pakartotinai neribotą laiką ir klaidos įeiti neribotą laiką.

3 būdas

Be to, jei naudojate RVG programa paskambinti MergeSynchronizationAgent.Synchronize() metodą, kuris sinchronizuoja prenumeratoriaus duomenų bazė ciklo, sustabdyti ir iš naujo reguliariai gauti nemokamą jokių atminties, kuris yra perduotas dėl šios problemos.
Daugiau informacijos apie šį objektą ir metodą, rasite šioje "Microsoft" programų kūrėjų tinklo (MSDN) žiniatinklio svetainėje: http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.replication.mergesynchronizationagent.synchronize(SQL.90).aspx

Nuorodos


Jei norite gauti daugiau informacijos apie tai, kaip naudoti - nepertraukiamas pereiti sujungti agentą, apsilankykite šioje "Microsoft" programų kūrėjų tinklo (MSDN) žiniatinklio svetainėje:
Jei norite gauti daugiau informacijos apie sp_stop_job saugomą procedūrą, apsilankykite šioje "Microsoft" programų kūrėjų tinklo (MSDN) žiniatinklio svetainėje:
Jei norite gauti daugiau informacijos apie sp_start_job saugomą procedūrą, apsilankykite šioje "Microsoft" programų kūrėjų tinklo (MSDN) žiniatinklio svetainėje:
Jei norite gauti daugiau informacijos, kaip gauti SQL Server 2005 3 pakeitimų paketą, spustelėkite šį straipsnio numerį ir peržiūrėkite straipsnį "Microsoft" žinių bazės kaip:

913089 kaip įsigyti naujausią pakeitimų paketą SQL Server 2005

Jei norite gauti daugiau informacijos apie naujas funkcijas, SQL Server 2005 3 pakeitimų paketą (SP3) ir patobulinimų SQL Server 2005 su SP3, apsilankykite šioje "Microsoft" svetainėje:Jei norite gauti daugiau informacijos, kaip SQL Server naujinimų pavadinimų suteikimo schemą, spustelėkite toliau straipsnio numerį ir peržiūrėkite straipsnį Microsoft žinių bazėje:

822499 naujo įvardijimo schema, skirta Microsoft SQL Server programinės įrangos naujinimų paketams

Norėdami gauti daugiau informacijos apie programinės įrangos naujinimo terminiją, spustelėkite toliau esančio straipsnio numerį ir peržiūrėkite „Microsoft“ žinių bazės straipsnį:
824684 Įprastos terminologijos, vartojamos „Microsoft“ programinės įrangos naujinimams apibūdinti, aprašas