Sdílet prostřednictvím


Agent distribuce replikace

platí pro:SQL Serverazure SQL Database

Agent distribuce replikace je spustitelný soubor, který přesune snímek (pro replikaci snímků a transakční replikaci) a transakce uchovávané v tabulkách distribuční databáze (pro transakční replikaci) do cílových tabulek předplatitelů.

Poznámka:

Parametry lze zadat v libovolném pořadí. Pokud nejsou zadány volitelné parametry, použijí se hodnoty z předdefinovaných nastavení registru v místním počítači.

Syntaxe

distrib [ -? ]
-Publisher server_name [ \instance_name ]
-PublisherDB publisher_database
-Subscriber server_name [ \instance_name ]
-SubscriberDB subscriber_database
[ -AltSnapshotFolder alt_snapshot_folder_path ]
[ -BcpBatchSize bcp_batch_size ]
[ -CommitBatchSize commit_batch_size ]
[ -CommitBatchThreshold commit_batch_threshold ]
[ -Continuous ]
[ -DefinitionFile def_path_and_file_name ]
[ -Distributor distributor ]
[ -DistributorLogin distributor_login ]
[ -DistributorPassword distributor_password ]
[ -DistributorSecurityMode [ 0 | 1 ] ]
[ -EncryptionLevel [ 0 | 1 | 2 | 3 | 4 ] ]
[ -ErrorFile error_path_and_file_name ]
[ -ExtendedEventConfigFile configuration_path_and_file_name ]
[ -FileTransferType [ 0 | 1 ] ]
[ -FtpAddress ftp_address ]
[ -FtpPassword ftp_password ]
[ -FtpPort ftp_port ]
[ -FtpUserName ftp_user_name ]
[ -HistoryVerboseLevel [ 0 | 1 | 2 | 3 ] ]
[ -Hostname host_name ]
[ -KeepAliveMessageInterval keep_alive_message_interval_seconds ]
[ -LoginTimeOut login_time_out_seconds ]
[ -MaxBcpThreads ]
[ -MaxDeliveredTransactions number_of_transactions ]
[ -MessageInterval message_interval ]
[ -MultiSubnetFailover [ 0 | 1 ] ]
[ -OledbStreamThreshold oledb_stream_threshold ]
[ -Output output_path_and_file_name ]
[ -OutputVerboseLevel [ 0 | 1 | 2 ] ]
[ -PacketSize packet_size ]
[ -PollingInterval polling_interval ]
[ -ProfileName profile_name ]
[ -Publication publication ]
[ -QueryTimeOut query_time_out_seconds ]
[ -QuotedIdentifier quoted_identifier ]
[ -SkipErrors native_error_id [ :...n ] ]
[ -SubscriberDatabasePath subscriber_path ]
[ -SubscriberLogin subscriber_login ]
[ -SubscriberPassword subscriber_password ]
[ -SubscriberSecurityMode [ 0 | 1 ] ]
[ -SubscriberType [ 0 | 1 | 3 ] ]
[ -SubscriptionStreams [ 1 | 2 | ...64 ] ]
[ -SubscriptionTableName subscription_table ]
[ -SubscriptionType [ 0 | 1 | 2 ] ]
[ -TransactionsPerHistory [ 0 | 1 | ...10000 ] ]
[ -UseDTS ]
[ -UseInprocLoader ]
[ -UseOledbStreaming ]

Argumenty

-?

Vytiskne všechny dostupné parametry.

-Vydavatel server_name [ \instance_name ]

Název vydavatele. Zadejte <server_name> výchozí instanci Microsoft SQL Serveru na tomto serveru. Zadejte <server_name>\<instance_name> pojmenovanou instanci SQL Serveru na tomto serveru. Pokud je vaše databáze vydavatele ve skupině dostupnosti, bude se stále zobrazovat původní název primárního serveru vydavatele kvůli sp_redirect_publisher. Neodráží název naslouchacího procesu skupiny dostupnosti.

-PublisherDB publisher_database

Název databáze Publisheru.

-Odběratel server_name [ \instance_name ]

Název odběratele. Zadejte <server_name> výchozí instanci SQL Serveru na tomto serveru. Zadejte <server_name>\<instance_name> pojmenovanou instanci SQL Serveru na tomto serveru. Pokud je vaše databáze předplatitelů ve skupině dostupnosti, mělo by to odrážet název naslouchacího procesu skupiny dostupnosti.

-SubscriberDB subscriber_database

Název databáze odběratele.

-AltSnapshotFolder alt_snapshot_folder_path

Cesta ke složce, která obsahuje počáteční snímek předplatného.

-BcpBatch velikost bcp_batch_size

Počet řádků, které se mají odeslat v operaci hromadného kopírování Při provádění bcp in operace je velikost dávky počet řádků, které se mají odeslat na server jako jedna transakce, a také počet řádků, které musí být odeslány před tím, než distribuční agent zaznamená zprávu o průběhu bcp . Při provádění bcp out operace se použije pevná velikost 1000 dávky.

-CommitBatchSize commit_batch_size

Počet transakcí, které mají být vydány odběrateli před vydáním příkazu COMMIT. Výchozí hodnota je 100 a maximální hodnota je 1 0000. Tento parametr je ignorován při použití snímku pro odběratele distribučním agentem.

-CommitBatchThreshold commit_batch_threshold

Počet příkazů replikace, které mají být vydány odběrateli před vydáním příkazu COMMIT. Výchozí hodnota je 1000 a maximální hodnota je 1 0000. Tento parametr je ignorován při použití snímku pro odběratele distribučním agentem.

-Nepřetržitý

Určuje, jestli se agent pokusí průběžně dotazovat replikované transakce. Pokud je zadáno, agent dotazuje replikované transakce ze zdroje v intervalech dotazování, i když neexistují žádné transakce čekající na vyřízení.

-DefinitionFile def_path_and_file_name

Cesta k definičnímu souboru agenta. Definiční soubor agenta obsahuje argumenty příkazového řádku pro agenta. Obsah souboru se analyzuje jako spustitelný soubor. K zadání hodnot argumentů obsahujících libovolné znaky použijte dvojité uvozovky (").

- Distributor distributor

Název distributora. V případě distribuce Distributor (push) se název standardně nastaví na název místního distributora. Pokud je vaše databáze distributora ve skupině dostupnosti, měla by to odrážet název naslouchacího procesu skupiny dostupnosti.

-DistributorLogin distributor_login

Přihlašovací jméno distributora.

-DistributorPassword distributor_password

Heslo distributora.

-DistributorSecurityMode [ 0 | 1 ]

Určuje režim zabezpečení distributora. Hodnota 0 označuje režim ověřování SQL Serveru a hodnota 1 označuje režim ověřování systému Windows (výchozí).

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

Úroveň protokolu TLS (Transport Layer Security), dříve označované jako SSL (Secure Sockets Layer), šifrování používané distribučním agentem při vytváření připojení.

Hodnota EncryptionLevel Popis
0 Určuje, že se nepoužívá protokol TLS.
1 Určuje, že se používá protokol TLS 1.2, ale agent neověře, že certifikát serveru TLS je podepsaný důvěryhodným vystavitelem.
2 Určuje, že se používá protokol TLS 1.2 a že se certifikát ověří.
3 Určuje, že pro připojení ze služby Azure SQL Managed Instance nebo SQL Serveru 2025 a novějších verzí se použije spravovaná instance Azure SQL, použije se protokol TLS 1.3 a certifikát se ověří. U připojení k SQL Serveru (jakákoli podporovaná verze) se protokol TLS 1.3 nevynucuje s možností 3.
4 Určuje, že pro připojení ze služby Azure SQL Managed Instance nebo SQL Serveru 2025 a novějších verzí se použije spravovaná instance Azure SQL, použije se protokol TLS 1.3 a certifikát se ověří. Pro připojení ze služby Azure SQL Managed Instance nebo SQL Serveru 2025 a novějších verzí k SQL Serveru (kterákoli podporovaná verze) se použije protokol TLS 1.3 a certifikát se ověří. Vyžaduje instalaci certifikátu na hostitele SQL Serveru, kteří přijímají připojení s nastaveným EncryptionLevel nastavením4.

Platný certifikát TLS je definován s plně kvalifikovaným názvem domény SQL Serveru. Aby se agent mohl úspěšně připojit při nastavení -EncryptionLevel , 2vytvořte alias na místním SQL Serveru. Parametr Alias Name by měl být název serveru a parametr Server by měl být nastaven na plně kvalifikovaný název SQL Serveru.

Další informace naleznete v tématu Zobrazení a úprava nastavení zabezpečení replikace.

-Chybový soubor error_path_and_file_name

Cesta a název souboru chyby vygenerované distribučním agentem. Tento soubor se vygeneruje v libovolném okamžiku, kdy došlo k chybě při použití transakcí replikace u odběratele; k chybám, ke kterým dochází u vydavatele nebo distributora, nejsou v tomto souboru zaznamenány. Tento soubor obsahuje neúspěšné transakce replikace a přidružené chybové zprávy. Pokud není zadaný, vygeneruje se soubor chyby v aktuálním adresáři distribučního agenta. Název souboru chyby je název distribučního agenta s příponou .err. Pokud zadaný název souboru existuje, připojí se k souboru chybové zprávy. Tento parametr může mít maximálně 256 znaků Unicode.

-ExtendedEventConfigFile configuration_path_and_file_name

Určuje cestu a název souboru pro konfigurační soubor XML rozšířených událostí. Konfigurační soubor rozšířených událostí umožňuje konfigurovat relace a povolit události pro sledování.

-FileTransferType [ 0 | 1 ]

Určuje typ přenosu souborů. Hodnota 0 označuje UNC (universal naming convention) a hodnotu označující 1 ftp (protokol pro přenos souborů).

-FtpAdresa ftp_address

Síťová adresa služby FTP pro distributora. Pokud není zadán, DistributorAddress použije se. Pokud není zadaný DistributorAddress, použije se Distributor.

-FtpPassword ftp_password

Uživatelské heslo použité pro připojení ke službě FTP.

- FtpPort ftp_port

Číslo portu služby FTP pro distributora. Pokud není zadané, použije se výchozí číslo portu pro službu FTP (21).

-FtpUserName ftp_user_name

Uživatelské jméno použité pro připojení ke službě FTP. Pokud není zadán, anonymous použije se.

-HistoryVerboseLevel [ 0 | 1 | 2 | 3 ]

Určuje množství historie protokolované během operace distribuce. Když vyberete možnost 1, můžete minimalizovat výkon protokolování historie.

Hodnota HistoryVerboseLevel Popis
0 Zprávy o průběhu se zapisují buď do konzoly, nebo do výstupního souboru. Záznamy historie nejsou protokolovány v distribuční databázi.
1 (výchozí) Vždy aktualizujte předchozí zprávu historie o stejném stavu (spuštění, průběh, úspěch atd.). Pokud neexistuje žádný předchozí záznam se stejným stavem, vložte nový záznam.
2 Vložte nové záznamy historie, pokud záznam není určený například pro nečinné zprávy nebo dlouho běžící zprávy úlohy, v takovém případě aktualizujte předchozí záznamy.
3 Vždy vkládat nové záznamy, pokud se nejedná o nečinné zprávy.

-Hostitelské jméno host_name

Název hostitele použitý při připojování k Publisheru. Tento parametr může mít maximálně 128 znaků Unicode.

-UdržujAliveMessageInterval keep_alive_message_interval_seconds

Počet sekund před vláknem historie zkontroluje, jestli některá z existujících připojení čeká na odpověď ze serveru. Tato hodnota se dá snížit, aby agent kontroly označoval distribučního agenta jako podezřelý při provádění dlouhotrvající dávky. Výchozí hodnota je 300 sekundy.

-LoginTimeOut login_time_out_seconds

Počet sekund před časovým limitem přihlášení. Výchozí hodnota je 15 sekundy.

-MaxBcpThreads number_of_threads

Určuje počet operací hromadného kopírování, které lze provádět paralelně. Maximální početvlákench MaxBcpThreads MaxBcpThreads musí mít hodnotu větší než 0 a nemá pevně zakódovaný horní limit. Výchozí hodnota je 1, až do maximální hodnoty 8. Při použití snímku vygenerovaného v Publisheru pomocí možnosti souběžného snímku se použije jedno vlákno bez ohledu na zadané číslo MaxBcpThreads.

-MaxDoručenéTransakce number_of_transactions

Maximální počet transakcí nabízených oznámení nebo přijetí změn použitých u odběratelů v jedné synchronizaci. Hodnota 0 označuje, že maximum je nekonečný počet transakcí. Další hodnoty můžou předplatitelé použít ke zkrácení doby trvání synchronizace, kterou natahuje z Publisheru.

Pokud -MaxDeliveredTransactions jsou oba -Continuous zadané, distribuční agent doručí zadaný počet transakcí a pak se zastaví (i když -Continuous je zadán). Po dokončení úlohy je nutné restartovat distribučního agenta.

-MessageInterval message_interval

Časový interval používaný pro protokolování historie. Událost historie se protokoluje při dosažení jednoho z těchto parametrů:

  • Hodnota TransactionsPerHistory je dosažena po zaznamenání poslední události historie.

  • Hodnota MessageInterval je dosažena po zaznamenání poslední události historie.

Pokud není ve zdroji k dispozici žádná replikovaná transakce, agent hlásí distributorovi zprávu bez transakce. Tato možnost určuje, jak dlouho agent čeká, než nahlásí jinou zprávu typu no-transaction. Agenti vždy hlásí zprávu bez transakce, když zjistí, že ve zdroji nejsou k dispozici žádné transakce po předchozím zpracování replikovaných transakcí. Výchozí hodnota je 60 sekund.

-MultiSubnetFailover

platí pro: SQL Server 2019 (15.x) a novější verze.

Určuje, jestli je vlastnost MultiSubnetFailover povolená nebo ne. Pokud se vaše aplikace připojuje ke skupině dostupnosti v různých podsítích, nastavení MultiSubnetFailover=true zajišťuje rychlejší detekci a připojení k (aktuálně) aktivnímu serveru.

-OledbStreamThreshold oledb_stream_threshold

Určuje minimální velikost v bajtech pro binární data velkých objektů, nad kterými jsou data svázaná jako datový proud. Chcete-li použít tento parametr, je nutné zadat -UseOledbStreaming . Hodnoty můžou být v rozsahu od 400 bajtů až po 1 048 576 bajtů s výchozím nastavením 16 384 bajtů.

-Výstupní output_path_and_file_name

Cesta výstupního souboru agenta. Pokud není zadaný název souboru, odešle se výstup do konzoly. Pokud zadaný název souboru existuje, výstup se připojí k souboru.

-OutputVerboseLevel [ 0 | 1 | 2 ]

Určuje, jestli má být výstup podrobný. Pokud je 0podrobná úroveň , vytisknou se pouze chybové zprávy. Pokud je 1podrobná úroveň, vytisknou se všechny zprávy o průběhu zprávy. Pokud je 2 podrobná úroveň (výchozí), vytisknou se všechny chybové zprávy a zprávy o průběhu, což je užitečné pro ladění.

-Velikost balíčku packet_size

Velikost paketu v bajtech. Výchozí hodnota je 4096 (bajty).

-PollingInterval polling_interval

Jak často se v sekundách dotazuje distribuční databáze na replikované transakce. Výchozí hodnota je 5 sekund.

-ProfilJméno profile_name

Určuje profil agenta, který se má použít pro parametry agenta. Pokud ProfileName ano NULL, profil agenta je zakázaný. Pokud ProfileName není zadaný, použije se výchozí profil pro typ agenta. Informace najdete v tématu Profily agenta replikace.

-Publikace publikace

Název publikace. Tento parametr je platný pouze v případě, že je publikace nastavená tak, aby vždy měla k dispozici snímek pro nová nebo znovu inicializovaná předplatná.

-QueryTimeOut query_time_out_seconds

Počet sekund před časovým limitem dotazu. Výchozí hodnota je 1 800 sekund.

-QuotedIdentifier quoted_identifier

Určuje znak uvozovaného identifikátoru, který se má použít. První znak hodnoty označuje hodnotu, kterou distribuční agent používá. Pokud QuotedIdentifier se použije bez hodnoty, agent distribuce použije mezeru. Pokud QuotedIdentifier se nepoužívá, distribuční agent použije jakýkoli identifikátor uvozovaného uvozováku, který odběratel podporuje.

-SkipErrors native_error_id [ :... n ]

Seznam oddělený dvojtečkou, který určuje čísla chyb, která má tento agent přeskočit. Tento parametr se ignoruje při použití snímku u odběratele distribučním agentem.

-SubscriberDatabasePath subscriber_database_path

Cesta k databázi Jet (soubor .mdb), pokud SubscriberType je 2 (umožňuje připojení k databázi Jet bez názvu zdroje dat ODBC (DSN)).

-Přihlášení odběratele subscriber_login

Přihlašovací jméno odběratele. Pokud SubscriberSecurityMode je 0 (pro ověřování SYSTÉMU SQL Server), musí být tento parametr zadán.

-SubscriberPassword subscriber_password

Heslo odběratele. Pokud SubscriberSecurityMode je 0 (pro ověřování SYSTÉMU SQL Server), musí být tento parametr zadán.

-SubscriberSecurityMode [ 0 | 1 ]

Určuje režim zabezpečení odběratele. Hodnota 0 označuje ověřování SYSTÉMU SQL Server a hodnotu 1 označující režim ověřování systému Windows (výchozí).

-SubscriberType [ 0 | 1 | 3 ]

Určuje typ připojení odběratele používaného distribučním agentem.

Hodnota SubscriberType Popis
0 SQL Server
1 Zdroj dat ODBC
3 Zdroj dat OLE DB

-SubscriptionStreams [ 0 | 1 | 2 | ... 64 ]

Počet připojení povolených pro každého distribučního agenta k použití dávek změn paralelně pro odběratele a zachování mnoha transakčních charakteristik, které jsou přítomné při použití jednoho vlákna. U aplikace SQL Server Publisher se podporuje rozsah hodnot od 1 do 64.

Tento parametr není podporovaný nebo musí být 0 pro předplatná jiných než SQL Server nebo předplatná peer-to-peer. Tento parametr se ignoruje při použití snímku u odběratele distribučním agentem.

Pokud se některé z připojení nepodaří spustit nebo potvrdit, všechna připojení přeruší aktuální dávku a agent použije k opakování neúspěšných dávek jeden datový proud. Před dokončením této fáze opakování může být u odběratele dočasná nekonzistence transakcí. Po úspěšném potvrzení neúspěšných dávek se odběratel vrátí do stavu transakční konzistence.

Důležité

Pokud zadáte hodnotu 2 nebo vyšší pro -SubscriptionStreams, pořadí, ve kterém transakce jsou přijaty u odběratele, se může lišit od pořadí, ve kterém byly provedeny v Publisheru. Pokud toto chování způsobí porušení omezení během synchronizace, měli byste použít NOT FOR REPLICATION možnost zakázat vynucení omezení během synchronizace. Další informace naleznete v tématu Řízení chování triggerů a omezení v synchronizaci.

Streamy předplatného nefungují pro články nakonfigurované tak, aby doručovaly transact-SQL. Pokud chcete používat streamy předplatného, nakonfigurujte články tak, aby místo toho doručily volání uložených procedur.

-SubscriptionTableName subscription_table

Název tabulky předplatného vygenerovaný nebo použitý u daného odběratele. Pokud není zadána, použije se MSreplication_subscriptions tabulka . Tuto možnost použijte pro systémy pro správu databází (DBMS), které nepodporují dlouhé názvy souborů.

-SubscriptionType [ 0 | 1 | 2 ]

Určuje typ předplatného pro distribuci. Hodnota 0 označuje nabízené předplatné, hodnotu 1 označující předplatné vyžádané replikace a hodnotu 2 označující anonymní předplatné.

-TransactionsPerHistory [ 0 | 1 | ... 10000 ]

Určuje interval transakcí pro protokolování historie. Pokud je počet potvrzených transakcí po poslední instanci protokolování historie větší než tato možnost, zaprotokoluje se zpráva historie. Výchozí hodnota je 100. Hodnota 0 indikuje nekonečnou TransactionsPerHistoryhodnotu . Viz předchozí –MessageInterval parametr.

-UseDTS

Je nutné zadat jako parametr pro publikaci, která umožňuje transformaci dat.

-UseInprocLoader

Zlepšuje výkon počátečního snímku tím, že distribuční agent použije příkaz BULK INSERT při použití souborů snímků pro odběratele. Tento parametr je zastaralý, protože není kompatibilní s datovým typem XML. Pokud replikujete data XML, můžete tento parametr použít. Tento parametr nelze použít se snímky v režimu znaků ani u odběratelů SQL Serveru. Pokud použijete tento parametr, účet služby SQL Serveru u odběratele vyžaduje oprávnění ke čtení v adresáři, kde jsou umístěné datové soubory snímků .bcp . Pokud se tento parametr nepoužívá, agent (pro předplatitele sql Serveru) nebo ovladač ODBC načtený agentem (pro předplatitele SQL Serveru) čte ze souborů, takže se nepoužívá kontext zabezpečení účtu služby SQL Serveru.

-UseOledbStream

Po zadání povolí vazbu binárních velkých dat objektu jako datového proudu. Slouží -OledbStreamThreshold k určení velikosti v bajtech, nad kterou se používá datový proud. UseOledbStreaming je ve výchozím nastavení povolená.

V SQL Serveru 2017 (14.x) CU 22 a novějších verzích UseOledbStreaming se zapisuje do C:\Users\<DistributionAgentAccount>\AppData\Temp složky.

Před SQL Serverem 2017 (14.x) CU 22 UseOledbStreaming se zapíše do C:\Program Files\Microsoft SQL Server\<version>\COM složky.

V SQL Serveru 2019 (15.x) CU 29, SQL Server 2022 (16.x) CU 16 a novějších verzích můžete zakázat streamování OLE DB aktualizací -UseOledbStreaming , aby 0 se zabránilo chybě uvedené v chybové zprávě při spuštění distribučního agenta na SQL Serveru.

Poznámky

Pokud jste nainstalovali agenta SQL Serveru tak, aby běžel pod místním systémovým účtem a ne pod uživatelským účtem domény (výchozí nastavení), může služba přistupovat pouze k místnímu počítači. Pokud je distribuční agent, který běží v rámci agenta SQL Serveru nakonfigurovaný tak, aby používal režim ověřování systému Windows při přihlášení k instanci SQL Serveru, distribuční agent selže. Výchozí nastavení je ověřování SQL Serveru. Informace o změně účtů zabezpečení najdete v tématu Zobrazení a úprava nastavení zabezpečení replikace.

Pokud chcete spustit distribučního agenta, spusťte distrib.exe ho z příkazového řádku. Informace naleznete v tématu Koncepty spustitelných souborů agenta replikace.