PARANDUS: Saate tõrketeateid mälu-Web sünkroonimine SQL Server 2005 või SQL Server 2008 koostepaljundus kasutamisel

VEA nr: 119532 (Content Maintenance)
TabelLaienda number: 344705
TabelLaienda number: 365477
TabelLaienda number: 365476

Microsoft levitab Microsoft SQL Server 2005 Kiirparandusi ühe allalaaditava failina. Kuna parandused on kumulatiivsed, sisaldab iga uus kõiki Kiirparandusi ja kõiki turvaparandusi, mis lisandusid eelmise SQL Server 2005 paranduse väljalaskes. Microsoft levitab Microsoft SQL Server 2008 Kiirparandusi ühe allalaaditava failina. Kuna parandused on kumulatiivsed, sisaldab iga uus kõiki Kiirparandusi ja kõiki turvaparandusi, mis lisandusid eelmise SQL Server 2008 paranduse väljalaskes.

Sümptomid

Kasutate SQL Server 2005 koostepaljundus või SQL Server 2008 koostepaljundus Web sünkroonimisel vastavalt tellija. Mäluleke pärast korduvat sünkroonimine ja võite saate veateateid "out of memory" aja möödudes. See muutub märgatavam kui hostprotsessi töö pole taaskäivitatud pikka aega, näiteks ühendada Agent (Replmerg.exe) - pidev lüliti kasutamisel või kui pidev parameeter on määratud Agent profiili, mis on seotud agent. See probleem võib mõjutada ka RMO rakenduse või teenuse, mida olete välja töötanud, mis käivitatakse sünkroonimine tsükkel, kui rakendus töötab mitu päeva ilma väljumisel.

Põhjus

Pärast iga sünkroonimise lekkinud mitu sisemise objektid.

Lahendus

SQL Server 2005 Service Pack 3


Lahendus sellele probleemile oli esimene avaldatud kumulatiivne Update 6 SQL Server 2005 Service Pack 3. Selle koondvärskenduse paketi kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

974648 Kumulatiivne värskenduspaketi 6 SQL Server 2005 Service Pack 3Märkus. Et järgud on kumulatiivsed, iga uus versioon sisaldab kõiki Kiirparandusi ja kõiki turvaparandusi, mis lisandusid eelmise SQL Server 2005 parandada keskkonda. Microsoft soovitab rakendada kõige uuema parandustepaketi, mis sisaldab seda kiirparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi artikli kuvamiseks järgmist artiklinumbrit:

960598 the SQL Server 2005 järgud, mis anti välja pärast SQL Server 2005 Service Pack 3.
Microsoft SQL Server 2005 Kiirparandusi luuakse konkreetse SQL serveri hoolduspakette. SQL Server 2005 hoolduspaketi SP3 installi peate rakendama kiirparandust SQL Server 2005 Service Pack 3. Vaikimisi sisaldab käigultparandused, SQL Server service Pack antud järgmise SQL Server service Pack.

SQL Server 2008 väljalaskeversiooni

NB! See parandus tuleb installida, kui kasutate SQL Server 2008 väljalaskeversiooni.

Sellele probleemile lahenduse anti esmakordselt välja kumulatiivne värskendus 8. SQL Server 2008 selle koondvärskenduse paketi hankimise kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

975976 Kumulatiivne update pakett 8 SQL Server 2008Märkus. Et järgud on kumulatiivsed, iga uus versioon sisaldab kõiki Kiirparandusi ja kõiki turvaparandusi, mis lisandusid eelmise SQL Server 2008 paranduse väljalaskes. Soovitame rakendada kõige uuema parandustepaketi, mis sisaldab seda kiirparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi artikli kuvamiseks järgmist artiklinumbrit:

956909 SQL Server 2008 järgud, mis anti välja pärast SQL Server 2008 anti välja

SQL Server 2008 Service Pack 1

NB! Kui kasutate SQL Server 2008 Service Pack 1, peate installima selle paranduse.


Lahendus sellele probleemile oli esimene avaldatud kumulatiivne Update 5 SQL Server 2008 Service Pack 1. Selle koondvärskenduse paketi kohta lisateabe saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

975977 Kumulatiivne värskenduspaketi 5 SQL Server 2008 Service Pack 1Märkus. Et järgud on kumulatiivsed, iga uus versioon sisaldab kõiki Kiirparandusi ja kõiki turvaparandusi, mis lisandusid eelmise SQL Server 2008 paranduse väljalaskes. Microsoft soovitab rakendada kõige uuema parandustepaketi, mis sisaldab seda kiirparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi artikli kuvamiseks järgmist artiklinumbrit:

970365 SQL Server 2008 järgud, mis anti välja pärast SQL Server 2008 Service Pack 1
Microsoft SQL Server 2008 Kiirparandused luuakse konkreetse SQL serveri hoolduspakette. SQL Server 2008 Service Pack 1 installi peate rakendama kiirparandust SQL Server 2008 Service Pack 1. Vaikimisi sisaldab käigultparandused, SQL Server service Pack antud järgmise SQL Server service Pack.

Olek

Microsoft on kinnitanud, et see probleem esineb jaotises "Kehtib järgmiste toodete kohta" loetletud Microsofti toodetel.

Lahendus

Selle probleemi lahendamiseks kasutage ühte järgmistest meetoditest.

1. meetod

Kui kasutate liitmine agent pidev režiimis, aeg-ajalt liitmine agent protsessi peatada ja uuesti alustada.

Näiteks saate viie päeva pärast "out of memory" tõrked ja ühendada Agent plaanitud töö. Seejärel ajastada uue SQL Server agenti tööst helistada sp_stop_job , millele järgneb sp_start_job määramise oma ühendada Agent töö nimi, mis aktiveeritakse mõjutatud protsessi iga viie päeva tagant. Antakse välja iga sees protsessi mälu lekkinud mälu kui ühendada Agent (Replmerg.exe) protsessi lõpetamiseks.

Lisateavet kasutus - pidev lüliti ühendada Agent kohta lugege järgmist Microsoft Developer Networki (MSDN) veebisaiti:

http://msdn.microsoft.com/en-us/library/ms147839.aspx

sp_stop_job http://msdn.microsoft.com/en-us/library/ms182793(SQL.90).aspx

sp_start_job http://msdn.microsoft.com/en-us/library/ms186757(SQL.90).aspx

2. meetod

Liitmine agent töö kasutamisel võib konfigureerida käsitsi Silmukoiminen loogikat sees töö, kasutades meetmeid selle asemel pidev parameeter. Asemel üks liitmine agent protsessi pidevalt sisemiselt igavesti hoidke ajastada liitmine Agent sammuna töö kordub pidevalt nagu iga minuti järel. Protsess sulgub korduskatsete vahel ning see vabastab kõik lekkinud mälu.
Redigeerige ühendada Agent töö nii, et juhiseid korrata koos pause vahel tsükkel kordub.

  1. Pärast sammu [3] "Tuvasta nonlogged agent sulgemine" Lisa uus samm [4] nimega "Silmus määramata uuesti." Seadke tüüp TSQL käsk "skriptile viivitus ' 0: 00:05" ", osutab see TSQL viivitus 5 teine pause, mille saate konfigureerida nii pollidevahelise intervalli nii, et liitmine agent vahel täitmiste korraks peatada ja ei tööta pidevalt. Klõpsake vahekaardi Määrake "On edu toiming" tõrge Action""Mine samm [2] Run Agent"ja" kui "Ava samm [2] Run Agent."

  2. Redigeerige samm [2] Run Agent tagamaks tehakse silmus samm [4]. Samm [2] vahekaardi Täpsemalt edu On toimingu seadmine "jätkake: [4] määramata uuesti tsükkel" ja "Minna järgmise sammu juurde." On rike toimingu seadmine

  3. Redigeeri samm [3] "Avastamine nonlogged agent sulgemine" veendumaks, et tsükkel etapis [4] on saavutatud. [3] samm vahekaardi Täpsemalt On edu toimingu seadmine, "Minna järgmise sammu juurde". Samuti võite otsustada, kas samm [3] On rike toiming tuleb nagu "Minna järgmise sammu juurde" või "Quit tõrkest teatavad töö." Kui see on konfigureeritud sulgemine, seda näitab töö tõrge replikatsiooni jälgida ja kontrollida töö. Kui see on konfigureeritud jätmise neljas silmus jätkake, liitmine agent uuesti käivitada lõputult ja vead sisse loginud lõputult.

3. meetod

Samuti RMO rakenduse kasutamisel MergeSynchronizationAgent.Synchronize() meetod, mis sünkroonib tellija andmebaas on silmus peatage ja taaskäivitage protsess aeg-ajalt vaba mälu, mis on lekkinud selle probleemi tõttu.
Selle objekti ja meetodi kohta lisateabe saamiseks lugege järgmist Microsoft Developer Networki (MSDN) veebisaiti: http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.replication.mergesynchronizationagent.synchronize(SQL.90).aspx

Lisateabe saamiseks

Käituspinu teave

Mäluleke 1


See mäluleke vaikekuhjast. Vaikekuhjast muutub väga tükeldatud, sest väike 32 byte stringi lekib.0:000> !heapstats 0 -sHeap=0x00140000 BusyCount=1380235 BusyBytes=55115099
Found allocations in range of 0->151496 bytes.
Largest count is 850531 for memory blocks of size 32
Largest bytes used is 27216992 bytes for memory blocks of size 32

Size Count Total Percent Of Maximum Allocation Size In Range
------ ------ -------- ----------------------------------------------------------------------------------------------------
32 850531 27216992 ****************************************************************************************************
48 306892 14730816 ******************************************************
64 100583 6437312 ***********************
16 93995 1503920 *****
80 11068 885440 ***
151496 3 454488 *
256 1386 354816 *
160 1866 298560 *
904 131 118424

Selles näites 32-baidine eraldised lisada kuni 27 MB toime. Siiski on vaikekuhjast suure reserveerimine osaliselt seetõttu, et need lekkinud objektid jaotuvad seda kuhja ja fragment vahel blokeerib vaba ruumi.



Need eraldused 32 byte enamik pärit SysAllocString kõnede kood on SysFreeString või Kustuta kõnet.0:000> kLChildEBP RetAddr
0012b878 4c0a2f7b xmlsub!CXMLSubscriber::ReadAgentProfileParameter+0x1dd
0012b8b4 4e67a7e4 msgprox!CProxyMessageDatasource::ReadAgentProfileParameter+0x5b
0012bc18 4e6a65fe replrec!CDatabaseReconciler::UpdateAgentProfileCache+0x384
0012bda8 4e6a9281 replrec!CDatabaseReconciler::MoveChangesToDest+0x219e
0012cff8 4e6aae46 replrec!CDatabaseReconciler::CoreReconcile+0x1b01
0012d9ec 4e6ab388 replrec!CDatabaseReconciler::MessageReconcile+0x1206
0012ed90 4d1b651d replrec!CDatabaseReconciler::Reconcile+0x398
0012edd0 4dbf6331 sqlmergx!CSQLMerge::Run+0x18d
0012ede0 4de729b8 Microsoft_SqlServer_Replication!SQLMERGXLib::ISQLMerge::Run+0x11
0012ee70 4de70ed1 Microsoft_SqlServer_Replication_ni!Microsoft.SqlServer.Replication.MergeSynchronizationAgent.Run()+0x14c
0012eef8 00d2862b Microsoft_SqlServer_Replication_ni!Microsoft.SqlServer.Replication.MergeSynchronizationAgent.Synchronize()+0x71

Teine leke toimub C käitusaja kuhja replikatsiooni seotud COM-objektide. See leke näha skannides kõik korrastamine osutab objektide sisse kasutades MDACExts laiendit replrov.dll Raamatukogu vftable! tablescan.0:000> !tablescan 'x replprov!*vftable*' 0Count Total Bytes Size Address Function
-------- ----------- ------ ---------- ----------------------------------------------------------------------------------------------------
1806 43344 24 0x4c9d1868 replprov!CReplicationProvider::`vftable'
1719 13752 8 0x4c9d1858 replprov!CSupportErrorInfo::`vftable'
1806 2066064 1144 0x4c9d1ba0 replprov!CMergePublisher::`vftable'
1806 7238448 4008 0x4c9d6250 replprov!CMergeDatasource::`vftable'
1806 7238448 4008 0x4c9d61a8 replprov!CMergeDatasource::`vftable'

Kui teil on tabelis skannida, saate vaadata selle leke põhjal märkida (24,8,1144, 4008). Selleks käivitage järgmine käsk tüüpi selle korrastamine:0:000> !heapstats 0x003e0000 -s
Heap=0x003e0000 BusyCount=9363 BusyBytes=12555368
Found allocations in range of 4->8192 bytes.
Largest count is 1897 for memory blocks of size 8
Largest bytes used is 7238448 bytes for memory blocks of size 4008

Size Count Total Percent Of Maximum Allocation Size In Range
----- ----- ------- ----------------------------------------------------------------------------------------------------
4008 1806 7238448 ****************************************************************************************************
3128 900 2815200 **************************************
1144 1806 2066064 ****************************
etc...


Peamine eesmärk on selle CReplicationProvider. Kolm tütarobjektid on peamine objektile tagasi näpunäiteid. Seetõttu need objektid koos rakendusega viide arvu, mis üksteist. Hävitada need objektid, peate kõik viide loeb vähendada 0. Kuna viide loeb seda pole kahandatud õigesti koodis, on neli objekte ei hävitada iga kord, kui objekte kasutada.



Märkused

Kui kasutate leke jälgimise programmid, meetodit, mis on eraldatud 3 4 lekkinud objektide on "replprov! CReplicationProvider::InitInstance".



Kõne uut kohta CReplicationProvider ise on 4 objekti.



Mäluleke 2


Muud mäluleke, mis selles versioonis parandatud kasutab kuhja blokeerib suurus 32 baiti ja 48 baiti ja sisaldab veerunimesid kopeeritud artiklitest. Osa selles pinu on järgmine:xmlsub!CXMLSubscriberCommon::ReadNodexmlsub!CXMLSubscriberCommon::FindNamedNodeInList

Viited

Kasutamise kohta lisateabe saamiseks - pidev lüliti ühendada Agent kohta külastage järgmist Microsoft Developer Networki (MSDN) veebisaiti:

http://msdn.microsoft.com/en-us/library/ms147839.aspx
Sp_stop_job salvestatud protseduuri kohta lisateabe saamiseks külastage järgmist Microsoft Developer Networki (MSDN) veebisaiti:

http://http://msdn.microsoft.com/en-us/library/ms182793(SQL.90).aspx
Sp_start_job salvestatud protseduuri kohta lisateabe saamiseks külastage järgmist Microsoft Developer Networki (MSDN) veebisaiti:

http://msdn.microsoft.com/en-us/library/ms186757(SQL.90).aspx
Kohta lisateabe saamiseks SQL Server 2005 Service Pack 3 saamiseks klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

913089 kuidas hankida uusim hoolduspakett SQL Server 2005

Uued funktsioonid SQL Server 2005 Service Pack 3 (SP3) ja SQL Server 2005 hoolduspaketi SP3 paranduste kohta lisateabe saamiseks külastage järgmist Microsofti veebisaiti:

http://go.microsoft.com/fwlink/?LinkId=131442SQL serveri värskenduste nimetamise kohta lisateabe klõpsake Microsofti teabebaasi (Knowledge Base) artikli kuvamiseks järgmist artiklinumbrit:

822499 uus failinimede skeem Microsoft SQL serveri tarkvaravärskenduspakettide

Tarkvaravärskenduste terminoloogia kohta lisateabe saamiseks avage Microsofti teabebaasi (Knowledge Base) artikkel, klõpsates järgmist artiklinumbrit:

824684 Microsofti tarkvaravärskenduste iseloomustamiseks kasutatavate standardterminite kirjeldus

Autor: jasonh
Koostaja: v-jayc
Tehniline toimetaja: jasonh;
Toimetaja: v-stepce

Kas vajate veel abi?

Täiendage oma oskusi
Tutvuge koolitusmaterjalidega
Kasutage uusi funktsioone enne teisi
Liitu Microsofti Insideri programmis osalejad

Kas sellest teabest oli abi?

Täname tagasiside eest!

Täname tagasiside eest! Tundub, et võiksime teid kokku viia ühega meie Office'i tugiagentidest, kes aitab teil probleemi lahendada.

×