sp_changemergepublication (T-SQL)
Berlaku untuk: SQL Server
Mengubah properti publikasi gabungan. Prosedur tersimpan ini dijalankan di Publisher pada database publikasi.
Sintaks
sp_changemergepublication
[ @publication = ] N'publication'
[ , [ @property = ] N'property' ]
[ , [ @value = ] N'value' ]
[ , [ @force_invalidate_snapshot = ] force_invalidate_snapshot ]
[ , [ @force_reinit_subscription = ] force_reinit_subscription ]
[ ; ]
Argumen
[ @publication = ] N'publikasi'
Nama publikasi. @publication adalah sysname, tanpa default.
[ @property = ] N'property'
Properti yang akan diubah untuk publikasi yang diberikan. @property adalah sysname, dan bisa menjadi salah satu nilai yang tercantum dalam tabel berikut ini.
[ @value = ] N'value'
Nilai baru untuk properti yang ditentukan. @value adalah nvarchar(255), dengan default NULL
.
, dan bisa menjadi salah satu nilai yang tercantum dalam tabel berikut ini.
Tabel ini menjelaskan properti publikasi yang dapat diubah, dan menjelaskan batasan pada nilai untuk properti tersebut.
Properti | Nilai | Deskripsi |
---|---|---|
allow_anonymous |
true |
Langganan anonim diizinkan. |
false |
Langganan anonim tidak diizinkan. | |
allow_partition_realignment |
true |
Penghapusan dikirim ke Pelanggan untuk mencerminkan hasil perubahan partisi dengan menghapus data yang bukan lagi bagian dari partisi Pelanggan. Ini adalah perilaku default. |
false |
Data dari partisi lama dibiarkan di Pelanggan, di mana perubahan yang dilakukan pada data ini pada Penerbit tidak direplikasi ke Pelanggan ini. Sebagai gantinya, perubahan yang dilakukan pada Pelanggan mereplikasi ke Penerbit. Ini digunakan untuk menyimpan data dalam langganan dari partisi lama ketika data harus dapat diakses untuk tujuan historis. | |
allow_pull |
true |
Langganan penarikan diizinkan untuk publikasi yang diberikan. |
false |
Langganan penarikan tidak diizinkan untuk publikasi yang diberikan. | |
allow_push |
true |
Langganan push diizinkan untuk publikasi yang diberikan. |
false |
Langganan push tidak diizinkan untuk publikasi yang diberikan. | |
allow_subscriber_initiated_snapshot |
true |
Pelanggan dapat memulai proses rekam jepret. |
false |
Pelanggan tidak dapat memulai proses rekam jepret. | |
allow_subscription_copy |
true |
Anda dapat menyalin database langganan yang berlangganan publikasi ini. |
false |
Anda tidak dapat menyalin database langganan yang berlangganan publikasi ini. | |
allow_synctoalternate |
true |
Memungkinkan mitra sinkronisasi alternatif untuk disinkronkan dengan Publisher ini. |
false |
Tidak mengizinkan mitra sinkronisasi alternatif untuk disinkronkan dengan Publisher ini. | |
allow_web_synchronization |
true |
Langganan dapat disinkronkan melalui HTTPS. |
false |
Langganan tidak dapat disinkronkan melalui HTTPS. | |
alt_snapshot_folder |
Menentukan lokasi folder alternatif untuk rekam jepret. | |
automatic_reinitialization_policy |
1 |
Perubahan diunggah dari Pelanggan sebelum langganan diinisialisasi ulang. |
0 |
Langganan diinisialisasi ulang tanpa terlebih dahulu mengunggah perubahan. | |
centralized_conflicts |
true |
Semua rekaman konflik disimpan di Publisher. Jika Anda mengubah properti ini, Pelanggan yang ada harus diinisialisasi ulang. |
false |
Rekaman konflik disimpan di server yang hilang dalam resolusi konflik. Jika Anda mengubah properti ini, Pelanggan yang ada harus diinisialisasi ulang. | |
compress_snapshot |
true |
Rekam jepret dalam folder rekam jepret alternatif dikompresi ke dalam format CAB. Rekam jepret di folder rekam jepret default tidak dapat dikompresi. Mengubah properti ini memerlukan rekam jepret baru. |
false |
Secara default, rekam jepret tidak dikompresi. Mengubah properti ini memerlukan rekam jepret baru. | |
conflict_logging |
publisher |
Rekaman konflik disimpan di Publisher. |
subscriber |
Rekaman konflik disimpan di Pelanggan yang menyebabkan konflik. Tidak didukung untuk Pelanggan Ringkas SQL Server. | |
both |
Rekaman konflik disimpan di Penerbit dan Pelanggan. | |
conflict_retention |
Int yang menentukan periode retensi, dalam hari, yang konfliknya dipertahankan. Pengaturan conflict_retention ke 0 berarti tidak diperlukan pembersihan konflik. |
|
description |
Deskripsi publikasi. | |
dynamic_filters |
true |
Publikasi difilter berdasarkan klausa dinamis. |
false |
Publikasi tidak difilter secara dinamis. | |
enabled_for_internet |
true |
Publikasi diaktifkan untuk Internet. Protokol Transfer File (FTP) dapat digunakan untuk mentransfer file rekam jepret ke Pelanggan. File sinkronisasi untuk publikasi dimasukkan ke C:\Program Files\Microsoft SQL Server\MSSQL\Repldata\ftp dalam direktori. |
false |
Publikasi tidak diaktifkan untuk Internet. | |
ftp_address |
Alamat jaringan layanan FTP untuk Distributor. Menentukan tempat file rekam jepret publikasi disimpan. | |
ftp_login |
Nama pengguna yang digunakan untuk menyambungkan ke layanan FTP. | |
ftp_password |
Kata sandi pengguna yang digunakan untuk menyambungkan ke layanan FTP. | |
ftp_port |
Nomor port layanan FTP untuk Distributor. Menentukan nomor port TCP dari situs FTP tempat file rekam jepret publikasi disimpan. | |
ftp_subdirectory |
Menentukan tempat file rekam jepret dibuat jika publikasi mendukung penyebaran rekam jepret dengan menggunakan FTP. | |
generation_leveling_threshold |
int | Menentukan jumlah perubahan yang terkandung dalam satu generasi. Generasi adalah kumpulan perubahan yang dikirimkan ke Penerbit atau Pelanggan. |
keep_partition_changes |
true |
Sinkronisasi dioptimalkan, dan hanya Pelanggan yang memiliki baris dalam partisi yang diubah yang terpengaruh. Mengubah properti ini memerlukan rekam jepret baru. |
false |
Sinkronisasi tidak dioptimalkan, dan partisi yang dikirim ke Pelanggan diverifikasi saat data berubah dalam partisi. Mengubah properti ini memerlukan rekam jepret baru. | |
max_concurrent_merge |
Int yang menunjukkan jumlah maksimum proses penggabungan bersamaan yang dapat dijalankan terhadap publikasi. Jika 0, tidak ada batasan. Jika lebih dari jumlah proses penggabungan ini dijadwalkan untuk berjalan pada saat yang sama, pekerjaan berlebih dimasukkan ke dalam antrean hingga proses currentlmerge selesai. | |
max_concurrent_dynamic_snapshots |
Int yang mewakili jumlah maksimum sesi rekam jepret untuk menghasilkan rekam jepret data terfilter yang dapat dijalankan secara bersamaan terhadap publikasi gabungan yang menggunakan filter baris berparameter. Jika 0 , tidak ada batasan. Jika lebih dari jumlah proses rekam jepret ini dijadwalkan untuk dijalankan pada saat yang sama, pekerjaan berlebih dimasukkan ke dalam antrean hingga proses penggabungan saat ini selesai. |
|
post_snapshot_script |
Menentukan penunjuk ke .sql lokasi file. Agen Distribusi atau Agen Penggabungan menjalankan skrip pasca-rekam jepret setelah semua skrip objek dan data lain yang direplikasi telah diterapkan selama sinkronisasi awal. Mengubah properti ini memerlukan rekam jepret baru. |
|
pre_snapshot_script |
Menentukan penunjuk ke .sql lokasi file. Agen Penggabungan menjalankan skrip pra-rekam jepret sebelum salah satu skrip objek yang direplikasi saat menerapkan rekam jepret pada Pelanggan. Mengubah properti ini memerlukan rekam jepret baru. |
|
publication_compatibility_level |
100RTM |
SQL Server 2008 (10.0.x) |
90RTM |
SQL Server 2005 (9.x) | |
publish_to_activedirectory |
true |
Parameter ini tidak digunakan lagi dan dipertahankan untuk kompatibilitas skrip mundur. Anda tidak dapat lagi menambahkan informasi publikasi ke Direktori Aktif. |
false |
Menghapus informasi publikasi dari Direktori Aktif. | |
replicate_ddl |
1 |
Pernyataan Data Definition Language (DDL) yang dijalankan di Publisher direplikasi. |
0 |
Pernyataan DDL tidak direplikasi. | |
retention |
Int yang menunjukkan jumlah retention_period_unit unit untuk menyimpan perubahan untuk publikasi yang diberikan. Jika langganan tidak disinkronkan dalam periode retensi, dan perubahan tertunda yang diterimanya dihapus oleh operasi pembersihan di Distributor, langganan kedaluwarsa dan harus diinisialisasi ulang. Periode retensi maksimum yang diizinkan adalah jumlah hari antara 31 Desember 9999, dan tanggal saat ini.Catatan: Periode retensi untuk publikasi penggabungan memiliki masa tenggang 24 jam untuk mengakomodasi Pelanggan di zona waktu yang berbeda. |
|
retention_period_unit |
day |
Periode retensi ditentukan dalam hari. |
week |
Periode retensi ditentukan dalam beberapa minggu. | |
month |
Periode retensi ditentukan dalam bulan. | |
year |
Periode retensi ditentukan dalam tahun. | |
snapshot_in_defaultfolder |
true |
File rekam jepret disimpan di folder rekam jepret default. |
false |
File rekam jepret disimpan di lokasi alternatif yang ditentukan oleh alt_snapshot_folder . Kombinasi ini menentukan bahwa file rekam jepret disimpan di lokasi default dan alternatif. |
|
snapshot_ready |
true |
Rekam jepret untuk publikasi tersedia. |
false |
Rekam jepret untuk publikasi tidak tersedia. | |
status |
active |
Publikasi dalam status aktif. |
inactive |
Publikasi dalam status tidak aktif. | |
sync_mode |
native ataubcp native |
Output program penyalinan massal mode asli dari semua tabel digunakan untuk rekam jepret awal. |
character atau bcp character |
Output program penyalinan massal mode karakter dari semua tabel digunakan untuk rekam jepret awal, yang diperlukan untuk semua Pelanggan non-SQL Server. | |
use_partition_groups Catatan: Setelah menggunakan grup partisi, jika Anda kembali menggunakan setupbelongs , dan diatur use_partition_groups=false dalam changemergearticle , ini mungkin tidak tercermin dengan benar setelah rekam jepret diambil. Pemicu yang dihasilkan oleh rekam jepret mematuhi grup partisi.Solusi untuk skenario ini adalah mengatur status ke Tidak Aktif, mengubah use_partition_groups , lalu mengatur status ke Aktif. |
true |
Publikasi menggunakan partisi yang telah dikomputasi sebelumnya. |
false |
Publikasi tidak menggunakan partisi yang telah dikomputasi sebelumnya. | |
validate_subscriber_info |
Mencantumkan fungsi yang digunakan untuk mengambil informasi Pelanggan. Kemudian, memvalidasi kriteria pemfilteran dinamis yang digunakan untuk Pelanggan untuk memverifikasi bahwa informasi dipartisi secara konsisten. | |
web_synchronization_url |
Nilai default URL Internet yang digunakan untuk sinkronisasi Web. | |
NULL (default) |
Mengembalikan daftar nilai yang didukung untuk @property. |
[ @force_invalidate_snapshot = ] force_invalidate_snapshot
Mengakui bahwa tindakan yang diambil oleh prosedur tersimpan ini mungkin membatalkan rekam jepret yang ada. @force_invalidate_snapshot adalah bit, dengan default 0
.
0
menentukan bahwa mengubah publikasi tidak membatalkan rekam jepret. Jika prosedur tersimpan mendeteksi bahwa perubahan memang memerlukan rekam jepret baru, kesalahan terjadi dan tidak ada perubahan yang dilakukan.1
menentukan bahwa mengubah publikasi mungkin membatalkan rekam jepret. Jika ada langganan yang memerlukan rekam jepret baru, memberikan izin agar rekam jepret yang ada ditandai sebagai usang dan agar rekam jepret baru dibuat.
Lihat bagian Keterangan untuk properti yang, saat diubah, memerlukan rekam jepret baru untuk dibuat.
[ @force_reinit_subscription = ] force_reinit_subscription
Mengakui bahwa tindakan yang diambil oleh prosedur tersimpan ini mungkin mengharuskan langganan yang ada untuk diinisialisasi ulang. @force_reinit_subscription adalah bit, dengan default 0
.
0
menentukan bahwa mengubah publikasi tidak mengharuskan langganan diinisialisasi ulang. Jika prosedur tersimpan mendeteksi bahwa perubahan mengharuskan langganan yang ada diinisialisasi ulang, kesalahan terjadi dan tidak ada perubahan yang dilakukan.1
berarti bahwa perubahan pada publikasi menginisialisasi ulang langganan yang ada, dan memberikan izin agar reinisialisasi langganan terjadi.
Lihat bagian Keterangan untuk properti yang, saat diubah, mengharuskan semua langganan yang ada diinisialisasi ulang.
Mengembalikan nilai kode
0
(berhasil) atau 1
(kegagalan).
Keterangan
sp_changemergepublication
digunakan dalam replikasi penggabungan.
Mengubah properti berikut mengharuskan rekam jepret baru dibuat. Anda harus menentukan nilai 1
untuk parameter @force_invalidate_snapshot .
alt_snapshot_folder
compress_snapshot
dynamic_filters
ftp_address
ftp_login
ftp_password
ftp_port
ftp_subdirectory
post_snapshot_script
publication_compatibility_level
(hanya untuk80SP3
)pre_snapshot_script
snapshot_in_defaultfolder
sync_mode
use_partition_groups
Mengubah properti berikut mengharuskan langganan yang ada diinisialisasi ulang. Anda harus menentukan nilai 1
untuk parameter @force_reinit_subscription .
dynamic_filters
validate_subscriber_info
Untuk mencantumkan objek publikasi ke Direktori Aktif dengan menggunakan publish_to_active_directory
, objek SQL Server harus sudah dibuat di Direktori Aktif.
Contoh
DECLARE @publication AS sysname;
SET @publication = N'AdvWorksSalesOrdersMerge';
-- Disable DDL replication for the publication.
USE [AdventureWorks2022]
EXEC sp_changemergepublication
@publication = @publication,
@property = N'replicate_ddl',
@value = 0,
@force_invalidate_snapshot = 0,
@force_reinit_subscription = 0;
GO
Izin
Hanya anggota peran server tetap sysadmin atau peran database tetap db_owner yang dapat menjalankan sp_changemergepublication
.