Dela via


Replikeringsdistributionsagent

gäller för:SQL ServerAzure SQL Database

Replikeringsdistributionsagenten är en körbar fil som flyttar ögonblicksbilden (för replikering av ögonblicksbilder och transaktionsreplikering) och transaktionerna som finns i distributionsdatabastabellerna (för transaktionsreplikering) till måltabellerna i Prenumeranterna.

Anmärkning

Parametrar kan anges i valfri ordning. När valfria parametrar inte anges används värden från fördefinierade registerinställningar på den lokala datorn.

Syntax

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 ]

Argumentpunkter

-?

Skriver ut alla tillgängliga parametrar.

-Publisher server_name [ \instance_name ]

Namnet på utgivaren. Ange <server_name> för standardinstansen av Microsoft SQL Server på den servern. Ange <server_name>\<instance_name> för en namngiven instans av SQL Server på servern. Om din utgivardatabas finns i en tillgänglighetsgrupp (AG) återspeglar detta fortfarande det ursprungliga primära utgivarservernamnet på grund av sp_redirect_publisher. Det återspeglar inte tillgänglighetsgruppens lyssnarnamn.

-PublisherDB publisher_database

Namnet på Publisher-databasen.

-Prenumerant server_name [ \instance_name ]

Namnet på prenumeranten. Ange <server_name> för standardinstansen av SQL Server på servern. Ange <server_name>\<instance_name> för en namngiven instans av SQL Server på servern. Om din prenumerantdatabas finns i en tillgänglighetsgrupp bör detta återspegla tillgänglighetsgruppens lyssnarnamn.

-SubscriberDB subscriber_database

Namnet på prenumerantdatabasen.

-AltSnapshotFolder alt_snapshot_folder_path

Sökvägen till mappen som innehåller den första ögonblicksbilden för en prenumeration.

-BcpBatchSize bcp_batch_size

Antalet rader som ska skickas i en masskopieringsåtgärd. När du utför en bcp in åtgärd är batchstorleken det antal rader som ska skickas till servern som en transaktion, och även antalet rader som måste skickas innan distributionsagenten loggar ett bcp-förloppsmeddelande. När du utför en bcp out åtgärd används en fast batchstorlek 1000 .

-CommitBatchSize commit_batch_size

Antalet transaktioner som ska utfärdas till prenumeranten innan en COMMIT-instruktion utfärdas. Standardvärdet är 100 och maxvärdet är 10000. Den här parametern ignoreras när ögonblicksbilden tillämpas på prenumeranten av distributionsagenten.

-CommitBatchThreshold commit_batch_threshold

Antalet replikeringskommandon som ska utfärdas till prenumeranten innan en COMMIT-instruktion utfärdas. Standardvärdet är 1 000 och maxvärdet är 1 0000. Den här parametern ignoreras när ögonblicksbilden tillämpas på prenumeranten av distributionsagenten.

-Kontinuerlig

Anger om agenten försöker avsöka replikerade transaktioner kontinuerligt. Om det anges avsöker agenten replikerade transaktioner från källan med avsökningsintervall, även om det inte finns några väntande transaktioner.

-DefinitionFile def_path_and_file_name

Sökvägen till agentdefinitionsfilen. En agentdefinitionsfil innehåller kommandotolksargument för agenten. Innehållet i filen tolkas som en körbar fil. Använd dubbla citattecken (") för att ange argumentvärden som innehåller godtyckliga tecken.

- Distributörsdistributör

Distributörens namn. För distribution av distributör (push) anges namnet som standard till namnet på den lokala distributören. Om din distributörsdatabas finns i en tillgänglighetsgrupp bör detta återspegla tillgänglighetsgruppens lyssnarnamn.

-DistributorLogin distributor_login

Distributörens inloggningsnamn.

-DistributorPassword distributor_password

Distributörens lösenord.

-DistributorSecurityMode [ 0 | 1 ]

Anger distributörens säkerhetsläge. Värdet 0 anger SQL Server-autentiseringsläge och värdet 1 anger Windows-autentiseringsläge (standard).

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

Nivån för TLS (Transport Layer Security), tidigare känd som Secure Sockets Layer (SSL), kryptering som används av distributionsagenten vid anslutning.

EncryptionLevel-värde Beskrivning
0 Anger att TLS inte används.
1 Anger att TLS 1.2 används, men agenten verifierar inte att TLS-servercertifikatet är signerat av en betrodd utfärdare.
2 Anger att TLS 1.2 används och att certifikatet har verifierats.
3 Anger att för anslutningar från Azure SQL Managed Instance eller SQL Server 2025 och senare versioner till Azure SQL Managed Instance används TLS 1.3 och certifikatet verifieras. För anslutningar till SQL Server (valfri version som stöds) tillämpas inte TLS 1.3 med alternativet 3.
4 Anger att för anslutningar från Azure SQL Managed Instance eller SQL Server 2025 och senare versioner till Azure SQL Managed Instance används TLS 1.3 och certifikatet verifieras. För anslutningar från Azure SQL Managed Instance eller SQL Server 2025 och senare versioner, till SQL Server (valfri version som stöds), används TLS 1.3 och certifikatet verifieras. Kräver installation av certifikatet på SQL Server-värdar som tar emot anslutningar med EncryptionLevel inställt på4.

Ett giltigt TLS-certifikat definieras med ett fullständigt kvalificerat domännamn för SQL Server. För att agenten ska kunna ansluta när du anger -EncryptionLevel till 2skapar du ett alias på den lokala SQL Server. Parametern Aliasnamn ska vara servernamnet och parametern "Server" ska anges till det fullständigt kvalificerade namnet på SQL Server.

Mer information finns i Visa och ändra säkerhetsinställningar för replikering.

-ErrorFile error_path_and_file_name

Sökvägen och filnamnet för felfilen som genererats av distributionsagenten. Den här filen genereras när som helst där felet inträffade när replikeringstransaktioner tillämpades hos prenumeranten. fel som uppstår på utgivaren eller distributören loggas inte i den här filen. Den här filen innehåller misslyckade replikeringstransaktioner och tillhörande felmeddelanden. När den inte anges genereras felfilen i distributionsagentens aktuella katalog. Namnet på felfilen är namnet på distributionsagenten med ett .err-tillägg. Om det angivna filnamnet finns läggs felmeddelanden till i filen. Den här parametern kan vara högst 256 Unicode-tecken.

-ExtendedEventConfigFile configuration_path_and_file_name

Anger sökvägen och filnamnet för XML-konfigurationsfilen för utökade händelser. Med konfigurationsfilen för utökade händelser kan du konfigurera sessioner och aktivera händelser för spårning.

-FileTransferType [ 0 | 1 ]

Anger filöverföringstypen. Värdet 0 anger UNC (universell namngivningskonvention) och värdet 1 för anger FTP (filöverföringsprotokoll).

-FtpAddress ftp_address

Nätverksadressen för FTP-tjänsten för distributören. När det inte anges DistributorAddress används. Om DistributorAddress inte anges används Distributor.

-FtpPassword ftp_password

Användarlösenordet som används för att ansluta till FTP-tjänsten.

-FtpPort ftp_port

Portnumret för FTP-tjänsten för distributören. När det inte anges används standardportnumret för FTP-tjänsten (21).

-FtpUserName ftp_user_name

Användarnamnet som används för att ansluta till FTP-tjänsten. När det inte anges anonymous används.

-HistoryVerboseLevel [ 0 | 1 | 2 | 3 ]

Anger mängden historik som loggas under en distributionsåtgärd. Du kan minimera prestandaeffekten för historikloggning genom att 1välja .

HistoryVerboseLevel-värde Beskrivning
0 Förloppsmeddelanden skrivs antingen till konsolen eller till en utdatafil. Historikposter loggas inte i distributionsdatabasen.
1 (standardinställning) Uppdatera alltid ett tidigare historikmeddelande med samma status (start, förlopp, framgång och så vidare). Om det inte finns någon tidigare post med samma status infogar du en ny post.
2 Infoga nya historikposter om inte posten är till för t.ex. inaktiva meddelanden eller långvariga jobbmeddelanden, i vilket fall uppdatera de tidigare posterna.
3 Infoga alltid nya poster, såvida det inte är för inaktiva meddelanden.

-Värdnamn host_name

Värdnamnet som används vid anslutning till utgivaren. Den här parametern kan vara högst 128 Unicode-tecken.

-KeepAliveMessageInterval keep_alive_message_interval_seconds

Antalet sekunder innan historiktråden kontrollerar om någon av de befintliga anslutningarna väntar på ett svar från servern. Det här värdet kan minskas för att undvika att bockagenten markerar distributionsagenten som misstänkt när en långvarig batch körs. Standardvärdet är 300 sekunder.

-LoginTimeOut login_time_out_seconds

Antalet sekunder innan inloggningen överskrider tidsgränsen. Standardvärdet är 15 sekunder.

-MaxBcpThreads number_of_threads

Anger antalet masskopieringsåtgärder som kan utföras parallellt. Det maximala antalet trådar och ODBC-anslutningar som finns samtidigt är det mindre eller MaxBcpThreads antalet masskopieringsbegäranden som visas i synkroniseringstransaktionen i distributionsdatabasen. MaxBcpThreads måste ha ett värde som är större än 0 och inte har någon hårdkodad övre gräns. Standardvärdet är 1, upp till ett maximalt värde på 8. När du tillämpar en ögonblicksbild som genererades i Publisher med hjälp av alternativet samtidig ögonblicksbild används en tråd, oavsett vilket nummer du anger för MaxBcpThreads.

-MaxDeliveredTransactions number_of_transactions

Det maximala antalet push- eller pull-transaktioner som tillämpas på prenumeranter i en synkronisering. Värdet 0 för anger att det maximala värdet är ett oändligt antal transaktioner. Andra värden kan användas av prenumeranter för att förkorta varaktigheten för en synkronisering som hämtas från en utgivare.

Om -MaxDeliveredTransactions och -Continuous båda anges levererar distributionsagenten det angivna antalet transaktioner och stoppar sedan (även om -Continuous anges). Du måste starta om distributionsagenten när jobbet har slutförts.

-MessageInterval message_interval

Tidsintervallet som används för historikloggning. En historikhändelse loggas när någon av dessa parametrar nås:

  • Värdet TransactionsPerHistory nås efter att den senaste historikhändelsen har loggats.

  • Värdet MessageInterval nås efter att den senaste historikhändelsen har loggats.

Om det inte finns någon replikerad transaktion tillgänglig vid källan rapporterar agenten ett meddelande utan transaktion till distributören. Det här alternativet anger hur länge agenten väntar innan ett annat meddelande om att ingen transaktion rapporteras. Agenter rapporterar alltid ett meddelande utan transaktion när de upptäcker att det inte finns några tillgängliga transaktioner i källan efter att tidigare ha bearbetat replikerade transaktioner. Standardvärdet är 60 sekunder.

-MultiSubnetFailover

gäller för: SQL Server 2019 (15.x) och senare versioner.

Anger om egenskapen MultiSubnetFailover är aktiverad eller inte. Om programmet ansluter till en tillgänglighetsgrupp i olika undernät ger inställningen MultiSubnetFailover=true snabbare identifiering av och anslutning till den (för närvarande) aktiva servern.

-OledbStreamThreshold oledb_stream_threshold

Anger den minsta storleken, i byte, för binära stora objektdata över vilka data är bundna som en ström. Du måste ange -UseOledbStreaming för att använda den här parametern. Värden kan variera från 400 byte till 1 048 576 byte, med standardvärdet 16 384 byte.

-Utdata output_path_and_file_name

Sökvägen till agentens utdatafil. Om filnamnet inte anges skickas utdata till konsolen. Om det angivna filnamnet finns läggs utdata till i filen.

-OutputVerboseLevel [ 0 | 1 | 2 ]

Anger om utdata ska vara utförliga. Om den utförliga nivån är 0skrivs endast felmeddelanden ut. Om den utförliga nivån är 1skrivs alla förloppsrapportmeddelanden ut. Om den utförliga nivån är 2 (standard) skrivs alla felmeddelanden och förloppsrapportmeddelanden ut, vilket är användbart för felsökning.

-PacketSize packet_size

Paketstorleken i byte. Standardvärdet är 4 096 (byte).

-PollingInterval polling_interval

Hur ofta distributionsdatabasen på några sekunder efterfrågas för replikerade transaktioner. Standardvärdet är 5 sekunder.

-ProfileName profile_name

Anger en agentprofil som ska användas för agentparametrar. Om ProfileName är NULLinaktiveras agentprofilen. Om ProfileName inte anges används standardprofilen för agenttypen. Mer information finns i Replikeringsagentprofiler.

- Publikation

Namnet på publikationen. Den här parametern är endast giltig om publikationen är inställd på att alltid ha en ögonblicksbild tillgänglig för nya eller ominitierade prenumerationer.

-QueryTimeOut query_time_out_seconds

Antalet sekunder innan frågan överskrider tidsgränsen. Standardvärdet är 1 800 sekunder.

-QuotedIdentifier quoted_identifier

Anger det angivna ID-tecknet som ska användas. Det första tecknet i värdet anger det värde som distributionsagenten använder. Om QuotedIdentifier används utan värde använder distributionsagenten ett blanksteg. Om QuotedIdentifier den inte används använder distributionsagenten den identifierare som prenumeranten stöder.

-SkipErrors native_error_id [ :... n ]

En kolonavgränsad lista som anger vilka felnummer som ska hoppas över av den här agenten. Den här parametern ignoreras när ögonblicksbilden tillämpas på prenumeranten av distributionsagenten.

-SubscriberDatabasePath subscriber_database_path

Sökvägen till Jet-databasen (.mdb fil) om SubscriberType är 2 (tillåter en anslutning till en Jet-databas utan ett ODBC-datakällnamn (DSN)).

-SubscriberLogin subscriber_login

Inloggningsnamnet för prenumeranten. Om SubscriberSecurityMode är 0 (för SQL Server-autentisering) måste den här parametern anges.

-SubscriberPassword subscriber_password

Prenumerantlösenordet. Om SubscriberSecurityMode är 0 (för SQL Server-autentisering) måste den här parametern anges.

-SubscriberSecurityMode [ 0 | 1 ]

Anger säkerhetsläget för prenumeranten. Värdet 0 anger SQL Server-autentisering och värdet 1 anger Windows-autentiseringsläge (standard).

-SubscriberType [ 0 | 1 | 3 ]

Anger vilken typ av prenumerantanslutning som används av distributionsagenten.

SubscriberType-värde Beskrivning
0 SQL Server
1 ODBC-datakälla
3 OLE DB-datakälla

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

Antalet anslutningar som tillåts per distributionsagent för att tillämpa batchar med ändringar parallellt med en prenumerant, samtidigt som många av de transaktionsegenskaper som finns vid användning av en enda tråd bibehålls. För en SQL Server Publisher stöds ett intervall med värden från 1 till 64.

Den här parametern stöds inte eller måste vara 0 för icke-SQL Server-prenumeranter eller peer-to-peer-prenumerationer. Den här parametern ignoreras när ögonblicksbilden tillämpas på prenumeranten av distributionsagenten.

Om en av anslutningarna inte kan köras eller checkas in avbryter alla anslutningar den aktuella batchen och agenten använder en enda ström för att försöka utföra de misslyckade batcharna igen. Innan den här återförsöksfasen är klar kan det finnas tillfälliga transaktionsmässiga inkonsekvenser hos prenumeranten. När de misslyckade batcharna har checkats in återställs prenumeranten till ett tillstånd av transaktionskonsekvens.

Viktigt!

När du anger ett värde på 2 eller större för -SubscriptionStreamskan ordningen i vilken transaktioner tas emot hos prenumeranten skilja sig från den ordning som de gjordes på utgivaren. Om det här beteendet orsakar begränsningsöverträdelser under synkroniseringen NOT FOR REPLICATION bör du använda alternativet för att inaktivera tillämpningen av begränsningar under synkroniseringen. Mer information finns i Kontrollera beteende för utlösare och begränsningar i synkronisering.

Prenumerationsströmmar fungerar inte för artiklar som har konfigurerats för att leverera Transact-SQL. Om du vill använda prenumerationsströmmar konfigurerar du artiklar för att leverera lagrade proceduranrop i stället.

-SubscriptionTableName subscription_table

Namnet på prenumerationstabellen som genererats eller använts hos den angivna prenumeranten. När den inte anges används tabellen MSreplication_subscriptions . Använd det här alternativet för databashanteringssystem (DBMS) som inte stöder långa filnamn.

-SubscriptionType [ 0 | 1 | 2 ]

Anger prenumerationstypen för distribution. Värdet 0 anger en push-prenumeration, värdet 1 för anger en pull-prenumeration och värdet 2 för anger en anonym prenumeration.

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

Anger transaktionsintervallet för historikloggning. Om antalet checkade transaktioner efter den senaste instansen av historikloggning är större än det här alternativet loggas ett historikmeddelande. Standardvärdet är 100. Värdet 0 anger oändligt TransactionsPerHistory. Se föregående –MessageInterval parameter.

-UseDTS

Måste anges som en parameter för en publikation som tillåter datatransformering.

-UseInprocLoader

Förbättrar prestandan för den första ögonblicksbilden genom att göra så att distributionsagenten använder KOMMANDOT BULK INSERT när ögonblicksbildfiler tillämpas på prenumeranten. Den här parametern är inaktuell eftersom den inte är kompatibel med XML-datatypen. Om du inte replikerar XML-data kan den här parametern användas. Den här parametern kan inte användas med ögonblicksbilder av teckenläge eller icke-SQL Server-prenumeranter. Om du använder den här parametern kräver SQL Server-tjänstkontot på Prenumeranten läsbehörigheter för katalogen där ögonblicksbilddatafilerna .bcp finns. När den här parametern inte används läser agenten (för icke-SQL Server-prenumeranter) eller ODBC-drivrutinen som läses in av agenten (för SQL Server-prenumeranter) från filerna, så säkerhetskontexten för SQL Server-tjänstkontot används inte.

-UseOledbStream

När det anges aktiverar du bindning av binära stora objektdata som en ström. Använd -OledbStreamThreshold för att ange storleken, i byte, ovanför vilken en ström används. UseOledbStreaming är aktiverat som standard.

Skrivningar till UseOledbStreaming mappen i SQL Server 2017 (14.x) CU 22 och senare versionerC:\Users\<DistributionAgentAccount>\AppData\Temp.

Före SQL Server 2017 (14.x) CU 22 skriver UseOledbStreaming du till C:\Program Files\Microsoft SQL Server\<version>\COM mappen.

I SQL Server 2019 (15.x) CU 29, SQL Server 2022 (16.x) CU 16 och senare versioner kan du inaktivera OLE DB-direktuppspelning genom att uppdatera -UseOledbStreaming för att 0 undvika felet som nämns i felmeddelandet när du kör distributionsagenten i SQL Server.

Anmärkningar

Om du har installerat SQL Server Agent för att köras under ett lokalt systemkonto i stället för under ett domänanvändarkonto (standard) kan tjänsten bara komma åt den lokala datorn. Om distributionsagenten som körs under SQL Server-agenten är konfigurerad för att använda Windows-autentiseringsläge när den loggar in på en instans av SQL Server misslyckas distributionsagenten. Standardinställningen är SQL Server-autentisering. Information om hur du ändrar säkerhetskonton finns i Visa och ändra säkerhetsinställningar för replikering.

Starta distributionsagenten genom att köra distrib.exe från kommandotolken. Mer information finns i Begrepp för körbara replikeringsagenter.