Menampilkan dan Mengubah Properti Distributor dan Penerbit

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Topik ini menjelaskan cara melihat dan memodifikasi properti Distributor dan Penerbit di SQL Server dengan menggunakan SQL Server Management Studio, Transact-SQL, atau Objek Manajemen Replikasi (RMO).

Dalam Topik Ini

Sebelum Anda mulai

Rekomendasi

  • Untuk Penerbit yang menjalankan versi sebelum Microsoft SQL Server 2005 (9.x), pengguna dalam peran server tetap sysadmin dapat mendaftarkan Pelanggan di halaman Pelanggan . Dimulai dengan SQL Server 2005 (9.x), tidak perlu lagi secara eksplisit mendaftarkan Pelanggan untuk replikasi.

Keamanan

Jika memungkinkan, minta pengguna untuk memasukkan kredensial keamanan saat runtime.

Menggunakan SQL Server Management Studio

Untuk melihat dan mengubah properti Distributor

  1. Koneksi ke Distributor di SQL Server Management Studio, lalu perluas simpul server.

  2. Klik kanan folder Replikasi, lalu klik Properti Distributor.

  3. Tampilkan dan ubah properti dalam kotak dialog Properti Distributor - <Distributor> .

    • Untuk menampilkan dan mengubah properti untuk database distribusi, klik tombol properti (...) untuk database pada halaman Umum kotakdialog.

    • Untuk menampilkan dan mengubah properti Publisher yang terkait dengan Distributor, klik tombol properti (...) untuk Publisher pada halaman Penerbit kotak dialog.

    • Untuk mengakses profil agen replikasi, klik tombol Default Profil pada halaman Umum kotak dialog. Untuk informasi selengkapnya, lihat Profil Agen Replikasi.

    • Untuk mengubah kata sandi untuk akun yang digunakan saat prosedur tersimpan administratif dijalankan di Penerbit dan memperbarui informasi di Distributor, masukkan kata sandi baru dalam kotak Kata Sandi dan Konfirmasi kata sandi di halaman Penerbit kotak dialog. Untuk informasi selengkapnya, lihat Mengamankan Distributor.

  4. Ubah properti apa pun jika perlu, lalu klik OK.

Untuk menampilkan dan mengubah properti Publisher

  1. Koneksi ke Publisher di SQL Server Management Studio, lalu perluas simpul server.

  2. Klik kanan folder Replikasi, lalu klik Properti Penerbit.

  3. Tampilkan dan ubah properti dalam kotak dialog Properti Penerbit - < Penerbit > .

    • Pengguna dalam peran server tetap sysadmin dapat mengaktifkan database untuk replikasi di halaman Database Publikasi. Mengaktifkan database tidak menerbitkan database tersebut; sebaliknya, ini memungkinkan setiap pengguna dalam peran database tetap db_owner untuk database tersebut untuk membuat satu atau beberapa publikasi dalam database.
  4. Ubah properti apa pun jika perlu, lalu klik OK.

Menggunakan T-SQL

Properti Penerbit dan Distributor dapat dilihat secara terprogram menggunakan prosedur tersimpan replikasi.

Untuk menampilkan properti database Distributor dan distribusi

  1. Jalankan sp_helpdistributor untuk mengembalikan informasi tentang Distributor, database distribusi, dan direktori kerja.

  2. Jalankan sp_helpdistributiondb untuk mengembalikan properti database distribusi tertentu.

Untuk mengubah properti database Distributor dan distribusi

  1. Di Distributor, jalankan sp_changedistributor_property untuk memodifikasi properti Distributor.

  2. Di Distributor, jalankan sp_changedistributiondb untuk memodifikasi properti database distribusi.

  3. Di Distributor, jalankan sp_changedistributor_password untuk mengubah kata sandi Distributor.

    Penting

    Jika memungkinkan, minta pengguna untuk memasukkan kredensial keamanan saat runtime. Jika Anda harus menyimpan kredensial dalam file skrip, amankan file untuk mencegah akses yang tidak sah.

  4. Di Distributor, jalankan sp_changedistpublisher untuk mengubah properti Publisher menggunakan Distributor.

Contoh (Transact-SQL)

Contoh skrip Transact-SQL berikut mengembalikan informasi tentang database Distributor dan distribusi.

-- View information about the Distributor, distribution database, 
-- working directory, and SQL Server Agent user account. 
USE master
EXEC sp_helpdistributor;
GO
-- View information about the specified distribution database. 
USE distribution
EXEC sp_helpdistributiondb;
GO

Contoh ini mengubah periode retensi untuk Distributor, kata sandi yang digunakan saat menyambungkan ke Distributor, dan interval di mana Distributor memeriksa status berbagai agen replikasi (juga dikenal sebagai interval heartbeat).

Penting

Jika memungkinkan, minta pengguna untuk memasukkan kredensial keamanan saat runtime. Jika Anda harus menyimpan kredensial dalam file skrip, amankan file untuk mencegah akses yang tidak sah.


-- Change the heartbeat interval at the Distributor to 5 minutes. 
USE master 
exec sp_changedistributor_property 
    @property = N'heartbeat_interval', 
    @value = 5;
GO
DECLARE @distributionDB AS sysname;
SET @distributionDB = N'distribution';

-- Change the history retention period to 24 hours and the
-- maximum retention period to 48 hours.  
USE distribution
EXEC sp_changedistributiondb @distributionDB, N'history_retention', 24
EXEC sp_changedistributiondb @distributionDB, N'max_distretention', 48
GO
-- Change the password on the Distributor. 
-- To avoid storing the password in the script file, the value is passed 
-- into SQLCMD as a scripting variable. For information about how to use 
-- scripting variables on the command line and in SQL Server Management
-- Studio, see the "Executing Replication Scripts" section in the topic
-- "Programming Replication Using System Stored Procedures".
USE master
EXEC sp_changedistributor_password $(Password)
GO

Menggunakan Objek Manajemen Replikasi (RMO)

Untuk melihat dan mengubah properti Distributor

  1. Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .

  2. Membuat instans kelas ReplicationServer. Teruskan ServerConnection objek dari langkah 1.

  3. (Opsional) IsDistributor Periksa properti untuk memverifikasi bahwa server yang saat ini tersambung adalah Distributor.

  4. Load Panggil metode untuk mendapatkan properti dari server.

  5. (Opsional) Untuk mengubah properti, atur nilai baru untuk satu atau beberapa properti Distributor yang dapat diatur pada ReplicationServer objek.

  6. (Opsional) CachePropertyChanges Jika properti pada ReplicationServer objek diatur ke true, panggil CommitPropertyChanges metode untuk menerapkan perubahan pada server.

Untuk menampilkan dan mengubah properti database distribusi

  1. Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .

  2. Membuat instans kelas DistributionDatabase. Tentukan properti nama dan teruskan ServerConnection objek dari langkah 1.

  3. LoadProperties Panggil metode untuk mendapatkan properti dari server. Jika metode ini mengembalikan false, database dengan nama yang ditentukan tidak ada di server.

  4. (Opsional) Untuk mengubah properti, atur nilai baru untuk salah DistributionDatabase satu properti yang dapat diatur.

  5. (Opsional) CachePropertyChanges Jika properti pada DistributionDatabase objek diatur ke true, panggil CommitPropertyChanges metode untuk menerapkan perubahan pada server.

Untuk menampilkan dan mengubah properti Publisher

  1. Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .

  2. Membuat instans kelas DistributionPublisher. Tentukan Name properti dan teruskan ServerConnection objek dari langkah 1.

  3. (Opsional) Untuk mengubah properti, atur nilai baru untuk salah DistributionPublisher satu properti yang dapat diatur.

  4. (Opsional) CachePropertyChanges Jika properti pada DistributionPublisher objek diatur ke true, panggil CommitPropertyChanges metode untuk menerapkan perubahan pada server.

Untuk mengubah kata sandi untuk koneksi administratif dari Penerbit ke Distributor

  1. Buat koneksi ke Distributor dengan menggunakan ServerConnection kelas .

  2. Membuat instans kelas ReplicationServer.

  3. Atur ConnectionContext properti ke koneksi yang dibuat di langkah 1.

  4. Load Panggil metode untuk mendapatkan properti objek.

  5. Panggil ChangeDistributorPassword metode. Berikan nilai kata sandi baru untuk parameter kata sandi .

    Penting

    Jika memungkinkan, minta pengguna untuk memasukkan kredensial keamanan saat runtime. Jika Anda harus menyimpan kredensial, gunakan layanan kriptografi yang disediakan oleh Microsoft Windows .NET Framework.

  6. (Opsional) Lakukan langkah-langkah berikut untuk mengubah kata sandi di setiap Publisher jarak jauh yang menggunakan Distributor ini:

    1. Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .

    2. Membuat instans kelas ReplicationServer.

    3. Atur ConnectionContext properti ke koneksi yang dibuat di langkah 6a.

    4. Load Panggil metode untuk mendapatkan properti objek.

    5. Panggil ChangeDistributorPassword metode. Berikan nilai kata sandi baru dari Langkah 5 untuk parameter kata sandi .

Contoh (RMO)

Contoh ini memperlihatkan cara mengubah properti database Distribusi dan distribusi.

Penting

Untuk menghindari penyimpanan kredensial dalam kode, kata sandi Distributor baru disediakan saat runtime.

// Set the Distributor and distribution database names.
string distributionDbName = "distribution";
string distributorName = publisherInstance;

ReplicationServer distributor;
DistributionDatabase distributionDb;

// Create a connection to the Distributor using Windows Authentication.
ServerConnection conn = new ServerConnection(distributorName);

try
{
    // Open the connection. 
    conn.Connect();

    distributor = new ReplicationServer(conn);

    // Load Distributor properties, if it is installed.
    if (distributor.LoadProperties())
    {
        // Password supplied at runtime.
        distributor.ChangeDistributorPassword(password);
        distributor.AgentCheckupInterval = 5;

        // Save changes to the Distributor properties.
        distributor.CommitPropertyChanges();
    }
    else
    {
        throw new ApplicationException(
            String.Format("{0} is not a Distributor.", publisherInstance));
    }

    // Create an object for the distribution database 
    // using the open Distributor connection.
    distributionDb = new DistributionDatabase(distributionDbName, conn);

    // Change distribution database properties.
    if (distributionDb.LoadProperties())
    {
        // Change maximum retention period to 48 hours and history retention 
        // period to 24 hours.
        distributionDb.MaxDistributionRetention = 48;
        distributionDb.HistoryRetention = 24;

        // Save changes to the distribution database properties.
        distributionDb.CommitPropertyChanges();
    }
    else
    {
        // Do something here if the distribution database does not exist.
    }
}
catch (Exception ex)
{
    // Implement the appropriate error handling here. 
    throw new ApplicationException("An error occurred when changing Distributor " +
        " or distribution database properties.", ex);
}
finally
{
    conn.Disconnect();
}
' Set the Distributor and distribution database names.
Dim distributionDbName As String = "distribution"
Dim distributorName As String = publisherInstance

Dim distributor As ReplicationServer
Dim distributionDb As DistributionDatabase

' Create a connection to the Distributor using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(distributorName)

Try
    ' Open the connection. 
    conn.Connect()

    distributor = New ReplicationServer(conn)

    ' Load Distributor properties, if it is installed.
    If distributor.LoadProperties() Then
        ' Password supplied at runtime.
        distributor.ChangeDistributorPassword(password)
        distributor.AgentCheckupInterval = 5

        ' Save changes to the Distributor properties.
        distributor.CommitPropertyChanges()
    Else
        Throw New ApplicationException( _
            String.Format("{0} is not a Distributor.", publisherInstance))
    End If

    ' Create an object for the distribution database 
    ' using the open Distributor connection.
    distributionDb = New DistributionDatabase(distributionDbName, conn)

    ' Change distribution database properties.
    If distributionDb.LoadProperties() Then
        ' Change maximum retention period to 48 hours and history retention 
        ' period to 24 hours.
        distributionDb.MaxDistributionRetention = 48
        distributionDb.HistoryRetention = 24

        ' Save changes to the distribution database properties.
        distributionDb.CommitPropertyChanges()
    Else
        ' Do something here if the distribution database does not exist.
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here. 
    Throw New ApplicationException("An error occurred when changing Distributor " + _
        " or distribution database properties.", ex)
Finally
    conn.Disconnect()
End Try

Lihat Juga

Konsep Objek Manajemen Replikasi
Menonaktifkan Penerbitan dan Distribusi
Mengonfigurasi Distribusi
Konsep Objek Manajemen Replikasi
Skrip Informasi Distributor dan Penerbit
Konsep Prosedur Tersimpan Sistem Replikasi
Menampilkan Informasi dan Melakukan Tugas untuk Penerbit (Pemantau Replikasi)