Bekerja dengan Profil Agen Replikasi

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Topik ini menjelaskan cara bekerja dengan Profil Agen Replikasi di SQL Server dengan menggunakan SQL Server Management Studio, Transact-SQL, atau Objek Manajemen Replikasi (RMO). Perilaku setiap agen replikasi dikontrol oleh sekumpulan parameter yang dapat diatur melalui profil agen. Setiap agen memiliki profil default, dan beberapa memiliki profil tambahan yang telah ditentukan; pada waktu tertentu, hanya satu profil yang aktif untuk agen.

Dalam Topik Ini

Menggunakan SQL Server Management Studio

Untuk mengakses kotak dialog Profil Agen dari SQL Server Management Studio

  1. Pada halaman Umum kotak dialog Properti Distributor - <Distributor> , klik Default Profil.

Untuk mengakses kotak dialog Profil Agen dari Monitor Replikasi

  • Untuk membuka kotak dialog untuk semua agen, klik kanan Penerbit, lalu klik Profil Agen.

  • Untuk membuka kotak dialog untuk satu agen:

    1. Perluas grup Publisher di panel kiri Monitor Replikasi, perluas Publisher, lalu klik publikasi.

    2. Untuk profil Agen Distribusi dan Gabungkan Agen, klik kanan langganan pada tab Semua Langganan , lalu klik Profil Agen. Untuk agen lain, klik kanan agen pada tab Agen , lalu klik Profil Agen.

Untuk menentukan profil untuk agen

  1. Jika kotak dialog Profil Agen menampilkan profil untuk lebih dari satu agen, pilih agen.

  2. Pilih profil di kolom Default untuk baru kisi profil Agen. Secara default, profil hanya diterapkan ke agen untuk publikasi dan langganan baru.

  3. Untuk menentukan bahwa semua agen dari tipe yang dipilih untuk publikasi atau langganan yang ada harus menggunakan profil ini, klik Ubah agen yang ada.

Untuk melihat dan mengedit parameter yang terkait dengan profil

  1. Jika kotak dialog Profil Agen menampilkan profil untuk lebih dari satu agen, pilih agen.

  2. Klik tombol properti (...) di samping profil.

  3. Tampilkan parameter dan nilai dalam kotak <dialog Properti ProfilName>.

    • Parameter dalam profil yang ditentukan pengguna dapat diedit; parameter dalam profil sistem yang telah ditentukan sebelumnya tidak dapat.

    • Untuk melihat semua parameter untuk agen, kosongkan kotak centang Perlihatkan hanya parameter yang digunakan dalam profil ini. Untuk informasi tentang parameter agen, lihat tautan di akhir topik ini.

  4. Klik Tutup.

Untuk membuat profil yang ditentukan pengguna

  1. Jika kotak dialog Profil Agen menampilkan profil untuk lebih dari satu agen, pilih agen.

  2. Klik Baru.

  3. Dalam kotak dialog Inisialisasi Profil Agen Baru, pilih profil yang sudah ada untuk mendasarkan profil baru.

  4. Dalam kotak dialog Profil Agen Baru, masukkan nilai dalam kotak teks Nama dan Deskripsi .

  5. Ubah parameter untuk menyesuaikan profil. Untuk melihat semua parameter untuk agen, kosongkan kotak centang Perlihatkan hanya parameter yang digunakan dalam profil ini. Untuk informasi tentang parameter agen, lihat tautan di akhir topik ini.

  6. Pilih OK.

Untuk menghapus profil yang ditentukan pengguna

  1. Jika kotak dialog Profil Agen menampilkan profil untuk lebih dari satu agen, pilih agen.

  2. Jika profil dikaitkan dengan satu atau beberapa agen, ubah profil untuk agen tersebut:

    1. Pilih profil lain di kisi profil Agen.

    2. Klik Ubah agen yang sudah ada.

      Catatan

      Ini akan mengubah profil untuk semua agen dari jenis yang dipilih untuk publikasi atau langganan yang ada, tidak hanya yang menggunakan profil yang ingin Anda hapus.

  3. Pilih profil yang ingin Anda hapus, lalu klik Hapus.

  4. Pilih OK.

Menggunakan T-SQL

Untuk membuat profil agen baru

  1. Di Distributor, jalankan sp_add_agent_profile (Transact-SQL). Tentukan @name, nilai 1 untuk @profile_type, dan salah satu nilai berikut untuk @agent_type:

    Jika profil ini akan menjadi profil default baru untuk jenis agen replikasinya, tentukan nilai 1 untuk @default. Pengidentifikasi untuk profil baru dikembalikan menggunakan parameter output @profile_id . Ini membuat profil baru dengan sekumpulan parameter profil berdasarkan profil default untuk jenis agen yang diberikan.

  2. Setelah profil baru dibuat, tambahkan, hapus, atau ubah parameter default untuk menyesuaikan profil.

Untuk mengubah profil agen yang ada

  1. Di Distributor, jalankan sp_help_agent_profile (Transact-SQL). Tentukan salah satu nilai berikut untuk @agent_type:

    Ini mengembalikan semua profil untuk jenis agen yang ditentukan. Perhatikan nilai profile_id dalam tataan hasil agar profil berubah.

  2. Di Distributor, jalankan sp_help_agent_parameter (Transact-SQL). Tentukan pengidentifikasi profil dari langkah 1 untuk @profile_id. Ini mengembalikan semua parameter untuk profil. Perhatikan nama parameter apa pun untuk dimodifikasi atau dihapus dari profil.

  3. Untuk mengubah nilai parameter dalam profil, jalankan sp_change_agent_parameter (Transact-SQL). Tentukan pengidentifikasi profil dari langkah 1 untuk @profile_id, nama parameter yang akan diubah untuk @parameter_name, dan nilai baru untuk parameter untuk @parameter_value.

    Catatan

    Anda tidak dapat mengubah profil agen yang ada untuk menjadi profil default untuk agen. Anda harus membuat profil baru sebagai profil default, seperti yang ditunjukkan pada prosedur sebelumnya.

  4. Untuk menghapus parameter dari profil, jalankan sp_drop_agent_parameter (Transact-SQL). Tentukan pengidentifikasi profil dari langkah 1 untuk @profile_id dan nama parameter yang akan dihapus untuk @parameter_name.

  5. Untuk menambahkan parameter baru ke profil, Anda harus melakukan hal berikut:

Untuk menghapus profil agen

  1. Di Distributor, jalankan sp_help_agent_profile (Transact-SQL). Tentukan salah satu nilai berikut untuk @agent_type:

    Ini mengembalikan semua profil untuk jenis agen yang ditentukan. Perhatikan nilai profile_id dalam tataan hasil agar profil dihapus.

  2. Di Distributor, jalankan sp_drop_agent_profile (Transact-SQL). Tentukan pengidentifikasi profil dari langkah 1 untuk @profile_id.

Untuk menggunakan profil agen selama sinkronisasi

  1. Di Distributor, jalankan sp_help_agent_profile (Transact-SQL). Tentukan salah satu nilai berikut untuk @agent_type:

    Ini mengembalikan semua profil untuk jenis agen yang ditentukan. Perhatikan nilai profile_name dalam tataan hasil untuk profil yang akan digunakan.

  2. Jika agen dimulai dari pekerjaan agen, edit langkah pekerjaan yang memulai agen untuk menentukan nilai profile_name yang diperoleh di langkah 1 setelah parameter baris perintah -ProfileName . Untuk informasi selengkapnya, lihat Menampilkan dan Memodifikasi Parameter Prompt Perintah Agen Replikasi (SQL Server Management Studio).

  3. Saat memulai agen dari prompt perintah, tentukan nilai profile_name yang diperoleh di langkah 1 setelah parameter baris perintah -ProfileName .

Contoh (Transact-SQL)

Contoh ini membuat profil kustom untuk Merge Agent bernama custom_merge, mengubah nilai parameter -UploadReadChangesPerBatch, menambahkan parameter -ExchangeType baru, dan mengembalikan informasi pada profil yang dibuat.

DECLARE @profilename AS sysname;
DECLARE @profileid AS int;
SET @profilename = N'custom_merge';

-- Create a temporary table to hold the returned 
-- Merge Agent profiles.
CREATE TABLE #profiles (
    profile_id int, 
    profile_name sysname,
    agent_type int,
    [type] int,
    description varchar(3000),
    def_profile bit)

INSERT INTO #profiles (profile_id, profile_name, 
    agent_type, [type],description, def_profile)
    EXEC sp_help_agent_profile @agent_type = 4;

SET @profileid = (SELECT profile_id FROM #profiles 
    WHERE profile_name = @profilename);

IF (@profileid IS NOT NULL)
BEGIN
    EXEC sp_drop_agent_profile @profileid;
END
DROP TABLE #profiles

-- Add a new merge agent profile. 
EXEC sp_add_agent_profile @profile_id = @profileid OUTPUT, 
@profile_name = @profilename, @agent_type = 4, 
@description = N'custom merge profile';

-- Change the value of uploadreadchangesperbatch in the profile.
EXEC sp_change_agent_parameter @profile_id = @profileid, 
    @parameter_name = N'-UploadReadChangesPerBatch', @parameter_value = 50;

-- Add a new parameter ExchangeType the profile. 
EXEC sp_add_agent_parameter @profile_id = @profileid, 
    @parameter_name = N'-ExchangeType', @parameter_value = 1;

-- Verify the new profile. 
EXEC sp_help_agent_parameter @profileid;
GO

Menggunakan RMO

Untuk membuat profil agen baru

  1. Buat koneksi ke Distributor dengan menggunakan instans ServerConnection kelas.

  2. Membuat instans kelas AgentProfile.

  3. Atur properti berikut pada objek:

  4. Create Panggil metode untuk membuat profil di server.

  5. Setelah profil ada di server, Anda dapat menyesuaikannya dengan menambahkan, menghapus, atau mengubah nilai parameter agen replikasi.

  6. Untuk menetapkan profil ke pekerjaan agen replikasi yang ada, panggil AssignToAgent metode . Berikan nama database distribusi untuk distributionDBName dan ID pekerjaan untuk agentID.

Untuk mengubah profil agen yang ada

  1. Buat koneksi ke Distributor dengan menggunakan instans ServerConnection kelas.

  2. Membuat instans kelas ReplicationServer. Teruskan objek yang ServerConnection dibuat di langkah 1.

  3. Panggil LoadProperties metode. Jika metode ini mengembalikan false, verifikasi bahwa Distributor ada.

  4. Panggil EnumAgentProfiles metode. AgentType Teruskan nilai untuk mempersempit profil yang dikembalikan ke jenis agen replikasi tertentu.

  5. Dapatkan objek yang diinginkan AgentProfile dari yang dikembalikan ArrayList, di mana Name properti objek cocok dengan nama profil.

  6. Panggil salah satu metode AgentProfile berikut untuk mengubah profil:

    • AddParameter - menambahkan parameter yang didukung ke profil, di mana nama adalah nama parameter dan nilai agen replikasi adalah nilai yang ditentukan. Untuk menghitung semua parameter agen yang didukung untuk jenis agen tertentu, panggil EnumParameterInfo metode . Metode ini mengembalikan ArrayList objek AgentProfileParameterInfo yang mewakili semua parameter yang didukung.

    • RemoveParameter - menghapus parameter yang ada dari profil, di mana nama adalah nama parameter agen replikasi. Untuk menghitung semua parameter agen saat ini yang ditentukan untuk profil, panggil EnumParameters metode . Metode ini mengembalikan ArrayList objek AgentProfileParameter yang mewakili parameter yang ada untuk profil ini.

    • ChangeParameter - mengubah pengaturan parameter yang ada di profil, di mana nama adalah nama parameter agen dan newValue adalah nilai yang parameternya diubah. Untuk menghitung semua parameter agen saat ini yang ditentukan untuk profil, panggil EnumParameters metode . Metode ini mengembalikan ArrayList objek AgentProfileParameter yang mewakili parameter yang ada untuk profil ini. Untuk menghitung semua pengaturan parameter agen yang didukung, panggil EnumParameterInfo metode . Metode ini mengembalikan ArrayList objek AgentProfileParameterInfo yang mewakili nilai yang didukung untuk semua parameter.

Untuk menghapus profil agen

  1. Buat koneksi ke Distributor dengan menggunakan instans ServerConnection kelas.

  2. Membuat instans kelas AgentProfile. Atur nama profil untuk Name dan ServerConnection dari langkah 1 untuk ConnectionContext.

  3. Panggil LoadProperties metode. Jika metode ini mengembalikan false, nama yang ditentukan salah atau profil tidak ada di server.

  4. Verifikasi bahwa Type properti diatur ke User, yang menunjukkan profil pelanggan. Anda tidak boleh menghapus profil yang memiliki nilai System untuk Type.

  5. Remove Panggil metode untuk menghapus profil yang ditentukan pengguna yang diwakili oleh objek ini dari server.

Tindak Lanjut: Setelah Mengubah Parameter Agen

Perubahan parameter agen berlaku saat agen dimulai lain kali. Jika agen berjalan terus menerus, Anda harus menghentikan dan memulai ulang agen. Dimulai dengan SQL Server 2017 CU3, beberapa perubahan parameter agen berlaku tanpa harus menghidupkan ulang Agen.

Lihat Juga

Profil Agen Replikasi
Agen Rekam Jepret Replikasi
Agen Pembaca Log Replikasi
Agen Distribusi Replikasi
Agen Penggabungan Replikasi
Agen Pembaca Antrean Replikasi