Mengonfigurasi Properti Rekam Jepret (Pemrograman Transact-SQL Replikasi)

Berlaku untuk:SQL ServerAzure SQL Managed Instance

Properti rekam jepret dapat ditentukan dan dimodifikasi secara terprogram menggunakan prosedur tersimpan replikasi, di mana prosedur tersimpan yang digunakan bergantung pada jenis publikasi.

Untuk mengonfigurasi properti rekam jepret saat membuat rekam jepret atau publikasi transaksional

  1. Di Publisher, jalankan sp_addpublication. Tentukan nama publikasi untuk @publication, nilai rekam jepret atau berkelanjutan untuk @repl_freq, dan satu atau beberapa parameter terkait rekam jepret berikut:

    • @alt_snapshot_folder - tentukan jalur jika rekam jepret untuk publikasi ini diakses dari lokasi tersebut alih-alih atau selain folder default rekam jepret.
    • @compress_snapshot - tentukan nilai true jika file rekam jepret di folder rekam jepret alternatif dikompresi dalam format file Microsoft CAB.
    • @pre_snapshot_script - tentukan nama file dan jalur lengkap file .sql yang akan dijalankan di Pelanggan selama inisialisasi sebelum rekam jepret awal diterapkan.
    • @post_snapshot_script - tentukan nama file dan jalur lengkap file .sql yang akan dijalankan di Pelanggan selama inisialisasi setelah rekam jepret awal diterapkan.
    • @snapshot_in_defaultfolder - tentukan nilai false jika rekam jepret hanya tersedia di lokasi non-default.

    Untuk informasi selengkapnya tentang membuat publikasi, lihat Membuat Publikasi.

Untuk mengonfigurasi properti rekam jepret saat membuat publikasi gabungan

  1. Di Publisher, jalankan sp_addmergepublication. Tentukan nama publikasi untuk @publication, nilai rekam jepret atau berkelanjutan untuk @repl_freq, dan satu atau beberapa parameter terkait rekam jepret berikut:

    • alt_snapshot_folder - tentukan jalur jika rekam jepret untuk publikasi ini diakses dari lokasi tersebut alih-alih atau selain folder default rekam jepret.
    • @compress_snapshot - tentukan nilai true jika file rekam jepret di folder rekam jepret alternatif dikompresi dalam format file CAB.
    • @pre_snapshot_script - tentukan nama file dan jalur lengkap file .sql yang akan dijalankan di Pelanggan selama inisialisasi sebelum rekam jepret awal diterapkan.
    • @post_snapshot_script - tentukan nama file dan jalur lengkap file .sql yang akan dijalankan di Pelanggan selama inisialisasi setelah rekam jepret awal diterapkan.
    • @snapshot_in_defaultfolder - tentukan nilai false jika rekam jepret hanya tersedia di lokasi non-default.
  2. Untuk informasi selengkapnya tentang membuat publikasi, lihat Membuat Publikasi.

Untuk memodifikasi properti rekam jepret dari rekam jepret atau publikasi transaksi yang ada

  1. Di Publisher pada database publikasi, jalankan sp_changepublication. Tentukan nilai 1 untuk @force_invalidate_snapshot dan salah satu nilai berikut untuk @property:

    • alt_snapshot_folder -juga tentukan jalur baru ke folder rekam jepret alternatif untuk @value.
    • compress_snapshot - tentukan juga nilai true atau false untuk @value menunjukkan apakah file rekam jepret di folder rekam jepret alternatif dikompresi dalam format file CAB.
    • pre_snapshot_script - juga untuk @value menentukan nama file dan jalur lengkap file .sql yang akan dijalankan di Pelanggan selama inisialisasi sebelum rekam jepret awal diterapkan.
    • post_snapshot_script - juga untuk @value menentukan nama file dan jalur lengkap file .sql yang akan dijalankan di Pelanggan selama inisialisasi setelah rekam jepret awal diterapkan.
    • snapshot_in_defaultfolder - tentukan juga nilai benar atau salah untuk menunjukkan apakah rekam jepret hanya tersedia di lokasi non-default.
  2. (Opsional) Di Publisher pada database publikasi, jalankan sp_changepublication_snapshot. Tentukan @publication dan satu atau beberapa parameter penjadwalan atau kredensial keamanan sedang diubah.

    Penting

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

  3. Jalankan Agen Replikasi Rekam Jepret dari prompt perintah atau mulai pekerjaan Agen Rekam Jepret untuk menghasilkan rekam jepret baru. Untuk informasi selengkapnya, lihat Membuat dan Menerapkan Rekam Jepret Awal.

Untuk memodifikasi properti rekam jepret dari publikasi gabungan yang sudah ada

  1. Di Publisher pada database publikasi, jalankan sp_changemergepublication. Tentukan nilai 1 untuk @force_invalidate_snapshot dan salah satu nilai berikut untuk @property**:

    • alt_snapshot_folder -juga tentukan jalur baru ke folder rekam jepret alternatif untuk @value.
    • compress_snapshot - tentukan juga nilai true atau false untuk @value menunjukkan apakah file rekam jepret di folder rekam jepret alternatif dikompresi dalam format file CAB.
    • pre_snapshot_script - juga untuk @value menentukan nama file dan jalur lengkap file .sql yang akan dijalankan di Pelanggan selama inisialisasi sebelum rekam jepret awal diterapkan.
    • post_snapshot_script - juga untuk @value menentukan nama file dan jalur lengkap file .sql yang akan dijalankan di Pelanggan selama inisialisasi setelah rekam jepret awal diterapkan.
    • snapshot_in_defaultfolder - tentukan juga nilai benar atau salah untuk menunjukkan apakah rekam jepret hanya tersedia di lokasi non-default.
  2. Jalankan Agen Replikasi Rekam Jepret dari prompt perintah atau mulai pekerjaan Agen Rekam Jepret untuk menghasilkan rekam jepret baru. Untuk informasi selengkapnya, lihat Membuat dan Menerapkan Rekam Jepret Awal.

Contoh

Contoh ini membuat publikasi yang menggunakan folder rekam jepret alternatif dan rekam jepret terkompresi.

-- This script uses sqlcmd scripting variables. They are in the form
-- $(MyVariable). 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".

--Declarations for adding a merge publication
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @article AS sysname;
DECLARE @owner AS sysname;
DECLARE @snapshot_share AS sysname;
SET @publicationDB = N'AdventureWorks2022'; 
SET @publication = N'AdvWorksSalesOrdersMergeAltSnapshot'; 
SET @article = N'SpecialOffer';
SET @owner = N'Sales';
SET @snapshot_share = '\\' + $(InstanceName) + '\AltSnapshotFolder';

-- Enable merge replication on the publication database, using defaults.
USE master
EXEC sp_replicationdboption 
    @dbname = @publicationDB, 
    @optname=N'merge publish',
    @value = N'true';

-- Create new merge publication with an alternate snapshot location. 
USE [AdventureWorks]
EXEC sp_addmergepublication 
-- required parameters
    @publication = @publication, 
    @snapshot_in_defaultfolder = N'false',
    @alt_snapshot_folder = @snapshot_share,
    @compress_snapshot = N'true';

-- Create the snapshot job for the publication.
EXEC sp_addpublication_snapshot 
    @publication = @publication,
    @job_login = $(Login),
    @job_password = $(Password);

-- Add an article.
EXEC sp_addmergearticle 
    @publication = @publication, 
    @article = @article, 
    @source_object = @article, 
    @type = N'table', 
    @source_owner = @owner, 
    @destination_owner = @owner;

-- Start the snapshot job.
EXEC sp_startpublication_snapshot
    @publication = @publication;
GO

Lihat Juga

Mengubah opsi rekam jepret
Jalankan Skrip Sebelum dan Sesudah Rekam Jepret Diterapkan
Konsep Prosedur Tersimpan Sistem Replikasi
Transfer Rekam Jepret Melalui FTP
Mengubah Properti Publikasi dan Artikel