Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Managed Instance
Właściwości migawek można definiować i modyfikować programowo za pomocą procedur składowanych replikacji, przy czym używane procedury składowane zależą od typu publikacji.
Aby skonfigurować właściwości migawki podczas tworzenia migawki lub publikacji transakcyjnej
Na Publisher wykonaj sp_addpublication. Określ nazwę publikacji dla
@publication, wartość migawka albo ciągła dla@repl_freqoraz co najmniej jeden z następujących parametrów związanych z migawką:-
@alt_snapshot_folder— określ ścieżkę, jeśli migawka dla tej publikacji jest dostępna z tej lokalizacji zamiast domyślnego folderu migawek lub oprócz niego. -
@compress_snapshot- określ wartość true, jeśli pliki migawek w alternatywnym folderze migawek są skompresowane do formatu pliku Microsoft CAB. -
@pre_snapshot_script- określić nazwę pliku i pełną ścieżkę pliku .sql , który zostanie wykonany na abonencie podczas inicjalizacji przed zastosowaniem początkowego snapshotu. -
@post_snapshot_script- określić nazwę pliku i pełną ścieżkę pliku .sql , który zostanie wykonany na abonencie podczas inicjacji po zastosowaniu początkowego snapshotu. -
@snapshot_in_defaultfolder— ustaw wartość false, jeśli migawka jest dostępna tylko w lokalizacji innej niż domyślna.
Więcej informacji o tworzeniu publikacji znajdziesz w sekcji Stwórz publikację.
-
Aby skonfigurować właściwości migawki podczas tworzenia publikacji scalającej
Na Publisher wykonaj sp_addmergepublication. Określ nazwę publikacji dla
@publication, wartość snapshot lub continuous dla@repl_freqoraz co najmniej jeden z następujących parametrów związanych z migawką:- alt_snapshot_folder — określ ścieżkę, jeśli do migawki tej publikacji uzyskuje się dostęp z tej lokalizacji zamiast z domyślnego folderu migawek lub oprócz niego.
-
@compress_snapshot— określ wartość true, jeśli pliki migawek w alternatywnym folderze migawek są skompresowane w formacie CAB. -
@pre_snapshot_script- określić nazwę pliku i pełną ścieżkę pliku .sql , który zostanie wykonany na abonencie podczas inicjalizacji przed zastosowaniem początkowego snapshotu. -
@post_snapshot_script- określić nazwę pliku i pełną ścieżkę pliku .sql , który zostanie wykonany na abonencie podczas inicjacji po zastosowaniu początkowego snapshotu. -
@snapshot_in_defaultfolder— określ wartość false, jeśli migawka jest dostępna tylko w lokalizacji innej niż domyślna.
Więcej informacji o tworzeniu publikacji znajdziesz w sekcji Stwórz publikację.
Aby zmodyfikować właściwości snapshotów istniejącego snapshotu lub publikacji transakcyjnej
Na Publisher w bazie publikacji wykonaj sp_changepublication. Określmy wartość 1 dla
@force_invalidate_snapshotoraz jedną z następujących wartości dla@property:-
alt_snapshot_folder - także określa nową ścieżkę do alternatywnego folderu migawek dla
@value. -
compress_snapshot — określ także wartość true lub
@valuedla , aby określić, czy pliki migawek w alternatywnym folderze migawek są skompresowane w formacie CAB. -
pre_snapshot_script — również dla
@valuenależy określić nazwę pliku i pełną ścieżkę do pliku .sql, który zostanie wykonany u subskrybenta podczas inicjalizacji przed zastosowaniem początkowej migawki. -
post_snapshot_script — również dla
@valuenależy określić nazwę pliku i pełną ścieżkę do pliku .sql, który zostanie wykonany u subskrybenta podczas inicjalizacji po zastosowaniu początkowej migawki. - snapshot_in_defaultfolder — określ również wartość true lub false, aby wskazać, czy migawka jest dostępna wyłącznie w lokalizacji innej niż domyślna.
-
alt_snapshot_folder - także określa nową ścieżkę do alternatywnego folderu migawek dla
(Opcjonalnie) Na serwerze Publishera w bazie danych publikacji wykonaj sp_changepublication_snapshot. Określ
@publicationoraz co najmniej jeden ze zmienianych parametrów planowania lub poświadczeń zabezpieczeń.Ważna
Jeśli to możliwe, proś użytkowników o wprowadzenie poświadczeń uwierzytelniających podczas działania. Jeśli musisz przechowywać poświadczenia w pliku skryptu, musisz zabezpieczyć plik, aby zapobiec nieautoryzowanemu dostępowi.
Uruchom Replication Snapshot Agent z wiersza poleceń lub rozpocznij zadanie Snapshot Agent, aby wygenerować nowy snapshot. Aby uzyskać więcej informacji, zobacz Tworzenie i stosowanie migawki początkowej.
Aby zmodyfikować właściwości migawek istniejącej publikacji merge
Na serwerze Publisher, w bazie danych publikacji, wykonaj sp_changemergepublication. Określmy wartość 1 dla
@force_invalidate_snapshotoraz jedną z następujących wartości dla@property**:-
alt_snapshot_folder — określa również nową ścieżkę do alternatywnego folderu migawek dla
@value. -
compress_snapshot — określ także wartość true lub
@valuedla , aby wskazać, czy pliki migawki w alternatywnym folderze migawek są skompresowane w formacie CAB. -
pre_snapshot_script – także w przypadku
@valuenależy określić nazwę pliku i pełną ścieżkę do pliku .sql, który zostanie uruchomiony u Subskrybenta podczas inicjalizacji przed zastosowaniem początkowej migawki. -
post_snapshot_script — w przypadku
@valuenależy również określić nazwę pliku i pełną ścieżkę do pliku .sql, który zostanie wykonany u subskrybenta podczas inicjalizacji po zastosowaniu początkowej migawki. - snapshot_in_defaultfolder — podaj także wartość true lub false, aby wskazać, czy migawka jest dostępna tylko w lokalizacji innej niż domyślna.
-
alt_snapshot_folder — określa również nową ścieżkę do alternatywnego folderu migawek dla
Uruchom Replication Snapshot Agent z wiersza poleceń lub rozpocznij zadanie Snapshot Agent, aby wygenerować nowy snapshot. Aby uzyskać więcej informacji, zobacz Tworzenie i stosowanie migawki początkowej.
Przykład
Ten przykład tworzy publikację, która korzysta z alternatywnego folderu snapshotów oraz skompresowanego snapshota.
-- 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