Mengonfigurasi Pemutaran Ulang Terdistribusi

Berlaku untuk: SQL Server 2016 (13.x), SQL Server 2017 (14.x), dan SQL Server 2019 (15.x)

Penting

Pemutaran Ulang Terdistribusi SQL Server tidak tersedia dengan SQL Server 2022 (16.x).

Detail konfigurasi Pemutaran Ulang Terdistribusi Microsoft SQL Server ditentukan dalam file XML pada pengontrol Pemutaran Ulang Terdistribusi, klien, dan tempat alat administrasi diinstal. File-file ini mencakup yang berikut ini:

File Konfigurasi Pengontrol: DReplayController.config

Ketika layanan pengontrol Pemutaran Ulang Terdistribusi SQL Server dimulai, layanan ini memuat tingkat pengelogan dari file konfigurasi pengontrol, DReplayController.config. File ini terletak di folder tempat Anda menginstal layanan pengontrol Pemutaran Ulang Terdistribusi:

<jalur> penginstalan pengontrol\DReplayController.config

Tingkat pengelogan yang ditentukan oleh file konfigurasi pengontrol mencakup yang berikut ini:

Pengaturan Elemen XML Deskripsi Nilai yang diizinkan Wajib
Tingkat pengelogan <LoggingLevel> Menentukan tingkat pengelogan untuk layanan pengontrol. INFORMATION | WARNING | CRITICAL Tidak. Secara default, nilainya adalah CRITICAL.

Contoh

Contoh ini menunjukkan file konfigurasi pengontrol yang telah dimodifikasi untuk menekan INFORMATION dan WARNING mencatat entri.

<?xml version='1.0'?> 
<Options> 
<LoggingLevel>CRITICAL</LoggingLevel> 
</Options> 

File Konfigurasi Klien: DReplayClient.config

Ketika layanan klien Pemutaran Ulang Terdistribusi SQL Server dimulai, layanan ini memuat pengaturan konfigurasi dari file konfigurasi klien, DReplayClient.config. File ini terletak di setiap klien, di folder tempat Anda menginstal layanan klien Pemutaran Ulang Terdistribusi:

<jalur> penginstalan klien\DReplayClient.config

Pengaturan yang ditentukan oleh file konfigurasi klien mencakup yang berikut ini:

Pengaturan Elemen XML Deskripsi Nilai yang diizinkan Wajib
Pengontrol <Controller> Menentukan nama komputer pengontrol. Klien akan mencoba mendaftar dengan lingkungan Pemutaran Ulang Terdistribusi dengan menghubungi pengontrol. Anda dapat menggunakan "localhost" atau "." untuk merujuk ke komputer lokal. Tidak. Secara default, klien mencoba mendaftar dengan instans pengontrol yang berjalan secara lokal ("."), jika ada.
Direktori kerja klien <WorkingDirectory> Adalah jalur lokal pada klien tempat file pengiriman disimpan.

File dalam direktori ini ditimpa pada pemutaran ulang berikutnya.
Nama direktori lengkap, dimulai dengan huruf kandar. Tidak. Jika tidak ada nilai yang ditentukan, file pengiriman akan disimpan di lokasi yang sama dengan file konfigurasi klien default. Jika nilai ditentukan dan folder tersebut tidak ada di klien, layanan klien tidak akan dimulai.
Direktori hasil klien <ResultDirectory> Adalah jalur lokal pada klien tempat file pelacakan hasil dari aktivitas pemutaran ulang (untuk klien) disimpan.

File dalam direktori ini ditimpa pada pemutaran ulang berikutnya.
Nama direktori lengkap, dimulai dengan huruf kandar. Tidak. Jika tidak ada nilai yang ditentukan, file pelacakan hasil akan disimpan di lokasi yang sama dengan file konfigurasi klien default. Jika nilai ditentukan dan folder tersebut tidak ada di klien, layanan klien tidak akan dimulai.
Tingkat pengelogan <LoggingLevel> Adalah tingkat pengelogan untuk layanan klien. INFORMATION | WARNING | CRITICAL Tidak. Secara default, nilainya adalah CRITICAL.

Contoh

Contoh ini menunjukkan file konfigurasi klien yang telah dimodifikasi untuk menentukan bahwa layanan pengontrol berjalan di komputer lain, komputer bernama Controller1. Elemen WorkingDirectory dan ResultDirectory telah dikonfigurasi untuk menggunakan folder c:\ClientWorkingDir dan c:\ResultTraceDir, masing-masing. Tingkat pengelogan telah diubah dari nilai default untuk menekan INFORMATION dan WARNING mencatat entri.

<?xml version='1.0'?> 
<Options> 
    <Controller>Controller1</Controller> 
    <WorkingDirectory>c:\ClientWorkingDir</WorkingDirectory> 
    <ResultDirectory>c:\ResultTraceDir</ResultDirectory> 
    <LoggingLevel>CRITICAL</LoggingLevel> 
</Options> 

File Konfigurasi Praprosces: DReplay.exe.preprocess.config

Ketika Anda menggunakan alat administrasi untuk memulai tahap prapemrosian, alat administrasi memuat pengaturan praprosces dari file konfigurasi praprosces, DReplay.exe.preprocess.config.

Gunakan file konfigurasi default atau gunakan parameter alat administrasi -c untuk menentukan lokasi file konfigurasi praprosces yang dimodifikasi. Untuk informasi selengkapnya tentang menggunakan opsi prapemrosces alat administrasi, lihat Opsi Praprosces (Alat Administrasi Pemutaran Ulang Terdistribusi).

File konfigurasi praprosces default terletak di folder tempat Anda menginstal alat administrasi:

<jalur> penginstalan alat administrasi\DReplayAdmin\DReplay.exe.preprocess.config

Pengaturan konfigurasi praprosces ditentukan dalam elemen XML yang merupakan turunan dari <PreprocessModifiers> elemen dalam file konfigurasi praprosces. Pengaturan ini mencakup hal-hal berikut:

Pengaturan Elemen XML Deskripsi Nilai yang diizinkan Wajib
Sertakan aktivitas sesi sistem <IncSystemSession> Menunjukkan apakah aktivitas sesi sistem selama pengambilan akan disertakan selama pemutaran ulang. Yes | No Tidak. Secara default, nilainya adalah No.
Waktu menganggur maksimum <MaxIdleTime> Membatasi waktu menganggur ke angka absolut (dalam detik). Bilangan bulat yang = >-1.

-1 menunjukkan tidak ada perubahan dari nilai asli dalam file pelacakan asli.

0 menunjukkan bahwa ada beberapa aktivitas yang terjadi pada titik waktu tertentu.
Tidak. Secara default, nilainya adalah -1.

Contoh

File konfigurasi praprosces default:

<?xml version='1.0'?> 
<Options> 
    <PreprocessModifiers> 
        <IncSystemSession>No</IncSystemSession> 
        <MaxIdleTime>-1</MaxIdleTime> 
    </PreprocessModifiers> 
</Options> 

File Konfigurasi Pemutaran Ulang: DReplay.exe.replay.config

Saat Anda menggunakan alat administrasi untuk memulai tahap pemutaran ulang peristiwa, alat administrasi memuat pengaturan pemutaran ulang dari file konfigurasi pemutaran ulang, DReplay.exe.replay.config.

Gunakan file konfigurasi default atau gunakan parameter alat administrasi -c untuk menentukan lokasi file konfigurasi pemutaran ulang yang dimodifikasi. Untuk informasi selengkapnya tentang menggunakan opsi pemutaran ulang alat administrasi, lihat Opsi Pemutaran Ulang (Alat Administrasi Pemutaran Ulang Terdistribusi).

File konfigurasi pemutaran ulang default terletak di folder tempat Anda menginstal alat administrasi:

<jalur> penginstalan alat administrasi\DReplayAdmin\DReplay.exe.replay.config

Pengaturan konfigurasi pemutaran ulang ditentukan dalam elemen XML yang merupakan turunan dari <ReplayOptions> elemen dan <OutputOptions> file konfigurasi pemutaran ulang.

<Elemen ReplayOptions>

Pengaturan yang ditentukan oleh file konfigurasi pemutaran ulang dalam <ReplayOptions> elemen meliputi yang berikut ini:

Pengaturan Elemen XML Deskripsi Nilai yang diizinkan Wajib
Instans target SQL Server (server pengujian) <Server> Menentukan nama server dan instans SQL Server yang akan disambungkan. server_name[\instance_name]

Anda tidak dapat menggunakan "localhost" atau "." untuk mewakili host lokal.
Tidak, jika nama server sudah ditentukan dengan menggunakan parameter server target -sdengan opsi pemutaran ulang alat administrasi.
Mode urutan <SequencingMode> Menentukan mode yang digunakan untuk penjadwalan peristiwa. synchronization | stress Tidak. Secara default, nilainya adalah stress.
Granularitas skala stres <StressScaleGranularity> Menentukan apakah semua koneksi pada Pengidentifikasi Profil Layanan (SPID) harus diskalakan bersama -sama (SPID) atau secara independen (Koneksi ion) dalam mode stres. SPID | Koneksi ion Ya. Secara default, nilainya adalah SPID.
Koneksi skala waktu <ConnectTimeScale> Digunakan untuk menskalakan waktu koneksi dalam mode stres. Bilangan bulat antara 1 dan 100. Tidak. Secara default, nilainya adalah 100.
Pikirkan skala waktu <ThinkTimeScale> Digunakan untuk menskalakan waktu pikir dalam mode stres. Bilangan bulat antara 0 dan 100. Tidak. Secara default, nilainya adalah 100.
Gunakan pengumpulan koneksi <UseConnectionPooling> Menentukan apakah pengumpulan koneksi akan diaktifkan pada setiap klien Pemutaran Ulang Terdistribusi. Ya | Tidak Ya. Secara default, nilainya adalah Yes.
Interval monitor kesehatan <HealthmonInterval> Menunjukkan seberapa sering menjalankan monitor kesehatan (dalam detik).

Nilai ini hanya digunakan dalam mode sinkronisasi.
Bilangan bulat >= 1

(-1 untuk menonaktifkan)
Tidak. Secara default, nilainya adalah 60.
Batas waktu kueri <QueryTimeout> Menentukan nilai batas waktu kueri, dalam detik. Nilai ini hanya berlaku hingga baris pertama dikembalikan. Bilangan bulat >= 1

(-1 untuk menonaktifkan)
Tidak. Secara default, nilainya adalah 3600.
Utas per klien <ThreadsPerClient> Menentukan jumlah utas pemutaran ulang yang akan digunakan untuk setiap klien pemutaran ulang. Bilangan bulat antara 1 dan 512. Tidak. Jika tidak ditentukan, Pemutaran Ulang Terdistribusi akan menggunakan nilai 255.

<Elemen OutputOptions>

Pengaturan yang ditentukan oleh file konfigurasi pemutaran ulang dalam <OutputOptions> elemen meliputi yang berikut ini:

Pengaturan Elemen XML Deskripsi Nilai yang diizinkan Wajib
Jumlah baris rekaman <RecordRowCount> Menunjukkan apakah jumlah baris harus direkam untuk setiap kumpulan hasil. Yes | No Tidak. Secara default, nilainya adalah Yes.
Kumpulan hasil rekaman <RecordResultSet> Menunjukkan apakah konten semua kumpulan hasil harus direkam. Yes | No Tidak. Secara default, nilainya adalah No.

Contoh

File konfigurasi pemutaran ulang default:

<?xml version='1.0'?> 
<Options> 
    <ReplayOptions> 
        <Server></Server> 
        <SequencingMode>stress</SequencingMode> 
        <ConnectTimeScale></ConnectTimeScale> 
        <ThinkTimeScale></ThinkTimeScale> 
        <HealthmonInterval>60</HealthmonInterval> 
        <QueryTimeout>3600</QueryTimeout> 
        <ThreadsPerClient></ThreadsPerClient> 
    </ReplayOptions> 
    <OutputOptions> 
        <ResultTrace> 
            <RecordRowCount>Yes</RecordRowCount> 
            <RecordResultSet>No</RecordResultSet> 
        </ResultTrace> 
    </OutputOptions> 
</Options> 

Kemungkinan Masalah Saat Berjalan Dengan Mode Urutan Sinkronisasi

Anda mungkin mengalami gejala di mana fungsionalitas pemutaran ulang muncul ke "stall", atau memutar ulang peristiwa secara perlahan. Fenomena ini dapat terjadi jika jejak yang diputar ulang bergantung pada data dan/atau peristiwa yang tidak ada di database target yang dipulihkan.

Salah satu contohnya adalah beban kerja yang ditangkap yang menggunakan WAITFOR, seperti dalam pernyataan WAITFOR RECEIVE Service Broker. Saat menggunakan mode pengurutan sinkronisasi, batch diputar ulang secara serial. Jika INSERT terjadi terhadap database sumber setelah pencadangan database, tetapi sebelum jejak pengambilan pemutaran ulang dimulai, WAITFOR RECEIVE yang dikeluarkan selama pemutaran ulang mungkin harus menunggu seluruh durasi WAITFOR. Peristiwa yang diatur untuk diputar ulang setelah WAITFOR RECEIVE akan terhenti. Hal ini dapat mengakibatkan penghitung pemantau performa Batch Requests/detik untuk target database pemutaran ulang turun ke nol hingga WAITFOR selesai.

Jika Anda perlu menggunakan mode sinkronisasi dan ingin menghindari perilaku ini, Anda harus melakukan hal berikut:

  1. Hentikan database yang akan Anda gunakan sebagai target pemutaran ulang.

  2. Izinkan semua aktivitas tertunda selesai.

  3. Cadangkan database dan izinkan pencadangan selesai.

  4. Mulai pengambilan jejak pemutaran ulang terdistribusi dan lanjutkan beban kerja normal.

Baca juga