Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server 2025 (17.x)
Gunakan opsi konfigurasi server max ucs send boxcars untuk mengontrol jumlah maksimum gerbong UCS yang dapat digunakan untuk mengirim pesan dari replika utama ke sekunder. Opsi ini berguna untuk mengontrol aliran data antar replika dalam grup ketersediaan AlwaysOn melalui jaringan area luas (WAN).
Nota
max ucs send boxcars Opsi konfigurasi server tersedia dimulai dengan SQL Server 2025 (17.x).
Gambaran Umum
Protokol Universal Communication Service (UCS) digunakan oleh grup ketersediaan AlwaysOn SQL Server untuk mengirim blok log antara replika primer dan sekunder. UCS menentukan apakah replika sekunder berada di belakang replika utama dengan mengukur waktu yang diperlukan primer untuk menerima pengakuan bahwa perubahan diperkuat pada sekunder.
Meskipun UCS berkomunikasi antar titik akhir, UCS memasuki kontrol alur ketika mendeteksi bahwa replika sekunder tidak dapat mengikuti penerapan perubahan dari replika utama. Proses ini bekerja dengan baik untuk jaringan lokal yang cepat di mana jeda jaringan bukan faktor yang berkontribusi, karena sebagian besar penundaan dikaitkan dengan pemrosesan pada replika sekunder. Namun, ketika UCS berkomunikasi melalui jaringan area luas (WAN) dengan jeda jaringan yang signifikan, seperti dalam replikasi geografis, latensi jaringan yang meningkat dapat menyebabkan replika sekunder tertinggal. Dalam skenario ini, kontrol alur tidak efisien.
Untuk mengatasi skenario jeda jaringan ini, UCS perlu menunda untuk mulai pengendalian alur. Hal ini dilakukan dengan menyesuaikan batas jumlah boxcar UCS yang dapat digunakan untuk mengirim pesan dari replika utama ke replika sekunder. Paket UCS dikelompokkan bersama dalam boxcar untuk memungkinkan transmisi yang lebih efisien melalui jaringan. Ketika Anda meningkatkan jumlah maksimum boxcar UCS, lebih banyak paket dapat ditransfer pada satu waktu, yang pada gilirannya menunda memasuki kontrol aliran.
Mengambil alih boxcar UCS dengan registri Windows
Mulai dalam SQL Server 2022 (16.x), Anda dapat mengontrol jumlah boxcar UCS melalui pembuatan nilai registri yang dibaca oleh SQL Server selama proses inisialisasi.
- Kunci registri:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL16.<instance_name>\MSSQLServer\ServiceBroker - Nama nilai:
MaxPendingSend - Jenis nilai:
REG_SZ
Penting
Anda harus membuat nilai sebagai REG_SZ dan bukan REG_DWORD, karena SQL Server memeriksa jenis dan mengabaikan nilai jika bukan jenis yang diharapkan.
Mekanisme ini memiliki beberapa kelemahan:
Administrator database mungkin tidak memiliki akses ke registri, baik pada komputer yang sama dengan instans SQL Server, atau dari jarak jauh.
Administrator database dan administrator sistem biasanya adalah dua peran yang berbeda dengan serangkaian tanggung jawab yang berbeda, dan karenanya set izin yang berbeda.
Mengonfigurasi ulang UCS boxcars dengan sp_configure
Mulai dari SQL Server 2025 (17.x), Anda dapat mengontrol jumlah boxcar UCS menggunakan opsi konfigurasi server max ucs send boxcars, dengan pertimbangan berikut:
Pengaturan ini adalah opsi tingkat lanjut
sp_configure.Nilai minimum adalah
256(default), dan nilai maksimumnya adalah2048. Namun, Anda dapat menggunakan nilai0untuk mengatur ulang nilai ke default.Opsi konfigurasi ini lebih diutamakan daripada pengaturan registri.
Pengaturan ini berlaku setelah instans SQL Server dimulai ulang.
USE master;
GO
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
EXEC sp_configure `max ucs send boxcars`, 1234;
RECONFIGURE;
GO
Urutan prioritas
Tabel berikut ini memperlihatkan contoh prioritas, bergantung pada mekanisme penimpaan mana yang Anda gunakan.
| Peraturan |
sp_configure nilai |
Nilai registri | Nilai efektif |
|---|---|---|---|
max ucs send boxcars nilai yang non-default (yaitu, tidak sama dengan 256) lebih diutamakan daripada nilai registri. |
1024 | 2048 | 1024 |
Jika max ucs send boxcars diatur ke nilai default 256, nilai registri akan berlaku. |
256 | 2048 | 2048 |
Jika max ucs send boxcars diatur ke 0, ia menggunakan nilai default, yang lebih diutamakan daripada nilai registri. Dengan cara ini, jika administrator database tidak memiliki izin untuk mengedit registri, mereka masih dapat menerapkan nilai default. |
0 | 2048 | 256 |
Komentar
Anda harus menjalankan RECONFIGURE setelah mengatur max ucs send boxcars opsi konfigurasi server untuk menerapkan konfigurasi baru. Pengaturan hanya berlaku setelah memulai ulang instans SQL Server.
Ketika nilai non-default berlaku untuk jumlah gerbong UCS, SQL Server mencatat pesan informatif ke dalam log kesalahan SQL Server. Pesan informasi berisi nilai efektif dan sumber penggantian: sp_configure atau registry.
2024-10-08 13:38:26.11 Server UCS transport default sending capacity is overridden with the value of 1234. Override source: sp_configure. This is an informational message only. No user action is required.
Kode kesalahan internal untuk pesan adalah 33338. Pesan tidak dicatat jika nilai default telah disetel.