Megosztás a következőn keresztül:


Replikációs naplóolvasó ügynök

A következőkre vonatkozik:SQL ServerAzure SQL Managed Instance

A replikációs naplóolvasó ügynök egy végrehajtható fájl, amely figyeli a tranzakciós replikációhoz konfigurált adatbázisok tranzakciónaplóját, és a tranzakciónaplóból a terjesztési adatbázisba másolja a replikációra megjelölt tranzakciókat.

Megjegyzés:

A paraméterek bármilyen sorrendben megadhatók. Ha a választható paraméterek nincsenek megadva, a rendszer az alapértelmezett ügynökprofilon alapuló előre definiált értékeket használja.

Szemantika

logread [ -? ]
-Publisher server_name [ \instance_name ]
-PublisherDB publisher_database
[ -Continuous ]
[ -DefinitionFile def_path_and_file_name ]
[ -Distributor server_name[ \instance_name ] ]
[ -DistributorLogin distributor_login ]
[ -DistributorPassword distributor_password ]
[ -DistributorSecurityMode [ 0 | 1 ] ]
[ -EncryptionLevel [ 0 | 1 | 2 | 3 | 4 ] ]
[ -ExtendedEventConfigFile configuration_path_and_file_name ]
[ -HistoryVerboseLevel [ 0 | 1 | 2 ] ]
[ -KeepAliveMessageInterval keep_alive_message_interval_seconds ]
[ -LoginTimeOut login_time_out_seconds ]
[ -LogScanThreshold scan_threshold ]
[ -MaxCmdsInTran number_of_commands ]
[ -MessageInterval message_interval ]
[ -MultiSubnetFailover [ 0 | 1 ] ]
[ -Output output_path_and_file_name ]
[ -OutputVerboseLevel [ 0 | 1 | 2 | 3 | 4 ] ]
[ -PacketSize packet_size ]
[ -PollingInterval polling_interval ]
[ -ProfileName profile_name ]
[ -PublisherFailoverPartner server_name[ \instance_name ] ]
[ -PublisherSecurityMode [ 0 | 1 ] ]
[ -PublisherLogin publisher_login ]
[ -PublisherPassword publisher_password ]
[ -QueryTimeOut query_time_out_seconds ]
[ -ReadBatchSize number_of_transactions ]
[ -ReadBatchThreshold read_batch_threshold ]
[ -RecoverFromDataErrors ]

Érvek

-?

Megjeleníti a használati információkat.

-Kiadó server_name [ \instance_name ]

A Közzétevő neve. Adja meg <server_name> az SQL Server alapértelmezett példányát a kiszolgálón. Adja meg <server_name>\<instance_name> a kiszolgálón található SQL Server egy elnevezett példányát.

-PublisherDB publisher_database

A Publisher-adatbázis neve.

-Folyamatos

Megadja, hogy az ügynök folyamatosan próbálja-e lekérdezni a replikált tranzakciókat. Ha meg van adva, az ügynök lekérdezési időközönként lekérdezi a replikált tranzakciókat a forrásból, még akkor is, ha nincsenek függőben lévő tranzakciók.

-DefinitionFile def_path_and_file_name

Az ügynökdefiníciós fájl elérési útja. Az ügynökdefiníciós fájl parancssori argumentumokat tartalmaz az ügynökhöz. A fájl tartalma végrehajtható fájlként van elemezve. Idézőjelek (") használata tetszőleges karaktereket tartalmazó argumentumértékek megadásához.

- Forgalmazói server_name [ \instance_name ]

A forgalmazó neve. Adja meg <server_name> az SQL Server alapértelmezett példányát a kiszolgálón. Adja meg <server_name>\<instance_name> a kiszolgálón található SQL Server egy elnevezett példányát.

-DistributorLogin distributor_login

A forgalmazó bejelentkezési neve.

-ForgalmazóJelszó distributor_password

A forgalmazó jelszava.

-DistributorSecurityMode [ 0 | 1 ]

A forgalmazó biztonsági módját adja meg. Az sql 0 serveres hitelesítési módot (alapértelmezett) és a 1 Windows-hitelesítési módot jelző érték.

-Titkosítási szint [ 0 | 1 | 2 | 3 | 4 ]

A Transport Layer Security (TLS), korábbi nevén Secure Sockets Layer (SSL) titkosítás szintje, amelyet a naplóolvasó ügynök használ a kapcsolatok létrehozásakor.

EncryptionLevel érték Leírás
0 Azt adja meg, hogy a TLS nincs használatban.
1 A TLS 1.2 használatát határozza meg, de az ügynök nem ellenőrzi, hogy a TLS-kiszolgáló tanúsítványát megbízható kiállító írta-e alá.
2 A TLS 1.2 használatát és a tanúsítvány ellenőrzését határozza meg.
3 Megadja, hogy a felügyelt Azure SQL-példányból, illetve az SQL Server 2025-ös és újabb verzióiból az Azure SQL Managed Instance-hez való kapcsolatok esetében a TLS 1.3 legyen használva, és a tanúsítvány hitelesítve legyen. Az SQL Serverrel (bármely támogatott verzióval) létesített kapcsolatok esetén a TLS 1.3 nem lesz kényszerítve a beállítással 3.
4 Megadja, hogy a felügyelt Azure SQL-példányból, illetve az SQL Server 2025-ös és újabb verzióiból az Azure SQL Managed Instance-hez való kapcsolatok esetében a TLS 1.3 legyen használva, és a tanúsítvány hitelesítve legyen. A felügyelt Azure SQL-példányról vagy az SQL Server 2025-ös és újabb verzióiról az SQL Serverre (bármely támogatott verzióra) irányuló kapcsolatok esetén a TLS 1.3-at használja a rendszer, és ellenőrzi a tanúsítványt. A tanúsítványt olyan SQL Server-gazdagépekre kell telepíteni, amelyek a következő beállítással EncryptionLevel4fogadnak kapcsolatokat: .

Az érvényes TLS/SSL-tanúsítvány az SQL Server teljes tartománynevével van definiálva. Ahhoz, hogy az ügynök sikeresen kapcsolódhasson a beállításkor -EncryptionLevel2, hozzon létre egy aliast a helyi SQL Serveren. Az "Alias neve" paraméternek a kiszolgálónévnek kell lennie, a "Kiszolgáló" paraméternek pedig az SQL Server teljes névre kell állítania.

További információ: Replikációs biztonsági beállítások megtekintése és módosítása.

-ExtendedEventConfigFile configuration_path_and_file_name

Megadja a kiterjesztett események XML-konfigurációs fájljának elérési útját és fájlnevét. A kiterjesztett eseménykonfigurációs fájl lehetővé teszi a munkamenetek konfigurálását és az események nyomon követését. Csak belső használatra.

-TörténelemVerboseSzint [ 0 | 1 | 2 ]

A naplóolvasó művelet során naplózott előzmények mennyiségét adja meg. Az előzménynaplózás teljesítményhatását a kijelöléssel 1minimalizálhatja.

HistoryVerboseLevel érték Leírás
0 Nincs.
1 (alapértelmezett) Mindig frissítsen egy korábbi, azonos állapotú előzményüzenetet (indítás, folyamat, siker stb.). Ha nincs ilyen állapotú korábbi rekord, szúrjon be egy új rekordot.
2 Új előzményrekordok beszúrása, kivéve, ha a rekord olyan dolgokra vonatkozik, mint az üresjárati üzenetek vagy a hosszú ideig futó feladatüzenetek, amely esetben frissíti az előző rekordokat.

-KeepAliveMessageInterval keep_alive_message_interval_seconds

Az előzmények szála előtti másodpercek száma ellenőrzi, hogy a meglévő kapcsolatok bármelyike vár-e a kiszolgáló válaszára. Ez az érték csökkenthető annak elkerülése érdekében, hogy a ellenőrzőügynök gyanúsként jelölje meg a naplóolvasó ügynököt egy hosszú ideig futó köteg végrehajtásakor. Az alapértelmezett érték 300 másodperc.

-BejelentkezésIdőKilépés login_time_out_seconds

A bejelentkezési idő túllépése előtt másodpercek száma. Az alapértelmezett érték 15 másodperc.

-LogScanThreshold scan_threshold

Csak tájékoztatási célokra van meghatározva. Nem támogatott. A jövőbeli kompatibilitás nem garantált.

-MaxCmdsInTran number_of_commands

A tranzakcióba csoportosított utasítások maximális számát adja meg, amikor a Naplóolvasó parancsokat ír a terjesztési adatbázisba. Ennek a paraméternek a használatával a Naplóolvasó ügynök és a terjesztési ügynök nagy (több parancsból álló) tranzakciókat oszthat fel a Publisherben több kisebb tranzakcióra, amikor az előfizetőnél alkalmazva van. Ennek a paraméternek a megadása csökkentheti a forgalmazónál való versengést, és csökkentheti a Publisher és az Előfizető közötti késést. Mivel az eredeti tranzakció kisebb egységekben van alkalmazva, az Előfizető hozzáférhet egy nagy logikai Publisher-tranzakció soraihoz az eredeti tranzakció vége előtt, ami megtöri a szigorú tranzakciós atomitást. Az alapértelmezett érték az 0, amely megőrzi a Publisher tranzakciós határait.

Ezt a paramétert a rendszer figyelmen kívül hagyja a nem SQL Server-kiadványok esetében. További információ: A tranzakciókészlet-feladat konfigurálása.

MaxCmdsInTran nem úgy tervezték, hogy mindig be legyen kapcsolva. Olyan esetekben működik, amikor valaki véletlenül nagy számú DML-műveletet hajtott végre egyetlen tranzakcióban. Ez késést okoz a parancsok terjesztésében, amíg a teljes tranzakció a terjesztési adatbázisban nem található, zárolások lesznek tárolva stb. Ha rendszeresen beleesik ebbe a helyzetbe, tekintse át az alkalmazásait, és keresse meg a tranzakció méretének csökkentésére vonatkozó módszereket.

Figyelmeztetés

Az elsődleges kulcs hibái akkor fordulhatnak elő, ha a MaxCmdsInTran paramétert hozzáadják és eltávolítják egy nagy tranzakció replikálása során. A nagy tranzakciók elsődleges kulcshibáinak megoldásához adja hozzá a MaxCmdsInTran paramétert, amíg a tranzakció replikálódik a terjesztési adatbázisba.

Az olyan adatbázisok paraméterének használata, amelyeken engedélyezve van a MaxCmdsInTran Change Data Capture (CDC) és a replikáció is, nem támogatott, és adatvesztéshez vezethet a CDC változástábláiban.

-MessageInterval message_interval

Az előzménynaplózáshoz használt időintervallum. A rendszer naplózza az előzményeseményt, ha az MessageInterval érték az utolsó előzményesemény naplózása után lesz elérve.

Ha a forrásnál nem érhető el replikált tranzakció, az ügynök tranzakciómentes üzenetet küld a forgalmazónak. Ez a beállítás azt határozza meg, hogy az ügynök mennyi ideig várakozik, mielőtt újabb tranzakció nélküli üzenetet küld. Az ügynökök mindig tranzakciómentes üzenetet jelentenek, amikor észlelik, hogy a replikált tranzakciók korábban történő feldolgozása után nem érhetők el tranzakciók a forrásnál. Az alapértelmezett érték 60 másodperc.

-MultiSubnetFailover [ 0 | 1 ]

A: SQL Server 2019 (15.x) és újabb verziókra vonatkozik.

Megadja, hogy a MultiSubnetFailover tulajdonság engedélyezve van-e. Ha az alkalmazás egy Always On rendelkezésre állási csoporthoz (AG) csatlakozik különböző alhálózatokon, a MultiSubnetFailover 1 (igaz) értékre állítása gyorsabb észlelést és kapcsolatot biztosít az (jelenleg) aktív kiszolgálóval.

Amikor tranzakciós kiadványt konfigurál egy AG-n, a Naplóolvasó ügynök létrehoz egy dinamikus csatolt kiszolgálót a figyelő számára a metaadatok ellenőrzéséhez. Az SQL Server 2022 (16.x) CU 10 és újabb verzióiban változás történt a dinamikus csatolt kiszolgáló konfigurációjában. További információ: KB5031778.

-Kimeneti output_path_and_file_name

Az ügynök kimeneti fájljának elérési útja. Ha a fájlnév nincs megadva, a rendszer elküldi a kimenetet a konzolnak. Ha a megadott fájlnév létezik, a kimenet hozzá lesz fűzve a fájlhoz.

-OutputVerboseLevel [ 0 | 1 | 2 | 3 | 4 ]

Megadja, hogy a kimenetnek részletesnek kell-e lennie.

Érték Leírás
0 A rendszer csak a hibaüzeneteket nyomtatja ki.
1 Az ügynök állapotjelentésének összes üzenete ki lesz nyomtatva.
2 (alapértelmezett) A rendszer kinyomtatja az összes hibaüzenetet és az ügynök állapotjelentését.
3 A rendszer az egyes replikált parancsok első 100 bájtját nyomtatja ki.
4 A rendszer minden replikált parancsot kinyomtat.

A hibakeresés során a 2–4. érték hasznos.

-Csomagméret packet_size

A csomag mérete bájtban. Az alapértelmezett érték 4096 (bájt).

-PollingInterval polling_interval

A rendszer másodpercek alatt lekérdezi a naplót a replikált tranzakciókhoz. Az alapértelmezett érték 5 másodperc.

-Profilnév profile_name

Megadja az ügynökparaméterekhez használandó ügynökprofilt. Ha ProfileName igen NULL, az ügynökprofil le van tiltva. Ha ProfileName nincs megadva, a rendszer az ügynöktípus alapértelmezett profilját használja. További információ: Replikációs ügynök profiljai.

-PublisherFailoverPartner server_name [ \instance_name ]

A közzétételi adatbázis adatbázis-tükrözési munkamenetében részt vevő SQL Server feladatátvevő partnerpéldányát adja meg. További információ: Adatbázis-tükrözés és replikáció (SQL Server).

-PublisherSecurityMode [ 0 | 1 ]

A Publisher biztonsági módját adja meg. Az érték az 0 SQL Server-hitelesítést (alapértelmezett) és a 1 Windows-hitelesítési módot jelöli.

-PublisherLogin publisher_login

A Publisher bejelentkezési neve.

-PublisherPassword publisher_password

A Publisher jelszava.

-QueryTimeOut query_time_out_seconds

A lekérdezés időtúllépése előtti másodpercek száma. Az alapértelmezett érték 1800 másodperc.

-ReadBatchSize number_of_transactions

A közzétételi adatbázis tranzakciónaplójában kiolvasott tranzakciók maximális száma feldolgozási ciklusonként, alapértelmezett értéke 500, maximum 10000. Az ügynök mindaddig olvassa a kötegekben lévő tranzakciókat, amíg az összes tranzakciót be nem olvassa a naplóból. Ez a paraméter nem támogatott az Oracle Publishers esetében.

-ReadBatchThreshold number_of_commands

A tranzakciónaplóból beolvasandó replikációs parancsok száma, mielőtt a terjesztési ügynök kiadja az előfizetőnek. Az alapértelmezett érték 0. Ha ez a paraméter nincs megadva, a Naplóolvasó ügynök a napló végéig vagy a megadott -ReadBatchSize számra (tranzakciók száma) olvas be.

-RecoverFromDataErrors

Azt adja meg, hogy a Naplóolvasó ügynök továbbra is futjon, ha nem SQL Server-közzétevőből közzétett oszlopadatokban hibákba ütközik. Az ilyen hibák alapértelmezés szerint a Naplóolvasó-ügynök sikertelenségéhez vezetnek. Ha használja -RecoverFromDataErrors, a rendszer a hibás oszlopadatokat vagy a megfelelő nem null értékként NULL replikálja, és figyelmeztető üzeneteket naplóz a MSlogreader_history táblába. Ez a paraméter csak az Oracle Publishers esetében támogatott.

Megjegyzések

Ha az SQL Server-ügynököt úgy telepítette, hogy egy helyi rendszerfiókban fusson a tartományi felhasználói fiók (alapértelmezett) helyett, a szolgáltatás csak a helyi számítógéphez férhet hozzá. Ha az SQL Server-ügynök alatt futó Naplóolvasó ügynök úgy van konfigurálva, hogy windowsos hitelesítési módot használjon, amikor bejelentkezik az SQL Serverbe, a Naplóolvasó ügynök sikertelen lesz. Az alapértelmezett beállítás az SQL Server-hitelesítés. A biztonsági fiókok módosításáról további információt a replikáció biztonsági beállításainak megtekintése és módosítása című témakörben talál.

A Naplóolvasó ügynök elindításához futtassa logread.exe a parancssorból. További információ: Replikációs ügynök végrehajthatók fogalmai.