Agen Pembaca Log Replikasi
Berlaku untuk: SQL Server Azure SQL Managed Instance
Agen Pembaca Log Replikasi adalah executable yang memantau log transaksi setiap database yang dikonfigurasi untuk replikasi transaksional dan menyalin transaksi yang ditandai untuk replikasi dari log transaksi ke database distribusi.
Catatan
Parameter dapat ditentukan dalam urutan apa pun. Ketika parameter opsional tidak ditentukan, nilai yang telah ditentukan sebelumnya berdasarkan profil agen default digunakan.
Sintaks
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 ] ]
[ -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 ]
Argumen
-?
Menampilkan informasi penggunaan.
-Publisher server_name [ \instance_name ]
Nama Publisher. Tentukan <server_name>
untuk instans default SQL Server di server tersebut. Tentukan <server_name>\<instance_name>
untuk instans SQL Server bernama di server tersebut.
-PublisherDB publisher_database
Nama database Publisher.
-Terus-menerus
Menentukan apakah agen mencoba melakukan polling transaksi yang direplikasi secara berkelanjutan. Jika ditentukan, agen melakukan polling transaksi yang direplikasi dari sumber pada interval polling bahkan jika tidak ada transaksi yang tertunda.
-DefinitionFile def_path_and_file_name
Jalur file definisi agen. File definisi agen berisi argumen baris perintah untuk agen. Konten file diurai sebagai file yang dapat dieksekusi. Gunakan tanda kutip ganda ("
) untuk menentukan nilai argumen yang berisi karakter arbitrer.
-Distributor server_name [ \instance_name ]
Nama Distributor. Tentukan <server_name>
untuk instans default SQL Server di server tersebut. Tentukan <server_name>\<instance_name>
untuk instans SQL Server bernama di server tersebut.
-DistributorLogin distributor_login
Nama login Distributor.
-DistributorPassword distributor_password
Kata sandi Distributor.
-DistributorSecurityMode [ 0 | 1 ]
Menentukan mode keamanan Distributor. Nilai 0
menunjukkan Mode Autentikasi SQL Server (default), dan nilai 1
menunjukkan Mode Autentikasi Windows.
-EncryptionLevel [ 0 | 1 | 2 ]
Tingkat Keamanan Lapisan Transportasi (TLS), sebelumnya dikenal sebagai Secure Sockets Layer (SSL), enkripsi yang digunakan oleh Agen Pembaca Log 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 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.
-ExtendedEventConfigFile configuration_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. Penggunaan internal saja.
-HistoryVerboseLevel [ 0 | 1 | 2 ]
Menentukan jumlah riwayat yang dicatat selama operasi pembaca log. Anda dapat meminimalkan efek performa pencatatan riwayat dengan memilih 1
.
Nilai HistoryVerboseLevel | Deskripsi |
---|---|
0 |
Tidak ada. |
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. |
-KeepAliveMessageInterval keep_alive_message_interval_seconds
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 Pembaca Log sebagai tersangka saat menjalankan batch yang berjalan lama. Defaultnya adalah 300 detik.
-LoginTimeOut login_time_out_seconds
Jumlah detik sebelum waktu masuk habis. Defaultnya adalah 15 detik.
-LogScanThreshold scan_threshold
Diidentifikasi hanya untuk tujuan informasi. Tidak didukung. Kompatibilitas di masa mendatang tidak dijamin.
-MaxCmdsInTran number_of_commands
Menentukan jumlah maksimum pernyataan yang dikelompokkan ke dalam transaksi saat Pembaca Log menulis perintah ke database distribusi. Menggunakan parameter ini memungkinkan Agen Pembaca Log dan Agen Distribusi untuk membagi transaksi besar (terdiri dari banyak perintah) di Penerbit menjadi beberapa transaksi yang lebih kecil saat diterapkan di Pelanggan. Menentukan parameter ini dapat mengurangi ketidakcocokan di Distributor dan mengurangi latensi antara Penerbit dan Pelanggan. Karena transaksi asli diterapkan dalam unit yang lebih kecil, Pelanggan dapat mengakses baris transaksi Penerbit logis besar sebelum akhir transaksi asli, melanggar atomitas transaksional yang ketat. Defaultnya adalah 0
, yang mempertahankan batas transaksi Publisher.
Parameter ini diabaikan untuk publikasi non-SQL Server. Untuk informasi selengkapnya, lihat Mengonfigurasi Pekerjaan Set Transaksi.
MaxCmdsInTran
tidak dirancang untuk selalu diaktifkan. Ini bekerja di sekitar kasus di mana seseorang secara tidak sengaja melakukan sejumlah besar operasi DML dalam satu transaksi. Ini menyebabkan keterlambatan dalam distribusi perintah, sampai seluruh transaksi berada di database distribusi, kunci ditahan, dll. Jika Anda secara rutin jatuh ke dalam situasi ini, tinjau aplikasi Anda dan temukan cara untuk mengurangi ukuran transaksi.
Peringatan
Kesalahan kunci utama mungkin terjadi jika MaxCmdsInTran
parameter ditambahkan dan dihapus saat mereplikasi transaksi besar. MaxCmdsInTran
tidak didukung jika database publikasi yang diberikan mengaktifkan Change Data Capture (CDC) dan replikasi. Penggunaan MaxCmdsInTran
dalam konfigurasi ini dapat menyebabkan kehilangan data dalam tabel perubahan CDC.
-MessageInterval message_interval
Interval waktu yang digunakan untuk pengelogan riwayat. Peristiwa riwayat dicatat ketika MessageInterval
nilai 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 [ 0 | 1 ]
Berlaku untuk: SQL Server 2019 (15.x) dan versi yang lebih baru.
Menentukan apakah properti MultiSubnetFailover diaktifkan atau tidak. Jika aplikasi Anda tersambung ke grup ketersediaan AlwaysOn (AG) pada subnet yang berbeda, pengaturan MultiSubnetFailover ke 1 (true) memberikan deteksi dan koneksi yang lebih cepat ke server aktif (saat ini).
Saat Anda mengonfigurasi publikasi transaksional pada AG, Agen Pembaca Log membuat server tertaut dinamis untuk pendengar untuk memverifikasi metadata. Di SQL Server 2022 (16.x) CU 10 dan versi yang lebih baru, ada perubahan dalam konfigurasi server tertaut dinamis. Untuk informasi selengkapnya, lihat KB5031778.
-Output output_path_and_file_name
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 | 3 | 4 ]
Menentukan apakah output harus verbose.
Nilai | Deskripsi |
---|---|
0 |
Hanya pesan kesalahan yang dicetak. |
1 |
Semua pesan laporan kemajuan agen dicetak. |
2 (default) |
Semua pesan kesalahan dan pesan laporan kemajuan agen dicetak. |
3 |
100 byte pertama dari setiap perintah yang direplikasi dicetak. |
4 |
Semua perintah yang direplikasi dicetak. |
Nilai 2-4 berguna saat penelusuran kesalahan.
-PacketSize packet_size
Ukuran paket, dalam byte. Defaultnya adalah 4096 (byte).
-PollingInterval polling_interval
Seberapa sering, dalam detik, log dikueri untuk transaksi yang direplikasi. Defaultnya adalah 5 detik.
-ProfileName profile_name
Menentukan profil agen yang akan digunakan untuk parameter agen. Jika ProfileName
adalah NULL
, profil agen dinonaktifkan. Jika ProfileName
tidak ditentukan, profil default untuk jenis agen digunakan. Untuk informasi, lihat Profil Agen Replikasi.
-PublisherFailoverPartner server_name [ \instance_name ]
Menentukan instans mitra failover SQL Server yang berpartisipasi dalam sesi pencerminan database dengan database publikasi. Untuk informasi selengkapnya, lihat Pencerminan dan Replikasi Database (SQL Server).
-PublisherSecurityMode [ 0 | 1 ]
Menentukan mode keamanan Publisher. Nilai 0
menunjukkan Autentikasi SQL Server (default), dan nilai 1
menunjukkan Mode Autentikasi Windows.
-PublisherLogin publisher_login
Nama login Publisher.
-PublisherPassword publisher_password
Kata sandi Penerbit.
-QueryTimeOut query_time_out_seconds
Jumlah detik sebelum waktu kueri habis. Defaultnya adalah 1.800 detik.
-ReadBatchSize number_of_transactions
Jumlah maksimum transaksi yang dibaca dari log transaksi database penerbitan per siklus pemrosesan, dengan default 500, dan maks 10000. Agen terus membaca transaksi dalam batch sampai semua transaksi dibaca dari log. Parameter ini tidak didukung untuk Oracle Publishers.
-ReadBatchThreshold number_of_commands
Jumlah perintah replikasi yang akan dibaca dari log transaksi sebelum dikeluarkan kepada Pelanggan oleh Agen Distribusi. Defaultnya adalah 0. Jika parameter ini tidak ditentukan, Agen Pembaca Log membaca ke akhir log atau ke nomor yang ditentukan dalam -ReadBatchSize
(jumlah transaksi).
-RecoverFromDataErrors
Menentukan bahwa Agen Pembaca Log terus berjalan ketika mengalami kesalahan dalam data kolom yang diterbitkan dari Penerbit non-SQL Server. Secara default, kesalahan tersebut menyebabkan Agen Pembaca Log gagal. Saat Anda menggunakan -RecoverFromDataErrors
, data kolom yang salah direplikasi baik sebagai NULL
atau nilai non-null yang sesuai, dan pesan peringatan dicatat ke tabel MSlogreader_history . Parameter ini hanya didukung untuk Oracle Publishers.
Keterangan
Jika Anda menginstal SQL Server Agent untuk dijalankan di bawah akun sistem lokal alih-alih di bawah akun pengguna domain (default), layanan hanya dapat mengakses komputer lokal. Jika Agen Pembaca Log yang berjalan di bawah SQL Server Agent dikonfigurasi untuk menggunakan Mode Autentikasi Windows saat masuk ke SQL Server, Agen Pembaca Log gagal. Pengaturan defaultnya adalah Autentikasi SQL Server. Untuk informasi tentang mengubah akun keamanan, lihat Menampilkan dan Mengubah Pengaturan Keamanan Replikasi.
Untuk memulai Agen Pembaca Log, jalankan logread.exe
dari prompt perintah. Untuk informasi, lihat Konsep Executables Agen Replikasi.