Agen Distribusi Replikasi

Berlaku untuk:SQL ServerAzure SQL Database

Agen Distribusi Replikasi adalah executable yang memindahkan rekam jepret (untuk replikasi rekam jepret dan replikasi transaksional) dan transaksi yang disimpan dalam tabel database distribusi (untuk replikasi transaksional) ke tabel tujuan di Pelanggan.

Catatan

Parameter dapat ditentukan dalam urutan apa pun. Ketika parameter opsional tidak ditentukan, nilai dari pengaturan registri yang telah ditentukan sebelumnya pada komputer lokal digunakan.

Sintaks

  
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]]  
[-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]  

Argumen

-?
Mencetak semua parameter yang tersedia.

-Publisherserver_name[\instance_name]
Adalah nama Penerbit. Tentukan server_name untuk instans default Microsoft SQL Server di server tersebut. Tentukan instance_name server_name\ untuk instans SQL Server bernama di server tersebut. Jika database penerbit Anda berada dalam Grup Ketersediaan AlwaysOn, ini masih akan mencerminkan nama server penerbit utama asli karena sp_redirect_publisher. Ini tidak akan mencerminkan nama pendengar AG.

-PublisherDBpublisher_database
Adalah nama database Publisher.

-Subscriberserver_name[\instance_name]
Adalah nama Pelanggan. Tentukan server_name untuk instans default SQL Server di server tersebut. Tentukan instance_name server_name\ untuk instans SQL Server bernama di server tersebut. Jika database pelanggan Anda berada dalam Grup Ketersediaan AlwaysOn, ini harus mencerminkan nama pendengar AG.

-SubscriberDBsubscriber_database
Adalah nama database Pelanggan.

-AltSnapshotFolderalt_snapshot_folder_path
Adalah jalur ke folder yang berisi rekam jepret awal untuk langganan.

-BcpBatchSizebcp_batch_size
Adalah jumlah baris yang akan dikirim dalam operasi penyalinan massal. Saat melakukan operasi bcp , ukuran batch adalah jumlah baris yang akan dikirim ke server sebagai satu transaksi, dan juga jumlah baris yang harus dikirim sebelum Agen Distribusi mencatat pesan kemajuan bcp . Saat melakukan operasi bcp out , ukuran batch tetap 1000 digunakan.

-CommitBatchSizecommit_batch_size
Adalah jumlah transaksi yang akan dikeluarkan kepada Pelanggan sebelum pernyataan COMMIT diterbitkan. Defaultnya adalah 100 dan maksnya adalah 10000. Parameter ini diabaikan ketika rekam jepret sedang diterapkan pada pelanggan oleh Agen Distribusi.

-CommitBatchThresholdcommit_batch_threshold
Adalah jumlah perintah replikasi yang akan dikeluarkan kepada Pelanggan sebelum pernyataan COMMIT dikeluarkan. Defaultnya adalah 1000 dan maksnya adalah 10000. Parameter ini diabaikan ketika rekam jepret sedang diterapkan pada pelanggan oleh Agen Distribusi.

-Terus menerus
Menentukan apakah agen terus mencoba melakukan polling transaksi yang direplikasi. Jika ditentukan, agen melakukan polling transaksi yang direplikasi dari sumber pada interval polling, bahkan jika tidak ada transaksi yang tertunda.

-DefinitionFiledef_path_and_file_name
Adalah jalur file definisi agen. File definisi agen berisi argumen prompt perintah untuk agen. Konten file diurai sebagai file yang dapat dieksekusi. Gunakan tanda kutip ganda (") untuk menentukan nilai argumen yang berisi karakter arbitrer.

-Distributordistributor
Adalah nama Distributor. Untuk distribusi Distributor (pendorongan), nama default ke nama Distributor lokal. Jika database distributor Anda berada dalam Grup Ketersediaan AlwaysOn, ini harus mencerminkan nama pendengar AG.

-DistributorLogindistributor_login
Adalah nama login Distributor.

-DistributorPassworddistributor_password
Adalah kata sandi Distributor.

-DistributorSecurityMode [ 0| 1]
Menentukan mode keamanan Distributor. Nilai 0 menunjukkan Mode Autentikasi SQL Server, dan nilai 1 menunjukkan Mode Autentikasi Windows (default).

-EncryptionLevel [ 0 | 1 | 2 ]
Adalah tingkat Keamanan Lapisan Transportasi (TLS), sebelumnya dikenal sebagai Secure Sockets Layer (SSL), enkripsi yang digunakan oleh Agen Distribusi saat membuat koneksi.

Nilai EncryptionLevel Deskripsi
0 Menentukan bahwa TLS tidak digunakan.
1 Menentukan bahwa TLS digunakan, tetapi agen tidak memverifikasi bahwa sertifikat server TLS/SSL ditandatangani oleh penerbit tepercaya.
2 Menentukan bahwa TLS digunakan, dan bahwa sertifikat diverifikasi.

Catatan

Sertifikat TLS/SSL yang valid ditentukan dengan nama domain SQL Server yang sepenuhnya memenuhi syarat. Agar agen berhasil tersambung saat mengatur -EncryptionLevel ke 2, buat alias di SQL Server lokal. Parameter 'Nama Alias' harus berupa nama server dan parameter 'Server' harus diatur ke nama SQL Server yang sepenuhnya memenuhi syarat.

Untuk informasi selengkapnya, lihat Menampilkan dan mengubah pengaturan keamanan replikasi.

-ErrorFileerror_path_and_file_name
Adalah jalur dan nama file file kesalahan yang dihasilkan oleh Agen Distribusi. File ini dihasilkan kapan saja di mana kegagalan terjadi saat menerapkan transaksi replikasi pada Pelanggan; kesalahan yang terjadi di Penerbit atau Distributor tidak dicatat dalam file ini. File ini berisi transaksi replikasi yang gagal dan pesan kesalahan terkait. Ketika tidak ditentukan, file kesalahan dihasilkan di direktori Agen Distribusi saat ini. Nama file kesalahan adalah nama Agen Distribusi dengan ekstensi .err. Jika nama file yang ditentukan ada, pesan kesalahan ditambahkan ke file. Parameter ini bisa maksimal 256 karakter Unicode.

-ExtendedEventConfigFileconfiguration_path_and_file_name
Menentukan jalur dan nama file untuk file konfigurasi XML peristiwa yang diperluas. File konfigurasi peristiwa yang diperluas memungkinkan Anda mengonfigurasi sesi dan mengaktifkan peristiwa untuk pelacakan.

-FileTransferType [ 0| 1]
Menentukan jenis transfer file. Nilai 0 menunjukkan UNC (konvensi penamaan universal), dan nilai 1 menunjukkan FTP (protokol transfer file).

-FtpAddressftp_address
Adalah alamat jaringan layanan FTP untuk Distributor. Ketika tidak ditentukan, DistributorAddress digunakan. Jika DistributorAddress tidak ditentukan, Distributor akan digunakan.

-FtpPasswordftp_password
Apakah kata sandi pengguna digunakan untuk menyambungkan ke layanan FTP.

-FtpPortftp_port
Adalah nomor port layanan FTP untuk Distributor. Ketika tidak ditentukan, nomor port default untuk layanan FTP (21) digunakan.

-FtpUserNameftp_user_name
Apakah nama pengguna yang digunakan untuk menyambungkan ke layanan FTP. Ketika tidak ditentukan, anonim digunakan.

-HistoryVerboseLevel [ 0 | 1 | 2 | 3 ]
Menentukan jumlah riwayat yang dicatat selama operasi distribusi. Anda dapat meminimalkan efek performa pengelogan riwayat dengan memilih 1.

Nilai HistoryVerboseLevel Deskripsi
0 Pesan kemajuan ditulis baik ke konsol atau ke file output. Rekaman riwayat tidak dicatat dalam database distribusi.
1 Default. Selalu perbarui pesan riwayat sebelumnya dengan status yang sama (startup, progress, success, dan sebagainya). Jika tidak ada rekaman sebelumnya dengan status yang sama, sisipkan rekaman baru.
2 Sisipkan rekaman riwayat baru kecuali rekaman untuk hal-hal seperti pesan diam atau pesan pekerjaan yang berjalan lama, dalam hal ini memperbarui rekaman sebelumnya.
3 Selalu sisipkan rekaman baru, kecuali untuk pesan diam.

-Namahost host_name
Apakah nama host digunakan saat menyambungkan ke Publisher. Parameter ini bisa maksimal 128 karakter Unicode.

-KeepAliveMessageIntervalkeep_alive_message_interval_seconds
Adalah jumlah detik sebelum utas riwayat memeriksa apakah salah satu koneksi yang ada sedang menunggu respons dari server. Nilai ini dapat dikurangi untuk menghindari agen pemeriksaan menandai Agen Distribusi sebagai tersangka saat menjalankan batch yang berjalan lama. Defaultnya adalah 300 detik.

-LoginTimeOutlogin_time_out_seconds
Adalah jumlah detik sebelum waktu masuk habis. Defaultnya adalah 15 detik.

-MaxBcpThreadsnumber_of_threads
Menentukan jumlah operasi penyalinan massal yang dapat dilakukan secara paralel. Jumlah maksimum utas dan koneksi ODBC yang ada secara bersamaan adalah lebih sedikit dari MaxBcpThreads atau jumlah permintaan salinan massal yang muncul dalam transaksi sinkronisasi dalam database distribusi. MaxBcpThreads harus memiliki nilai yang lebih besar dari 0 dan tidak memiliki batas atas yang dikodekan secara permanen. Defaultnya adalah 2 kali jumlah prosesor, hingga nilai maksimum 8. Saat menerapkan rekam jepret yang dihasilkan di Publisher menggunakan opsi rekam jepret bersamaan, satu utas digunakan, terlepas dari jumlah yang Anda tentukan untuk MaxBcpThreads.

-MaxDeliveredTransactionsnumber_of_transactions
Adalah jumlah maksimum transaksi pendorongan atau penarikan yang diterapkan kepada Pelanggan dalam satu sinkronisasi. Nilai 0 menunjukkan bahwa maksimum adalah jumlah transaksi yang tak terbatas. Nilai lain dapat digunakan oleh Pelanggan untuk mempersingkat durasi sinkronisasi yang ditarik dari Penerbit.

Catatan

Jika -MaxDeliveredTransactions dan -Continuous keduanya ditentukan, Agen Distribusi memberikan jumlah transaksi yang ditentukan dan kemudian berhenti (meskipun -Continuous ditentukan). Anda harus memulai ulang Agen Distribusi setelah pekerjaan selesai.

-MessageIntervalmessage_interval
Adalah interval waktu yang digunakan untuk pengelogan riwayat. Peristiwa riwayat dicatat ketika salah satu parameter ini tercapai:

  • Nilai TransactionsPerHistory dicapai setelah peristiwa riwayat terakhir dicatat.

  • Nilai MessageInterval tercapai setelah peristiwa riwayat terakhir dicatat.

Jika tidak ada transaksi yang direplikasi yang tersedia di sumbernya, agen melaporkan pesan tanpa transaksi ke Distributor. Opsi ini menentukan berapa lama agen menunggu sebelum melaporkan pesan tanpa transaksi lain. Agen selalu melaporkan pesan tidak ada transaksi ketika mereka mendeteksi bahwa tidak ada transaksi yang tersedia di sumber setelah sebelumnya memproses transaksi yang direplikasi. Defaultnya adalah 60 detik.

-MultiSubnetFailover Menentukan apakah properti MultiSubnetFailover diaktifkan atau tidak. Jika aplikasi Anda tersambung ke grup ketersediaan AlwaysOn (AG) pada subnet yang berbeda, pengaturan MultiSubnetFailover=true memberikan deteksi dan koneksi yang lebih cepat ke server aktif (saat ini).
Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2019 (15.x)).

-OledbStreamThresholdoledb_stream_threshold
Menentukan ukuran minimum, dalam byte, untuk data objek besar biner di atas yang datanya akan diikat sebagai aliran. Anda harus menentukan -UseOledbStreaming untuk menggunakan parameter ini. Nilai dapat berkisar dari 400 hingga 1048576 byte, dengan default 16384 byte.

-Outputoutput_path_and_file_name
Adalah jalur file output agen. Jika nama file tidak disediakan, output dikirim ke konsol. Jika nama file yang ditentukan ada, output ditambahkan ke file.

-OutputVerboseLevel [ 0| 1| 2]
Menentukan apakah output harus verbose. Jika tingkat verbose adalah 0, hanya pesan kesalahan yang dicetak. Jika tingkat verbose adalah 1, semua pesan laporan kemajuan akan dicetak. Jika tingkat verbose adalah 2 (default), semua pesan kesalahan dan pesan laporan kemajuan dicetak, yang berguna untuk penelusuran kesalahan.

-PacketSizepacket_size
Apakah ukuran paket, dalam byte. Defaultnya adalah 4096 (byte).

-PollingIntervalpolling_interval_
Apakah seberapa sering, dalam detik, database distribusi dikueri untuk transaksi yang direplikasi. Defaultnya adalah 5 detik.

-ProfileNameprofile_name
Menentukan profil agen yang akan digunakan untuk parameter agen. Jika ProfileName NULL, profil agen dinonaktifkan. Jika ProfileName tidak ditentukan, profil default untuk jenis agen akan digunakan. Untuk informasi, lihat Profil Agen Replikasi.

-Publikasi publikasi
Adalah nama publikasi. Parameter ini hanya valid jika publikasi diatur untuk selalu memiliki rekam jepret yang tersedia untuk langganan baru atau yang diinisialisasi ulang.

-QueryTimeOutquery_time_out_seconds
Adalah jumlah detik sebelum waktu kueri habis. Defaultnya adalah 1800 detik.

-QuotedIdentifierquoted_identifier
Menentukan karakter pengidentifikasi yang dikutip untuk digunakan. Karakter pertama dari nilai menunjukkan nilai yang digunakan Agen Distribusi. Jika QuotedIdentifier digunakan tanpa nilai, Agen Distribusi menggunakan spasi. Jika QuotedIdentifier tidak digunakan, Agen Distribusi menggunakan pengidentifikasi apa pun yang dikutip yang didukung Pelanggan.

-SkipErrorsnative_error_id [:... n]
Adalah daftar yang dipisahkan titik dua yang menentukan nomor kesalahan yang akan dilewati oleh agen ini. Parameter ini diabaikan ketika rekam jepret sedang diterapkan pada pelanggan oleh Agen Distribusi.

-SubscriberDatabasePathsubscriber_database_path
Apakah jalur ke database Jet (file .mdb) jika SubscriberType adalah 2 (memungkinkan koneksi ke database Jet tanpa Nama Sumber Data ODBC (DSN)).

-SubscriberLoginsubscriber_login
Adalah nama login Pelanggan. Jika SubscriberSecurityMode adalah 0 (untuk Autentikasi SQL Server), parameter ini harus ditentukan.

-SubscriberPasswordsubscriber_password
Adalah kata sandi Pelanggan. Jika SubscriberSecurityMode adalah 0 (untuk Autentikasi SQL Server), parameter ini harus ditentukan.

-SubscriberSecurityMode [ 0| 1]
Menentukan mode keamanan Pelanggan. Nilai 0 menunjukkan Autentikasi SQL Server, dan nilai 1 menunjukkan Mode Autentikasi Windows (default).

-SubscriberType [ 0| 1| 3]
Menentukan jenis koneksi Pelanggan yang digunakan oleh Agen Distribusi.

Nilai SubscriberType Deskripsi
0 Server SQL
1 Sumber data ODBC
3 Sumber data OLE DB

-Langganan Aliran [0|1|2|...64]
Adalah jumlah koneksi yang diizinkan per Agen Distribusi untuk menerapkan batch perubahan secara paralel ke Pelanggan, sambil mempertahankan banyak karakteristik transaksional yang ada saat menggunakan satu utas. Untuk Penerbit SQL Server, rentang nilai dari 1 hingga 64 didukung. Parameter ini hanya didukung ketika Penerbit dan Distributor berjalan di SQL Server 2005 (9.x) atau versi yang lebih baru. Parameter ini tidak didukung atau harus 0 untuk langganan non-Pelanggan SQL Server atau peer-to-peer. Parameter ini diabaikan ketika rekam jepret sedang diterapkan pada pelanggan oleh Agen Distribusi.

Catatan

Jika salah satu koneksi gagal dijalankan atau diterapkan, semua koneksi akan membatalkan batch saat ini, dan agen akan menggunakan satu aliran untuk mencoba kembali batch yang gagal. Sebelum fase coba lagi ini selesai, mungkin ada inkonsistensi transaksional sementara di Pelanggan. Setelah batch yang gagal berhasil diterapkan, Pelanggan dibawa kembali ke keadaan konsistensi transaksional.

Penting

Ketika Anda menentukan nilai 2 atau lebih besar untuk -Langganan Aliran, urutan transaksi diterima di Pelanggan mungkin berbeda dari urutan pembuatannya di Penerbit. Jika perilaku ini menyebabkan pelanggaran batasan selama sinkronisasi, Anda harus menggunakan opsi NOT FOR REPLICATION untuk menonaktifkan penegakan batasan selama sinkronisasi. Untuk informasi selengkapnya, lihat Mengontrol Perilaku Pemicu dan Batasan Selama Sinkronisasi (Pemrograman Transact-SQL Replikasi).

Catatan

Aliran langganan tidak berfungsi untuk artikel yang dikonfigurasi untuk mengirimkan Transact-SQL. Untuk menggunakan aliran langganan, konfigurasikan artikel untuk mengirimkan panggilan prosedur tersimpan sebagai gantinya.

-SubscriptionTableNamesubscription_table
Adalah nama tabel langganan yang dihasilkan atau digunakan di Pelanggan yang diberikan. Ketika tidak ditentukan, tabel MSreplication_subscriptions (Transact-SQL) digunakan. Gunakan opsi ini untuk sistem manajemen database (DBMS) yang tidak mendukung nama file panjang.

-SubscriptionType [ 0| 1| 2]
Menentukan jenis langganan untuk distribusi. Nilai 0 menunjukkan langganan push, nilai 1 menunjukkan langganan pull, dan nilai 2 menunjukkan langganan anonim.

-TransactionsPerHistory [ 0| 1|... 10000]
Menentukan interval transaksi untuk pengelogan riwayat. Jika jumlah transaksi yang diterapkan setelah instans terakhir pengelogan riwayat lebih besar dari opsi ini, pesan riwayat dicatat. Nilai defaultnya adalah 100. Nilai 0 menunjukkan TransactionsPerHistory tak terbatas. Lihat parameter -MessageIntervalsebelumnya.

-UseDTS
Harus ditentukan sebagai parameter untuk publikasi yang memungkinkan transformasi data.

-UseInprocLoader
Meningkatkan performa rekam jepret awal dengan menyebabkan Agen Distribusi menggunakan perintah INSERT MASSAL saat menerapkan file rekam jepret ke Pelanggan. Parameter ini tidak digunakan lagi karena tidak kompatibel dengan jenis data XML. Jika Anda tidak mereplikasi data XML, parameter ini dapat digunakan. Parameter ini tidak dapat digunakan dengan rekam jepret mode karakter atau pelanggan non-SQL Server. Jika Anda menggunakan parameter ini, akun layanan SQL Server di Pelanggan harus memiliki izin baca pada direktori tempat file data .bcp rekam jepret berada. Ketika parameter ini tidak digunakan, agen (untuk Pelanggan non-SQL Server) atau driver ODBC yang dimuat oleh agen (untuk Pelanggan SQL Server) membaca dari file, sehingga konteks keamanan akun layanan SQL Server tidak digunakan.

-UseOledbStreaming
Ketika ditentukan, mengaktifkan pengikatan data objek besar biner sebagai aliran. Gunakan -OledbStreamThreshold untuk menentukan ukuran, dalam byte, di atas tempat aliran akan digunakan. UseOledbStreaming diaktifkan secara default.

Catatan

Dimulai dengan SQL 2017 CU22 dan versi yang lebih baru (termasuk SQL 2019 RTM), UseOledbStreaming menulis ke folder c:\Users\<DistributionAgentAccount>\AppData\Temp .

Sebelum SQL 2017 CU22, UseOledbStreaming menulis ke folder C:\Program Files\Microsoft SQL Server\<version>\COM .

Keterangan

Penting

Jika Anda telah menginstal SQL Server Agent untuk dijalankan di bawah akun sistem lokal daripada di bawah akun pengguna domain (default), layanan hanya dapat mengakses komputer lokal. Jika Agen Distribusi yang berjalan di bawah SQL Server Agent dikonfigurasi untuk menggunakan Mode Autentikasi Windows saat masuk ke instans SQL Server, Agen Distribusi gagal. Pengaturan defaultnya adalah Autentikasi SQL Server. Untuk informasi tentang mengubah akun keamanan, lihat Menampilkan dan Mengubah Pengaturan Keamanan Replikasi.

Untuk memulai Agen Distribusi, jalankan distrib.exe dari prompt perintah. Untuk informasi, lihat Konsep Executables Agen Replikasi.

Ubah Riwayat

Konten yang diperbarui
Menambahkan parameter -ExtendedEventConfigFile.
Menambahkan parameter -MultiSubnetFailover.

Lihat Juga

Administrasi Agen Replikasi