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
Skapar Snapshot Agent för den angivna publikationen. Den här lagrade proceduren körs i Publisher i publikationsdatabasen.
Important
När en Publisher konfigureras med en fjärrdistributör skickas värdena för alla parametrar, inklusive @job_login och @job_password, till distributören som klartext. Du bör kryptera anslutningen mellan Utgivaren och dess fjärranslutna distributör innan du kör den här lagrade proceduren. Mer information finns i Konfigurera Databasmotor för SQL Server för kryptering av anslutningar.
Transact-SQL syntaxkonventioner
Syntax
sys.sp_addpublication_snapshot
[ @publication = ] N'publication'
[ , [ @frequency_type = ] frequency_type ]
[ , [ @frequency_interval = ] frequency_interval ]
[ , [ @frequency_subday = ] frequency_subday ]
[ , [ @frequency_subday_interval = ] frequency_subday_interval ]
[ , [ @frequency_relative_interval = ] frequency_relative_interval ]
[ , [ @frequency_recurrence_factor = ] frequency_recurrence_factor ]
[ , [ @active_start_date = ] active_start_date ]
[ , [ @active_end_date = ] active_end_date ]
[ , [ @active_start_time_of_day = ] active_start_time_of_day ]
[ , [ @active_end_time_of_day = ] active_end_time_of_day ]
[ , [ @snapshot_job_name = ] N'snapshot_job_name' ]
[ , [ @publisher_security_mode = ] publisher_security_mode ]
[ , [ @publisher_login = ] N'publisher_login' ]
[ , [ @publisher_password = ] N'publisher_password' ]
[ , [ @job_login = ] N'job_login' ]
[ , [ @job_password = ] N'job_password' ]
[ , [ @publisher = ] N'publisher' ]
[ , [ @distributor_security_mode = ] distributor_security_mode ]
[ , [ @distributor_login = ] N'distributor_login' ]
[ , [ @distributor_password = ] N'distributor_password' ]
[ , [ @job_security_mode = ] job_security_mode ]
[ ; ]
Arguments
[ @publication = ] N'publicering'
Namnet på publikationen. @publication är sysname, utan standard.
[ @frequency_type = ] frequency_type
Frekvensen med vilken Snapshot Agent körs. @frequency_type är int, och kan vara ett av följande värden.
| Value | Description |
|---|---|
1 |
En gång |
4 (standardinställning) |
Daglig |
8 |
En gång i veckan |
16 |
Monthly |
32 |
Månadsvis, relativt frekvensintervallet |
64 |
När SQL Server Agent startar |
128 |
Kör när datorn är inaktiv |
[ @frequency_interval = ] frequency_interval
Värdet som gäller för frekvensen som sätts av @frequency_type. @frequency_interval är int, och kan vara ett av följande värden.
| Värdet av frequency_type | Effekt på frequency_interval |
|---|---|
1 |
@frequency_interval används inte. |
4 (standardinställning) |
Var @frequency_interval dag, med standarden dagligen. |
8 |
@frequency_interval är en eller flera av följande (kombinerat med en | (Bitwise OR) Logisk operator):1 = Söndag |2 = Måndag |4 = Tisdag |8 = Onsdag |16 = Torsdag |32 = Fredag |64 = Lördag |
16 |
På den @frequency_interval dagen i månaden. |
32 |
@frequency_interval är ett av följande värden:1 = Söndag |2 = Måndag |3 = Tisdag |4 = Onsdag |5 = Torsdag |6 = Fredag |7 = Lördag |8 = Dag |9 = Vardag |10 = Helgdag |
64 |
@frequency_interval används inte. |
128 |
@frequency_interval används inte. |
[ @frequency_subday = ] frequency_subday
Enheten för freq_subday_interval. @frequency_subday är int, och kan vara ett av dessa värden.
| Value | Description |
|---|---|
1 |
En gång |
2 |
Second |
4 (standardinställning) |
Minut |
8 |
Timme |
[ @frequency_subday_interval = ] frequency_subday_interval
Pausen för @frequency_subday, om minuter.
@frequency_subday_interval är int, med standardvärdet .5
[ @frequency_relative_interval = ] frequency_relative_interval
Datumet då Snapshot Agent körs.
@frequency_relative_interval är int, med standardvärdet .1
[ @frequency_recurrence_factor = ] frequency_recurrence_factor
Upprepningsfaktorn som används av @frequency_type.
@frequency_recurrence_factor är int, med standardvärdet .0
[ @active_start_date = ] active_start_date
Datumet då Snapshot Agent först schemaläggs och formateras som yyyyMMdd.
@active_start_date är int, med standardvärdet .0
[ @active_end_date = ] active_end_date
Datumet då Snapshot Agent slutar schemalagas, formaterat som yyyyMMdd.
@active_end_date är int, med en betalningsinställelse på 99991231, vilket betyder 31 december 9999.
[ @active_start_time_of_day = ] active_start_time_of_day
Den tid på dagen då Snapshot Agent först schemaläggs och formateras som HHmmss.
@active_start_time_of_day är int, med standardvärdet .0
[ @active_end_time_of_day = ] active_end_time_of_day
Den tid på dagen då Snapshot Agent slutar schemaläggas och formateras som HHmmss.
@active_end_time_of_day är int, med en standard på 235959, vilket betyder 23:59:59 enligt en 24-timmarsklocka.
[ @snapshot_job_name = ] N'snapshot_job_name'
Namnet på ett befintligt Snapshot Agent-jobb om ett befintligt jobb används.
@snapshot_job_name är nvarchar(100), med en standard på NULL. Denna parameter är för internt bruk och bör inte specificeras vid skapandet av en ny publikation. Om @snapshot_agent_name anges måste @job_login och @job_password vara NULL.
[ @publisher_security_mode = ] publisher_security_mode
Note
Microsoft Entra ID kallades tidigare Azure Active Directory (Azure AD).
Det är säkerhetsläget som agenten använder när de ansluter till Publisher.
@publisher_security_mode är int, med standardvärdet .1 Ett värde på 0 måste anges för icke-SQL Server Publishers. Om möjligt använder du Windows-autentisering.. Följande värden definierar säkerhetsläget:
-
0specificerar autentisering av SQL Server. -
1specificerar Windows-autentisering. -
2specificerar autentisering av Microsoft Entra-lösenord, med start från SQL Server 2022 (16.x) CU 6. -
3specificerar Microsoft Entra integrerad autentisering, med start från SQL Server 2022 (16.x) CU 6. -
4specificerar Microsoft Entra-tokenautentisering, med start från SQL Server 2022 (16.x) CU 6.
[ @publisher_login = ] N'publisher_login'
Inloggningen som används vid anslutning till Publisher.
@publisher_login är sysname, med standardvärdet .NULL
@publisher_login måste specificeras när @publisher_security_mode är 0. Om @publisher_login är NULL och @publisher_security_mode är 1, används kontot som anges i @job_login när man ansluter till Publisher.
[ @publisher_password = ] N'publisher_password'
Lösenordet som används vid anslutning till utgivaren.
@publisher_password är sysname, med standardvärdet .NULL
Important
Spara inte autentiseringsinformation i skriptfiler. För att förbättra säkerheten rekommenderar vi att du anger inloggningsnamn och lösenord vid körning.
[ @job_login = ] N'job_login'
Inloggningen för kontot som agenten körs under. På Azure SQL Managed Instance, använd ett SQL Server-konto.
@job_login är nvarchar(257), med en standard på NULL. Detta konto används alltid för agentkopplingar till distributören. Du måste ange denna parameter när du skapar ett nytt Snapshot Agent-jobb.
För icke-SQL Server utgivare måste detta vara samma inloggning som anges i sp_adddistpublisher.
[ @job_password = ] N'job_password'
Lösenordet till Windows-kontot som agenten körs under. @job_password är sysname, utan standard. Du måste ange denna parameter när du skapar ett nytt Snapshot Agent-jobb.
Important
Spara inte autentiseringsinformation i skriptfiler. För att förbättra säkerheten rekommenderar vi att du anger inloggningsnamn och lösenord vid körning.
[ @publisher = ] N'publisher'
Specificerar en icke-SQL Server Publisher.
@publisher är sysname, med standardvärdet .NULL
@publisher bör inte användas när man skapar en Snapshot Agent på en SQL Server Publisher.
[ @distributor_security_mode = ] distributor_security_mode
Identifieras endast i informationssyfte. Stöds ej. Framtida kompatibilitet garanteras inte.
[ @distributor_login = ] N'distributor_login'
Identifieras endast i informationssyfte. Stöds ej. Framtida kompatibilitet garanteras inte.
[ @distributor_password = ] N'distributor_password'
Identifieras endast i informationssyfte. Stöds ej. Framtida kompatibilitet garanteras inte.
[ @job_security_mode = ] job_security_mode
Identifieras endast i informationssyfte. Stöds ej. Framtida kompatibilitet garanteras inte.
Returnera kodvärden
0 (lyckades) eller 1 (fel).
Remarks
sp_addpublication_snapshot används i replikering av ögonblicksbilder, transaktionsreplikering och sammanslagningsreplikering.
Examples
-- To avoid storing the login and password in the script file, the values
-- are passed into SQLCMD as scripting variables. 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".
DECLARE @publicationDB AS sysname;
DECLARE @publication AS sysname;
DECLARE @login AS sysname;
DECLARE @password AS sysname;
SET @publicationDB = N'AdventureWorks';
SET @publication = N'AdvWorksProductTran';
-- Windows account used to run the Log Reader and Snapshot Agents.
SET @login = $(Login);
-- This should be passed at runtime.
SET @password = $(Password);
-- Enable transactional or snapshot replication on the publication database.
EXEC sp_replicationdboption
@dbname=@publicationDB,
@optname=N'publish',
@value = N'true';
-- Execute sp_addlogreader_agent to create the agent job.
EXEC sp_addlogreader_agent
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
-- Create a new transactional publication with the required properties.
EXEC sp_addpublication
@publication = @publication,
@status = N'active',
@allow_push = N'true',
@allow_pull = N'true',
@independent_agent = N'true';
-- Create a new snapshot job for the publication, using a default schedule.
EXEC sp_addpublication_snapshot
@publication = @publication,
@job_login = @login,
@job_password = @password,
-- Explicitly specify the use of Windows Integrated Authentication (default)
-- when connecting to the Publisher.
@publisher_security_mode = 1;
GO
Permissions
Endast medlemmar av sysadmin-fasta serverrollen eller db_owner fasta databasrollen kan köra sp_addpublication_snapshot.