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
Azure 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 replikasi gabungan memungkinkan Anda memvalidasi bahwa data pada Subscriber cocok dengan data pada 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 menghitung jumlah baris pada Publisher dan Subscriber, checksum untuk seluruh data dihitung menggunakan algoritme checksum. Jika penghitungan jumlah baris gagal, checksum tidak dilakukan.
Selain memvalidasi bahwa data pada Subscriber dan Publisher cocok, replikasi penggabungan juga memungkinkan validasi bahwa data dipartisikan dengan benar untuk setiap Subscriber. 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 push untuk replikasi rekam jepret dan 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 sedang dihitung jumlah barisnya atau checksumnya, tetapi perhitungan tersebut selesai dengan cepat dan kunci bersama itu segera dilepas, 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-kolom dalam tabel berada dalam urutan fisik apa pun pada halaman data, tetapi tetap menghasilkan 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:
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.
Langganan akan divalidasi pada saat berikutnya disinkronkan oleh Agen Distribusi (untuk replikasi transaksional) atau Agen Merge (untuk replikasi gabungan). 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.
Lihat hasil validasi:
- Dalam jendela detail di Replication Monitor: pada tab Riwayat Distributor ke Subscriber untuk replikasi transaksional dan tab Riwayat Sinkronisasi untuk replikasi penggabungan.
- Dalam kotak dialog Lihat 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; replikasi tidak memvalidasi apakah artikel khusus skema (seperti stored procedure) sama di Publisher dan Subscriber.
- Checksum biner dapat digunakan pada tabel apa pun yang dipublikasikan. Checksum tidak dapat memvalidasi tabel dengan filter kolom, atau struktur tabel logis di mana offset kolom berbeda (karena ALTER TABLE pernyataan 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 yang menggunakan checksum biner atau checksum dapat keliru melaporkan kegagalan jika jenis data berbeda pada Subscriber dibandingkan dengan Publisher. 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 pada subscriber.
- 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 Replication Monitor hanya berlaku untuk langganan push karena langganan pull tidak dapat disinkronkan di Replication Monitor. 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 pada Publisher dan Subscriber, 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:
Konfigurasikan pemberitahuan replikasi bernama Replikasi: Pelanggan telah gagal memvalidasi data sehingga Anda diberi tahu tentang kegagalan tersebut. Untuk informasi selengkapnya, lihat Mengonfigurasi Pemberitahuan Replikasi yang Telah Ditentukan Sebelumnya (SQL Server Management Studio).
Apakah validasi gagal menjadi masalah untuk aplikasi Anda? Jika kegagalan validasi adalah masalah, perbarui data secara manual sehingga disinkronkan, atau masukkan kembali langganan:
Data dapat diperbarui menggunakan utilitas tablediff. Untuk informasi selengkapnya tentang menggunakan utilitas ini, lihat Membandingkan Tabel yang Direplikasi untuk Perbedaan (Pemrograman Replikasi).
Untuk informasi selengkapnya tentang reinitialisasi, lihat Menginisialisasi Ulang Langganan.
Artikel dalam Replikasi Transaksional
Menggunakan SQL Server Management Studio
- Sambungkan ke Publisher di SQL Server Management Studio, lalu perluas simpul server.
- Perluas folder Replikasi, lalu perluas folder Publikasi Lokal.
- Klik kanan publikasi yang ingin Anda validasi langganannya, lalu klik Validasi Langganan.
- 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.
- 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.
- Pilih OK.
- Lihat hasil validasi dalam Monitor Replikasi atau kotak dialog Tampilkan Status Sinkronisasi. Untuk setiap langganan:
- Perluas publikasi, klik kanan langganan, lalu klik Tampilkan Status Sinkronisasi.
- Jika agen tidak sedang 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
Di Publisher pada database publikasi, jalankan sp_publication_validation (Transact-SQL). Tentukan
@publicationdan salah satu nilai berikut untuk@rowcount_only:- 1 - hanya memeriksa jumlah baris (bawaan)
- 2 - jumlah baris 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.
(Opsional) Jalankan Agen Distribusi untuk setiap langganan jika belum berjalan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push.
Periksa output agen untuk hasil validasi.
Artikel tunggal
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 jumlah baris saja (bawaan)
- 2 - Jumlah baris 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.
(Opsional) Jalankan Agen Distribusi untuk setiap langganan jika belum berjalan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push.
Periksa output agen untuk hasil validasi.
Satu pelanggan
Di Penerbit pada database publikasi, buka transaksi eksplisit menggunakan BEGIN TRANSACTION (Transact-SQL).
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.(Opsional) Ulangi langkah 2 untuk setiap langganan yang sedang divalidasi.
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 jumlah baris saja (opsi bawaan)
- 2 - Jumlah baris 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.
Di Penerbit pada database publikasi, lakukan transaksi menggunakan COMMIT TRANSACTION (Transact-SQL).
(Opsional) Ulangi langkah 1 hingga 5 untuk setiap artikel yang divalidasi.
(Opsional) Mulai Agen Distribusi jika belum berjalan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push.
Periksa output agen untuk hasil validasi. Untuk informasi selengkapnya, lihat Memvalidasi Data pada Pelanggan.
Semua langganan push ke publikasi transaksional
Menggunakan Monitor Replikasi
Di Monitor Replikasi, perluas grup Publisher di panel kiri, lalu perluas Publisher.
Klik kanan publikasi yang ingin Anda validasi langganannya, lalu klik Validasi Langganan.
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.
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.
Pilih OK.
Klik tab Semua Langganan .
Lihat hasil validasi. Untuk setiap langganan notifikasi push:
- Jika agen tidak berjalan, klik kanan pada langganan, lalu klik Mulai Sinkronisasi.
- Klik kanan langganan, lalu klik Tampilkan Detail.
- Lihat informasi pada tab Riwayat Distributor ke Pelanggan di area teks Tindakan dalam sesi yang dipilih.
Untuk satu langganan ke Publikasi Gabungan
Menggunakan SQL Server Management Studio
Sambungkan ke Publisher di SQL Server Management Studio, lalu perluas simpul server.
Perluas folder Replikasi, lalu perluas folder Publikasi Lokal.
Perluas publikasi yang ingin Anda validasi langganannya, klik kanan langganan, lalu klik Validasi Langganan.
Dalam kotak dialog Validasi Langganan , pilih Validasi langganan ini.
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.
Pilih OK.
Lihat hasil validasi dalam Monitor Replikasi atau kotak dialog Tampilkan Status Sinkronisasi:
- Perluas publikasi, klik kanan langganan, lalu klik Tampilkan Status Sinkronisasi.
- Jika agen tidak berjalan, klik Mulai di kotak dialog Lihat 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 atas Merge Publication
Menggunakan SQL Server Management Studio
Sambungkan ke Publisher di SQL Server Management Studio, lalu perluas simpul server.
Perluas folder Replikasi, lalu perluas folder Publikasi Lokal.
Klik kanan publikasi yang ingin Anda validasi langganannya, lalu klik Validasi Semua Langganan.
Dalam kotak dialog Validasi Semua Langganan , tentukan jenis validasi yang akan dilakukan (jumlah baris, atau jumlah baris dan checksum).
Pilih OK.
Lihat hasil validasi dalam Monitor Replikasi atau kotak dialog Tampilkan Status Sinkronisasi. Untuk setiap langganan:
- Perluas publikasi, klik kanan langganan, lalu klik Tampilkan Status Sinkronisasi.
- Jika agen tidak berjalan, klik Mulai di kotak dialog Lihat 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 push ke publikasi gabungan
Menggunakan Pemantau Replikasi
- Di Monitor Replikasi, perluas grup Publisher di panel kiri, perluas Publisher, lalu klik publikasi.
- Klik tab Semua Langganan .
- Klik kanan langganan yang ingin Anda validasi, lalu klik Validasi Langganan.
- Dalam kotak dialog Validasi Langganan , pilih Validasi langganan ini.
- 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.
- Pilih OK.
- Klik tab Semua Langganan .
- Lihat hasil validasi:
- Jika agen tidak berjalan, klik kanan pada langganan, lalu klik Mulai Sinkronisasi.
- Klik kanan langganan, lalu klik Tampilkan Detail.
- Lihat informasi di tab Riwayat Sinkronisasi dalam area teks Pesan terakhir dari sesi yang dipilih.
Menggunakan T-SQL
Pada Publisher, di 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 hanya berdasarkan jumlah baris.
- 3 - Validasi checksum biner jumlah baris.
Ini menandai langganan yang dipilih untuk validasi.
Mulai agen penggabungan untuk setiap langganan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push.
Periksa output agen untuk hasil validasi.
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
- Di Monitor Replikasi, perluas grup Publisher di panel kiri, lalu perluas Publisher.
- Klik kanan publikasi yang ingin Anda validasi langganannya, lalu klik Validasi Semua Langganan.
- Dalam kotak dialog Validasi Semua Langganan , tentukan jenis validasi yang akan dilakukan (jumlah baris, atau jumlah baris dan checksum).
- Pilih OK.
- Klik tab Semua Langganan .
- Lihat hasil validasi. Untuk setiap langganan push:
- Jika agen tidak berjalan, klik kanan pada langganan, lalu klik Mulai Sinkronisasi.
- Klik kanan langganan, lalu klik Tampilkan Detail.
- Lihat informasi di tab Riwayat Sinkronisasi dalam area teks Pesan terakhir dari sesi yang dipilih.
Menggunakan T-SQL
Di Publisher pada database publikasi, jalankan sp_validatemergepublication (Transact-SQL). Tentukan
@publicationdan salah satu nilai berikut untuk@level:- 1 - Validasi hanya berdasarkan jumlah baris.
- 3 - Validasi checksum biner jumlah baris.
Ini menandai semua langganan untuk validasi.
Mulai agen penggabungan untuk setiap langganan. Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull dan Menyinkronkan Langganan Push.
Periksa output agen untuk hasil validasi. Untuk informasi selengkapnya, lihat Memvalidasi Data pada Pelanggan.
Memvalidasi data menggunakan parameter Merge Agent
Mulai Agen Merge di Subscriber (pull subscription) atau di Distributor (push subscription) dari command prompt dengan salah satu cara berikut.
- Menetapkan nilai sebesar 1 (rowcount) atau 3 (rowcount dan checksum biner) untuk parameter -Validate.
- Menentukan validasi rowcount atau validasi rowcount dan checksum untuk parameter -ProfileName.
Untuk informasi selengkapnya, lihat Menyinkronkan Langganan Pull atau Menyinkronkan Langganan Push.
Menggunakan Objek Manajemen Replikasi (RMO)
Replikasi memungkinkan Anda menggunakan Replication Management Objects (RMO) untuk memvalidasi secara terprogram bahwa data di Subscriber sesuai 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
Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .
Membuat instans kelas TransPublication. Atur properti Name dan DatabaseName untuk publikasi. Atur properti ConnectionContext ke koneksi yang dibuat pada langkah 1.
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.
Panggil metode ValidatePublication. Sampaikan berikut ini:
Boolean yang menunjukkan apakah akan menghentikan Agen Distribusi setelah validasi selesai.
Ini menandai artikel untuk validasi.
Jika belum berjalan, jalankan 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
Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .
Membuat instans kelas MergePublication. Atur properti Name dan DatabaseName untuk publikasi. Atur properti ConnectionContext ke koneksi yang dibuat di langkah 1.
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.
Panggil metode ValidatePublication. Teruskan nilai yang diinginkan ValidationOption.
Jalankan Merge Agent untuk setiap langganan guna memulai validasi, atau tunggu hingga eksekusi agen terjadwal berikutnya. 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
Buat koneksi ke Publisher dengan menggunakan ServerConnection kelas .
Membuat instans kelas MergePublication. Atur properti Name dan DatabaseName untuk publikasi. Atur properti ConnectionContext ke koneksi yang dibuat di langkah 1.
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.
Panggil metode ValidateSubscription. Berikan nama Subscriber dan database langganan yang sedang divalidasi, serta ValidationOption yang diinginkan.
Jalankan Agen Penggabungan untuk langganan tersebut guna memulai validasi, atau tunggu hingga eksekusi agen terjadwal berikutnya. 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 transaksional untuk validasi jumlah baris.
// 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 pada publikasi gabungan untuk validasi jumlah baris.
// 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