sp_addpublication_snapshot (Transact-SQL)

Aplica-se a: simSQL Server (todas as versões compatíveis) SimInstância Gerenciada do Azure SQL

Cria o Agente de Instantâneo para a publicação especificada. Esse procedimento armazenado é executado no Publicador, no banco de dados publicador.

Importante

Quando um Publicador é configurado com um Distribuidor remoto, os valores fornecidos para todos os parâmetros, inclusive job_login e job_password, são enviados ao Distribuidor como texto sem-formatação. Você deve criptografar a conexão entre o Publicador e seu Distribuidor remoto antes de executar esse procedimento armazenado. Para obter mais informações, veja Habilitar conexões criptografadas no Mecanismo de Banco de Dados (SQL Server Configuration Manager).

Ícone de link do tópico Convenções da sintaxe Transact-SQL

Sintaxe

  
sp_addpublication_snapshot [ @publication= ] '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 = ] 'snapshot_agent_name' ]  
    [ , [ @publisher_security_mode = ] publisher_security_mode ]  
    [ , [ @publisher_login = ] 'publisher_login' ]  
    [ , [ @publisher_password = ] 'publisher_password' ]   
    [ , [ @job_login = ] 'job_login' ]  
    [ , [ @job_password = ] 'job_password' ]  
    [ , [ @publisher = ] 'publisher' ]  

Argumentos

[ @publication = ] 'publication' É o nome da publicação. publication é sysname, sem padrão.

[ @frequency_type = ] frequency_type É a frequência com a qual o Agente de Instantâneo é executado. frequency_type é int e pode ser um dos valores a seguir.

Valor Descrição
1 Uma vez.
4 (padrão) Diariamente.
8 Semanalmente.
16 Mensalmente.
32 Mensalmente, relativo ao intervalo de frequência.
64 Quando o SQL Server Agent inicia.
128 Executar quando o computador estiver ocioso

[ @frequency_interval = ] frequency_interval É o valor a ser aplicado à frequência definida por frequency_type. frequency_interval é int e pode ser um dos valores a seguir.

Valor de frequency_type Efeito em frequency_interval
1 frequency_interval não éusado.
4 (padrão) A frequency_interval dias, com um padrão diário.
8 frequency_interval é um ou mais dos seguintes (combinados com um operador lógico| (OR bit a bit):

1 = Domingo |

2 = Segunda-feira |

4 = Terça-feira |

8 = Quarta-feira |

16 = Quinta-feira |

32 = Sexta-feira |

64 = Sábado
16 No frequency_interval dia do mês.
32 frequency_interval é um dos seguintes:

1 = Domingo |

2 = Segunda-feira |

3 = Terça-feira |

4 = Quarta-feira |

5 = Quinta-feira |

6 = Sexta-feira |

7 = Sábado |

8 = Dia |

9 = Dias da semana |

10 = Dia do fim de semana
64 frequency_interval não éusado.
128 frequency_interval não éusado.

[ @frequency_subday = ] frequency_subday É a unidade para freq_subday_interval. frequency_subday é int e pode ser um desses valores.

Valor Descrição
1 Uma vez
2 Segundo
4 (padrão) Minuto
8 Hora

[ @frequency_subday_interval = ] frequency_subday_interval É o intervalo para frequency_subday. frequency_subday_interval é int, com um padrão de 5, o que significa a cada 5 minutos.

[ @frequency_relative_interval = ] frequency_relative_interval É a data em que o Agente de Instantâneo é executado. frequency_relative_interval é int, com um padrão de 1.

[ @frequency_recurrence_factor = ] frequency_recurrence_factor É o fator de recorrência usado por frequency_type. frequency_recurrence_factor é int, com um padrão de 0.

[ @active_start_date = ] active_start_date É a data em que a Agente de Instantâneo é agendada pela primeira vez, formatada como AAAAMMDD. active_start_date é int, com um padrão de 0.

[ @active_end_date = ] active_end_date É a data em que o Agente de Instantâneo está sendo agendado, formatado como AAAAMMDD. active_end_date é int, com um padrão de 99991231, o que significa 31 de dezembro de 9999.

[ @active_start_time_of_day = ] active_start_time_of_day É a hora do dia em que o Agente de Instantâneo é agendado pela primeira vez, formatado como HHMMSS. active_start_time_of_day é int, com um padrão de 0.

[ @active_end_time_of_day = ] active_end_time_of_day É a hora do dia em que o Agente de Instantâneo para de ser agendado, formatado como HHMMSS. active_end_time_of_day é int, com um padrão de 235959, o que significa 11:59:59 P.M. medida em um relógio de 24 horas.

[ @snapshot_job_name = ] 'snapshot_agent_name' É o nome de um nome Agente de Instantâneo trabalho existente se um trabalho existente estiver sendo usado. snapshot_agent_name é nvarchar(100) com um valor padrão null. Esse parâmetro é para uso interno e não deve ser especificado ao criar uma nova publicação. Se snapshot_agent_name for especificado, os job_login e job_password deverão ser NULL.

[ @publisher_security_mode = ] publisher_security_modeÉ o modo de segurança usado pelo agente ao se conectar ao Publisher. publisher_security_mode é smallint, com um padrão de 1. 0 especifica SQL Server Autenticação e 1 especifica Windows Autenticação. Um valor de 0 deve ser especificado para SQL Server publicidores não. Quando possível, use a autenticação do Windows.

[ @publisher_login = ] 'publisher_login'É o logon usado ao se conectar ao Publisher. publisher_login é sysname, com um padrão null. publisher_login deve ser especificado quando publisher_security_mode é 0. Se publisher_login for NULL e publisher_security_mode for 1, a conta especificada no job_login será usada ao se conectar ao Publisher.

[ @publisher_password = ] 'publisher_password'É a senha usada ao se conectar ao Publisher. publisher_password é sysname, com um padrão null.

Importante

Não armazene informações de autenticação em arquivos de script. Para ajudar a melhorar a segurança, recomendamos que você forneça nomes de login e senhas em tempo de execução.

[ @job_login = ] 'job_login' É o logon da conta na qual o agente é executado. No Azure SQL Instância Gerenciada, use uma conta SQL Server usuário. job_login é nvarchar(257), com um padrão null. Essa conta sempre é usada para conexões de agente com o Distribuidor. Você deve fornecer esse parâmetro ao criar um novo trabalho do Agente de Instantâneo.

Observação

Para publicações SQL Server não, esse deve ser o mesmo logon especificado no sp_adddistpublisher (Transact-SQL).

[ @job_password = ] 'job_password'É a senha da conta Windows na qual o agente é executado. job_password é sysname, sem padrão. Você deve fornecer esse parâmetro ao criar um novo trabalho do Agente de Instantâneo.

Importante

Não armazene informações de autenticação em arquivos de script. Para ajudar a melhorar a segurança, recomendamos que você forneça nomes de login e senhas em tempo de execução.

[ @publisher = ] 'publisher'Especifica um valor não SQL Server Publisher. publisher é sysname, com um padrão null.

Observação

O publicador não deve ser usado ao criar um Agente de Instantâneo em um SQL Server Publisher.

Valores do código de retorno

0 (êxito) ou 1 (falha)

Comentários

sp_addpublication_snapshot é usado em replicação de instantâneo, replicação transacional e replicação de mesclagem.

Exemplo

-- 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

Permissões

Somente os membros da função de servidor fixa sysadmin ou db_owner função de banco de dados fixa podem executar sp_addpublication_snapshot.

Consulte Também

Create a Publication
Criar e aplicar o instantâneo
sp_addpublication (transact-SQL)
sp_changepublication_snapshot (Transact-SQL)
sp_startpublication_snapshot (transact-SQL)
Procedimentos armazenados de replicação (Transact-SQL)