Memvalidasi Data yang Direplikasi

Berlaku untuk:SQL ServerAzure SQL Database

Topik ini menjelaskan cara memvalidasi data di Pelanggan di SQL Server dengan menggunakan SQL Server Management Studio, Transact-SQL, atau Objek Manajemen Replikasi (RMO).

Replikasi transaksional dan penggabungan memungkinkan Anda memvalidasi data tersebut di Pelanggan yang cocok dengan data di Publisher. Validasi dapat dilakukan untuk langganan tertentu atau untuk semua langganan ke publikasi. Tentukan salah satu jenis validasi berikut dan Agen Distribusi atau Agen Penggabungan akan memvalidasi data saat berikutnya dijalankan:

  • Jumlah baris saja. Ini memvalidasi apakah tabel di Pelanggan memiliki jumlah baris yang sama dengan tabel di Publisher, tetapi tidak memvalidasi bahwa konten baris cocok. Validasi jumlah baris menyediakan pendekatan ringan untuk validasi yang dapat membuat Anda mengetahui masalah dengan data Anda.
  • Jumlah baris dan checksum biner. Selain mengambil hitungan baris di Penerbit dan Pelanggan, checksum semua data dihitung menggunakan algoritma checksum. Jika jumlah baris gagal, checksum tidak dilakukan.

Selain memvalidasi data tersebut di kecocokan Pelanggan dan Penerbit, replikasi penggabungan menyediakan kemampuan untuk memvalidasi bahwa data dipartisi dengan benar untuk setiap Pelanggan. Untuk informasi selengkapnya, lihat Memvalidasi Informasi Partisi untuk Pelanggan Penggabungan.

Catatan

Azure SQL Managed Instance dapat menjadi penerbit, distributor, dan pelanggan untuk rekam jepret dan replikasi transaksional. Database di Azure SQL Database hanya dapat menjadi pelanggan pendorongan untuk rekam jepret dan replikasi transaksional. Untuk informasi selengkapnya, lihat Replikasi transaksional dengan Azure SQL Database dan Azure SQL Managed Instance.

Cara Kerja Validasi Data

SQL Server memvalidasi data dengan menghitung jumlah baris atau checksum di Publisher lalu membandingkan nilai tersebut dengan jumlah baris atau checksum yang dihitung pada Pelanggan. Satu nilai dihitung untuk seluruh tabel publikasi dan satu nilai dihitung untuk seluruh tabel langganan, tetapi data dalam kolom teks, ntext, atau gambar tidak disertakan dalam perhitungan.

Saat perhitungan dilakukan, kunci bersama ditempatkan sementara pada tabel yang jumlah baris atau checksumnya dijalankan, tetapi perhitungan selesai dengan cepat dan kunci bersama dihapus, biasanya dalam hitungan detik.

Ketika checksum biner digunakan, pemeriksaan redundansi 32-bit (CRC) terjadi berdasarkan kolom demi kolom daripada CRC pada baris fisik di halaman data. Ini memungkinkan kolom dengan tabel berada dalam urutan apa pun secara fisik di halaman data, tetapi masih menghitung ke CRC yang sama untuk baris tersebut. Validasi checksum biner dapat digunakan ketika ada filter baris atau kolom pada publikasi.

Memvalidasi data adalah proses tiga bagian:

  1. Satu langganan atau semua langganan ke publikasi ditandai untuk validasi. Tandai langganan untuk validasi dalam kotak dialog Validasi Langganan, Validasi Langganan, dan Validasi Semua Langganan , yang tersedia dari folder Publikasi Lokal dan folder Langganan Lokal di Microsoft SQL Server Management Studio. Anda juga dapat menandai langganan dari tab Semua Langganan , tab Daftar Pengawasan Langganan, dan simpul publikasi di Monitor Replikasi. Untuk informasi tentang memulai Monitor Replikasi, lihat Memulai Monitor Replikasi.

  2. Langganan divalidasi saat berikutnya disinkronkan oleh Agen Distribusi (untuk replikasi transaksional) atau Agen Penggabungan (untuk replikasi penggabungan). Agen Distribusi biasanya berjalan terus menerus, dalam hal ini validasi terjadi segera; Agen Penggabungan biasanya berjalan sesuai permintaan, dalam hal ini validasi terjadi setelah Anda menjalankan agen.

  3. Lihat hasil validasi:

    • Di jendela detail di Monitor Replikasi: pada tab Distributor ke Riwayat Pelanggan untuk replikasi transaksional dan tab Riwayat Sinkronisasi untuk replikasi penggabungan.
    • Dalam kotak dialog Tampilkan Status Sinkronisasi di Management Studio.

Pertimbangan dan pembatasan

Pertimbangkan masalah berikut saat memvalidasi data:

  • Anda harus menghentikan semua aktivitas pembaruan di Pelanggan sebelum memvalidasi data (tidak perlu menghentikan aktivitas di Penerbit saat validasi terjadi).
  • Karena checksum dan checksum biner dapat memerlukan sejumlah besar sumber daya prosesor saat memvalidasi himpunan data besar, Anda harus menjadwalkan validasi untuk terjadi ketika ada aktivitas paling sedikit pada server yang digunakan dalam replikasi.
  • Replikasi hanya memvalidasi tabel; ini tidak memvalidasi apakah hanya skema artikel (seperti prosedur tersimpan) yang sama di Penerbit dan Pelanggan.
  • Checksum biner dapat digunakan dengan tabel yang diterbitkan. Checksum tidak dapat memvalidasi tabel dengan filter kolom, atau struktur tabel logis di mana offset kolom berbeda (karena pernyataan ALTER TABLE yang menghilangkan atau menambahkan kolom).
  • Validasi replikasi menggunakan fungsi checksum dan binary_checksum . Untuk informasi tentang perilaku mereka, lihat CHECKSUM (Transact-SQL) dan BINARY_CHECKSUM (Transact-SQL).
  • Validasi dengan menggunakan checksum atau checksum biner dapat salah melaporkan kegagalan jika jenis data berbeda di Pelanggan daripada yang ada di Penerbit. Ini dapat terjadi jika Anda melakukan salah satu hal berikut:
    • Secara eksplisit mengatur opsi skema untuk memetakan jenis data untuk versi SQL Server yang lebih lama.
    • Atur tingkat kompatibilitas publikasi untuk publikasi gabungan ke versi SQL Server yang lebih lama, dan tabel yang diterbitkan berisi satu atau beberapa jenis data yang harus dipetakan untuk versi ini.
    • Menginisialisasi langganan secara manual dan menggunakan jenis data yang berbeda di Pelanggan.
  • Validasi checksum dan checksum biner tidak didukung untuk langganan yang dapat diubah untuk replikasi transaksional.
  • Validasi tidak didukung untuk data yang direplikasi ke Pelanggan non-SQL Server.
  • Prosedur untuk Monitor Replikasi hanya untuk langganan push karena langganan penarikan tidak dapat disinkronkan di Monitor Replikasi. Namun, Anda dapat menandai langganan untuk validasi dan melihat hasil validasi untuk langganan penarikan di Monitor Replikasi.
  • Hasil validasi menunjukkan apakah validasi berhasil atau gagal, tetapi jangan tentukan validasi baris mana yang gagal jika terjadi kegagalan. Untuk membandingkan data di Penerbit dan Pelanggan, gunakan Utilitas tablediff. Untuk informasi selengkapnya tentang menggunakan utilitas ini dengan data yang direplikasi, lihat Membandingkan Tabel yang Direplikasi untuk Perbedaan (Pemrograman Replikasi).

Hasil Validasi Data

Ketika validasi selesai, Agen Distribusi atau Agen Penggabungan mencatat pesan mengenai keberhasilan atau kegagalan (replikasi tidak melaporkan baris mana yang gagal). Pesan ini dapat dilihat di SQL Server Management Studio, Replication Monitor, dan tabel sistem replikasi. Topik cara kerja yang tercantum di atas menunjukkan cara menjalankan validasi dan melihat hasilnya.

Untuk menangani kegagalan validasi, pertimbangkan hal berikut:

Artikel dalam Replikasi Transaksional

Menggunakan SQL Server Management Studio

  1. Koneksi ke Publisher di SQL Server Management Studio, lalu perluas simpul server.
  2. Perluas folder Replikasi, lalu perluas folder Publikasi Lokal.
  3. Klik kanan publikasi yang ingin Anda validasi langganannya, lalu klik Validasi Langganan.
  4. Dalam kotak dialog Validasi Langganan , pilih langganan mana yang akan divalidasi:
    • Pilih Validasi semua langganan SQL Server.
    • Pilih Validasi langganan berikut, lalu pilih satu atau beberapa langganan.
  5. Untuk menentukan jenis validasi yang akan dilakukan (jumlah baris, atau jumlah baris dan checksum) klik Opsi Validasi, lalu tentukan opsi dalam kotak dialog Opsi Validasi Langganan.
  6. Pilih OK.
  7. Lihat hasil validasi dalam Monitor Replikasi atau kotak dialog Tampilkan Status Sinkronisasi. Untuk setiap langganan:
    1. Perluas publikasi, klik kanan langganan, lalu klik Tampilkan Status Sinkronisasi.
    2. Jika agen tidak berjalan, klik Mulai di kotak dialog Tampilkan Status Sinkronisasi. Kotak dialog akan menampilkan pesan informasi mengenai validasi.
      Jika Anda tidak melihat pesan apa pun mengenai validasi, agen telah mencatat pesan berikutnya. Dalam hal ini, lihat hasil validasi di Monitor Replikasi. Untuk informasi selengkapnya, lihat Prosedur cara memantau replikasi dalam topik ini.

Menggunakan T-SQL

Semua artikel

  1. Di Publisher pada database publikasi, jalankan sp_publication_validation (Transact-SQL). Tentukan @publication dan salah satu nilai berikut untuk @rowcount_only:

    • 1 - pemeriksaan rowcount saja (default)
    • 2 - rowcount dan checksum biner.

    Catatan

    Saat Anda menjalankan sp_publication_validation (Transact-SQL), sp_article_validation (Transact-SQL) dijalankan untuk setiap artikel dalam publikasi. Agar berhasil menjalankan sp_publication_validation (Transact-SQL), Anda harus memiliki izin SELECT pada semua kolom dalam tabel dasar yang diterbitkan.

  2. (Opsional) Mulai Agen Distribusi untuk setiap langganan jika belum berjalan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push.

  3. Periksa output agen untuk hasil validasi.

Artikel tunggal

  1. Di Publisher pada database publikasi, jalankan sp_article_validation (Transact-SQL). Tentukan @publication, nama artikel untuk @article, dan salah satu nilai berikut untuk @rowcount_only:

    • 1 - Pemeriksaan rowcount saja (defaultnya)
    • 2 - Rowcount dan checksum biner.

    Catatan

    Agar berhasil menjalankan sp_article_validation (Transact-SQL), Anda harus memiliki izin SELECT pada semua kolom dalam tabel dasar yang diterbitkan.

  2. (Opsional) Mulai Agen Distribusi untuk setiap langganan jika belum berjalan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push.

  3. Periksa output agen untuk hasil validasi.

Pelanggan tunggal

  1. Di Penerbit pada database publikasi, buka transaksi eksplisit menggunakan BEGIN TRANSACTION (Transact-SQL).

  2. Di Publisher pada database publikasi, jalankan sp_marksubscriptionvalidation (Transact-SQL). Tentukan publikasi untuk @publication, nama Pelanggan untuk @subscriber, dan nama database langganan untuk @destination_db.

  3. (Opsional) Ulangi langkah 2 untuk setiap langganan yang sedang divalidasi.

  4. Di Publisher pada database publikasi, jalankan sp_article_validation (Transact-SQL). Tentukan @publication, nama artikel untuk @article, dan salah satu nilai berikut untuk @rowcount_only:

    • 1 - Pemeriksaan rowcount saja (defaultnya)
    • 2 - Rowcount dan checksum biner.

    Catatan

    Agar berhasil menjalankan sp_article_validation (Transact-SQL), Anda harus memiliki izin SELECT pada semua kolom dalam tabel dasar yang diterbitkan.

  5. Di Penerbit pada database publikasi, lakukan transaksi menggunakan COMMIT TRANSACTION (Transact-SQL).

  6. (Opsional) Ulangi langkah 1 hingga 5 untuk setiap artikel yang divalidasi.

  7. (Opsional) Mulai Agen Distribusi jika belum berjalan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push.

  8. Periksa output agen untuk hasil validasi. Untuk informasi selengkapnya, lihat Memvalidasi Data di Pelanggan.

Semua langganan pendorongan ke publikasi transaksi

Menggunakan Monitor Replikasi

  1. Di Monitor Replikasi, perluas grup Publisher di panel kiri, lalu perluas Publisher.

  2. Klik kanan publikasi yang ingin Anda validasi langganannya, lalu klik Validasi Langganan.

  3. Dalam kotak dialog Validasi Langganan , pilih langganan mana yang akan divalidasi:

    • Pilih Validasi semua langganan SQL Server.
    • Pilih Validasi langganan berikut, lalu pilih satu atau beberapa langganan.
  4. Untuk menentukan jenis validasi yang akan dilakukan (jumlah baris, atau jumlah baris dan checksum) klik Opsi Validasi, lalu tentukan opsi dalam kotak dialog Opsi Validasi Langganan.

  5. Pilih OK.

  6. Klik tab Semua Langganan .

  7. Lihat hasil validasi. Untuk setiap langganan push:

    1. Jika agen tidak berjalan, klik kanan langganan, lalu klik Mulai Sinkronisasi.
    2. Klik kanan langganan, lalu klik Tampilkan Detail.
    3. Lihat informasi pada tab Riwayat Distributor ke Pelanggan di tindakan di area teks sesi yang dipilih.

Untuk satu langganan ke Publikasi Penggabungan

Menggunakan SQL Server Management Studio

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

  2. Perluas folder Replikasi, lalu perluas folder Publikasi Lokal.

  3. Perluas publikasi yang ingin Anda validasi langganannya, klik kanan langganan, lalu klik Validasi Langganan.

  4. Dalam kotak dialog Validasi Langganan , pilih Validasi langganan ini.

  5. Untuk menentukan jenis validasi yang akan dilakukan (jumlah baris, atau jumlah baris dan checksum) klik Opsi, lalu tentukan opsi dalam kotak dialog Opsi Validasi Langganan.

  6. Pilih OK.

  7. Lihat hasil validasi dalam Monitor Replikasi atau kotak dialog Tampilkan Status Sinkronisasi:

    1. Perluas publikasi, klik kanan langganan, lalu klik Tampilkan Status Sinkronisasi.
    2. Jika agen tidak berjalan, klik Mulai dalam kotak dialog Tampilkan Status Sinkronisasi. Kotak dialog akan menampilkan pesan informasi mengenai validasi.

    Jika Anda tidak melihat pesan apa pun mengenai validasi, agen telah mencatat pesan berikutnya. Dalam hal ini, lihat hasil validasi di Monitor Replikasi. Untuk informasi selengkapnya, lihat Prosedur cara memantau replikasi dalam topik ini.

Untuk semua langganan ke Publikasi Penggabungan

Menggunakan SQL Server Management Studio

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

  2. Perluas folder Replikasi, lalu perluas folder Publikasi Lokal.

  3. Klik kanan publikasi yang ingin Anda validasi langganannya, lalu klik Validasi Semua Langganan.

  4. Dalam kotak dialog Validasi Semua Langganan , tentukan jenis validasi yang akan dilakukan (jumlah baris, atau jumlah baris dan checksum).

  5. Pilih OK.

  6. Lihat hasil validasi dalam Monitor Replikasi atau kotak dialog Tampilkan Status Sinkronisasi. Untuk setiap langganan:

    1. Perluas publikasi, klik kanan langganan, lalu klik Tampilkan Status Sinkronisasi.
    2. Jika agen tidak berjalan, klik Mulai dalam kotak dialog Tampilkan Status Sinkronisasi. Kotak dialog akan menampilkan pesan informasi mengenai validasi.

    Jika Anda tidak melihat pesan apa pun mengenai validasi, agen telah mencatat pesan berikutnya. Dalam hal ini, lihat hasil validasi di Monitor Replikasi. Untuk informasi selengkapnya, lihat Prosedur cara memantau replikasi dalam topik ini.

Untuk satu langganan pendorongan ke Publikasi Penggabungan

Menggunakan Monitor Replikasi

  1. Di Monitor Replikasi, perluas grup Publisher di panel kiri, perluas Publisher, lalu klik publikasi.
  2. Klik tab Semua Langganan .
  3. Klik kanan langganan yang ingin Anda validasi, lalu klik Validasi Langganan.
  4. Dalam kotak dialog Validasi Langganan , pilih Validasi langganan ini.
  5. Untuk menentukan jenis validasi yang akan dilakukan (jumlah baris, atau jumlah baris dan checksum) klik Opsi, lalu tentukan opsi dalam kotak dialog Opsi Validasi Langganan.
  6. Pilih OK.
  7. Klik tab Semua Langganan .
  8. Lihat hasil validasi:
    1. Jika agen tidak berjalan, klik kanan langganan, lalu klik Mulai Sinkronisasi.
    2. Klik kanan langganan, lalu klik Tampilkan Detail.
    3. Lihat informasi pada tab Riwayat Sinkronisasi di pesan Terakhir dari area teks sesi yang dipilih.

Menggunakan T-SQL

  1. Di Publisher pada database publikasi, jalankan sp_validatemergesubscription (Transact-SQL). Tentukan @publication, nama Pelanggan untuk @subscriber, nama database langganan untuk @subscriber_db, dan salah satu nilai berikut untuk @level:

    • 1 - Validasi khusus Rowcount.
    • 3 - Validasi checksum biner Rowcount.

    Ini menandai langganan yang dipilih untuk validasi.

  2. Mulai agen penggabungan untuk setiap langganan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push.

  3. Periksa output agen untuk hasil validasi.

  4. Ulangi langkah 1 hingga 3 untuk setiap langganan yang divalidasi.

Catatan

Langganan ke publikasi gabungan juga dapat divalidasi di akhir sinkronisasi dengan menentukan parameter -Validasi saat menjalankan Agen Penggabungan Replikasi.

Untuk semua langganan push ke Publikasi Penggabungan

Menggunakan Monitor Replikasi

  1. Di Monitor Replikasi, perluas grup Publisher di panel kiri, lalu perluas Publisher.
  2. Klik kanan publikasi yang ingin Anda validasi langganannya, lalu klik Validasi Semua Langganan.
  3. Dalam kotak dialog Validasi Semua Langganan , tentukan jenis validasi yang akan dilakukan (jumlah baris, atau jumlah baris dan checksum).
  4. Pilih OK.
  5. Klik tab Semua Langganan .
  6. Lihat hasil validasi. Untuk setiap langganan push:
    1. Jika agen tidak berjalan, klik kanan langganan, lalu klik Mulai Sinkronisasi.
    2. Klik kanan langganan, lalu klik Tampilkan Detail.
    3. Lihat informasi pada tab Riwayat Sinkronisasi di pesan Terakhir dari area teks sesi yang dipilih.

Menggunakan T-SQL

  1. Di Publisher pada database publikasi, jalankan sp_validatemergepublication (Transact-SQL). Tentukan @publication dan salah satu nilai berikut untuk @level:

    • 1 - Validasi khusus Rowcount.
    • 3 - Validasi checksum biner Rowcount.

    Ini menandai semua langganan untuk validasi.

  2. Mulai agen penggabungan untuk setiap langganan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push.

  3. Periksa output agen untuk hasil validasi. Untuk informasi selengkapnya, lihat Memvalidasi Data di Pelanggan.

Memvalidasi data menggunakan parameter Merge Agent

  1. Mulai Agen Penggabungan di Pelanggan (langganan penarikan) atau di Distributor (langganan push) dari prompt perintah dengan salah satu cara berikut.

    • Menentukan nilai 1 (rowcount) atau 3 (rowcount dan biner checksum) untuk parameter -Validasi .
    • Menentukan validasi rowcount atau rowcount dan validasi checksum untuk parameter -ProfileName .

    Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull atau Menyinkronkan Langganan Push.

Menggunakan Objek Manajemen Replikasi (RMO)

Replikasi memungkinkan Anda menggunakan Objek Manajemen Replikasi (RMO) untuk memvalidasi data tersebut secara terprogram di Pelanggan yang cocok dengan data di Publisher. Objek yang Anda gunakan bergantung pada jenis topologi replikasi. Replikasi transaksional memerlukan validasi semua langganan ke publikasi.

Catatan

Misalnya, lihat Contoh (RMO), nanti di bagian ini.

Memvalidasi data untuk semua artikel dalam publikasi transaksional

  1. Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .

  2. Membuat instans kelas TransPublication. Atur Name properti dan DatabaseName untuk publikasi. Atur ConnectionContext properti ke koneksi yang dibuat di langkah 1.

  3. LoadProperties Panggil metode untuk mendapatkan properti objek yang tersisa. Jika metode ini mengembalikan false, properti publikasi di langkah 2 didefinisikan dengan tidak benar atau publikasi tidak ada.

  4. Panggil ValidatePublication metode. Teruskan hal berikut:

    Ini menandai artikel untuk validasi.

  5. Jika belum berjalan, mulai Agen Distribusi untuk menyinkronkan setiap langganan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Push atau Menyinkronkan Langganan Pull. Hasil operasi validasi ditulis ke riwayat agen. Untuk informasi selengkapnya, lihat Memantau Replikasi.

Untuk memvalidasi data di semua langganan ke publikasi gabungan

  1. Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .

  2. Membuat instans kelas MergePublication. Atur Name properti dan DatabaseName untuk publikasi. Atur ConnectionContext properti ke koneksi yang dibuat di langkah 1.

  3. LoadProperties Panggil metode untuk mendapatkan properti objek yang tersisa. Jika metode ini mengembalikan false, properti publikasi di langkah 2 didefinisikan dengan tidak benar atau publikasi tidak ada.

  4. Panggil ValidatePublication metode. Berikan yang diinginkan ValidationOption.

  5. Jalankan Agen Penggabungan untuk setiap langganan untuk memulai validasi, atau tunggu hingga agen terjadwal berikutnya berjalan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push. Hasil operasi validasi ditulis ke riwayat agen, yang Anda lihat dengan menggunakan Monitor Replikasi. Untuk informasi selengkapnya, lihat Memantau Replikasi.

Untuk memvalidasi data dalam satu langganan ke publikasi gabungan

  1. Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .

  2. Membuat instans kelas MergePublication. Atur Name properti dan DatabaseName untuk publikasi. Atur ConnectionContext properti ke koneksi yang dibuat di langkah 1.

  3. LoadProperties Panggil metode untuk mendapatkan properti objek yang tersisa. Jika metode ini mengembalikan false, properti publikasi di langkah 2 didefinisikan dengan tidak benar atau publikasi tidak ada.

  4. Panggil ValidateSubscription metode. Berikan nama pelanggan dan database langganan yang sedang divalidasi dan yang diinginkan ValidationOption.

  5. Jalankan Agen Penggabungan agar langganan memulai validasi, atau tunggu hingga agen terjadwal berikutnya berjalan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push. Hasil operasi validasi ditulis ke riwayat agen, yang Anda lihat dengan menggunakan Monitor Replikasi. Untuk informasi selengkapnya, lihat Memantau Replikasi.

Contoh (RMO)

Contoh ini menandai semua langganan ke publikasi transaksi untuk validasi rowcount.

// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2022";

TransPublication publication;

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Set the required properties for the publication.
    publication = new TransPublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;

    // If we can't get the properties for this publication, 
    // throw an application exception.
    if (publication.LoadProperties())
    {
        // Initiate validataion for all subscriptions to this publication.
        publication.ValidatePublication(ValidationOption.RowCountOnly,
            ValidationMethod.ConditionalFast, false);

        // If not already running, start the Distribution Agent at each 
        // Subscriber to synchronize and validate the subscriptions.
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Settings could not be retrieved for the publication. " +
            "Ensure that the publication {0} exists on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Do error handling here.
    throw new ApplicationException(
        "Subscription validation could not be initiated.", ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2022"

Dim publication As TransPublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this publication, 
    ' throw an application exception.
    If publication.LoadProperties() Then

        ' Initiate validataion for all subscriptions to this publication.
        publication.ValidatePublication(ValidationOption.RowCountOnly, _
         ValidationMethod.ConditionalFast, False)

        ' If not already running, start the Distribution Agent at each 
        ' Subscriber to synchronize and validate the subscriptions.
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException( _
     "Subscription validation could not be initiated.", ex)
Finally
    conn.Disconnect()
End Try

Contoh ini menandai langganan tertentu ke publikasi gabungan untuk validasi rowcount.

// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2022";
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2022Replica";

MergePublication publication;

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Set the required properties for the publication.
    publication = new MergePublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;


    // If we can't get the properties for this merge publication, then throw an application exception.
    if (publication.LoadProperties())
    {
        // Initiate validation of the specified subscription.
        publication.ValidateSubscription(subscriberName,
            subscriptionDbName, ValidationOption.RowCountOnly);
        
        // Start the Merge Agent to synchronize and validate the subscription.
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Settings could not be retrieved for the publication. " +
            "Ensure that the publication {0} exists on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Do error handling here.
    throw new ApplicationException(String.Format(
        "The subscription at {0} to the {1} publication could not " +
        "be validated.", subscriberName, publicationName), ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2022"
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2022Replica"

Dim publication As MergePublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the publication.
    publication = New MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this merge publication, then throw an application exception.
    If publication.LoadProperties() Then
        ' Initiate validation of the specified subscription.
        publication.ValidateSubscription(subscriberName, _
         subscriptionDbName, ValidationOption.RowCountOnly)

        ' Start the Merge Agent to synchronize and validate the subscription.
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException(String.Format( _
     "The subscription at {0} to the {1} publication could not " + _
     "be validated.", subscriberName, publicationName), ex)
Finally
    conn.Disconnect()
End Try

Lihat Juga

Praktik Terbaik untuk Administrasi Replikasi