Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Managed Instance
Snapshot-egenskaper kan definieras och modifieras programmatiskt med hjälp av replikationslagrade procedurer, där de lagrade procedurerna beror på typen av publikation.
Så här konfigurerar du egenskaper för ögonblicksbilden när du skapar en ögonblicksbild eller en transaktionell publikation
På utgivaren kör du sp_addpublication. Ange ett publiceringsnamn för
@publication, ett värde av antingen snapshot eller kontinuerligt för@repl_freq, och en eller flera av följande snapshot-relaterade parametrar:-
@alt_snapshot_folder- ange en sökväg om snapshoten för denna publikation nås från den platsen istället för eller utöver snapshot-standardmappen. -
@compress_snapshot- ange värdet true om ögonblicksbildsfilerna i den alternativa mappen för ögonblicksbilder är komprimerade i Microsoft CAB-filformatet. -
@pre_snapshot_script- ange filnamnet och hela sökvägen för en .sql fil som ska köras vid prenumeranten under initieringen innan den initiala snapshoten appliceras. -
@post_snapshot_script- specificera filnamnet och hela sökvägen för en .sql-fil som kommer att köras hos prenumeranten under initieringen efter att den initiala snapshoten har applicerats. -
@snapshot_in_defaultfolder- ange värdet false om ögonblicksbilden endast är tillgänglig på en icke-standardplats.
För mer information om att skapa publikationer, se Skapa en publikation.
-
Konfigurera egenskaper för ögonblicksbilden när du skapar en merge-publikation
Hos utgivaren kör du sp_addmergepublication. Ange ett publiceringsnamn för
@publication, ett värde av antingen snapshot eller kontinuerligt för@repl_freq, och en eller flera av följande snapshot-relaterade parametrar:- alt_snapshot_folder – ange en sökväg om snapshoten för denna publikation nås från den platsen istället för eller utöver snapshot-standardmappen.
-
@compress_snapshot- ange värdet true om snapshotfilerna i den alternativa snapshot-mappen komprimeras i CAB-format. -
@pre_snapshot_script- ange filnamnet och hela sökvägen för en .sql fil som ska köras vid prenumeranten under initieringen innan den initiala snapshoten appliceras. -
@post_snapshot_script- specificera filnamnet och hela sökvägen för en .sql-fil som kommer att köras hos prenumeranten under initieringen efter att den initiala snapshoten har applicerats. -
@snapshot_in_defaultfolder- ange värdet false om ögonblicksbilden endast är tillgänglig på en annan plats än standardplatsen.
För mer information om att skapa publikationer, se Skapa en publikation.
Att ändra ögonblicksbildsegenskaper hos en befintlig ögonblicksbild eller transaktionell publikation
Vid Publisher i publikationsdatabasen, kör sp_changepublication. Ange ett värde på 1 för
@force_invalidate_snapshotoch ett av följande värden för@property:-
alt_snapshot_folder -also specificera en ny sökväg till den alternativa snapshot-mappen för
@value. -
compress_snapshot - ange också ett värde av antingen sant eller falskt för
@valueför att indikera om snapshotfilerna i den alternativa snapshot-mappen är komprimerade i CAB-filformatet. -
pre_snapshot_script – även för att
@valuespecificera filnamnet och hela sökvägen för en .sql-fil som ska köras hos prenumeranten under initieringen innan den initiala snapshoten appliceras. -
post_snapshot_script – även för att
@valuespecificera filnamnet och hela sökvägen för en .sql fil som kommer att köras hos prenumeranten under initialiseringen efter att den initiala snapshoten har applicerats. - snapshot_in_defaultfolder - specificera också ett värde på antingen sant eller falskt för att indikera om snapshoten endast är tillgänglig på en icke-standardplats.
-
alt_snapshot_folder -also specificera en ny sökväg till den alternativa snapshot-mappen för
(Valfritt) Vid Publisher i publikationsdatabasen, kör sp_changepublication_snapshot. Specificera
@publicationoch en eller flera av schemaläggnings- eller säkerhetsbehörighetsparametrarna som ändras.Important
När det är möjligt uppmanar du användarna att ange säkerhetsautentiseringsuppgifter vid körning. Om du måste lagra autentiseringsuppgifter i en skriptfil måste du skydda filen för att förhindra obehörig åtkomst.
Kör Replication Snapshot Agent från kommandoprompten eller starta Snapshot Agent-jobbet för att generera en ny snapshot. Mer information finns i Skapa och tillämpa den första ögonblicksbilden.
För att ändra snapshot-egenskaper för en befintlig sammanslagningspublikation
På Publisher i publikationsdatabasen, kör sp_changemergepublication. Ange ett värde på 1 för
@force_invalidate_snapshotoch ett av följande värden för@property**:-
alt_snapshot_folder -also specificera en ny sökväg till den alternativa snapshot-mappen för
@value. -
compress_snapshot - ange också ett värde av antingen sant eller falskt för
@valueför att indikera om snapshotfilerna i den alternativa snapshot-mappen är komprimerade i CAB-filformatet. -
pre_snapshot_script – även för att
@valuespecificera filnamnet och hela sökvägen för en .sql-fil som ska köras hos prenumeranten under initieringen innan den initiala snapshoten appliceras. -
post_snapshot_script – även för att
@valuespecificera filnamnet och hela sökvägen för en .sql fil som kommer att köras hos prenumeranten under initialiseringen efter att den initiala snapshoten har applicerats. - snapshot_in_defaultfolder - specificera också ett värde på antingen sant eller falskt för att indikera om snapshoten endast är tillgänglig på en icke-standardplats.
-
alt_snapshot_folder -also specificera en ny sökväg till den alternativa snapshot-mappen för
Kör Replication Snapshot Agent från kommandoprompten eller starta Snapshot Agent-jobbet för att generera en ny snapshot. Mer information finns i Skapa och tillämpa den första ögonblicksbilden.
Example
Detta exempel skapar en publikation som använder en alternativ snapshot-mapp och en komprimerad snapshot.
-- 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