Compartilhar via


sp_addpublication_snapshot (Transact-SQL)

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

Observação sobre segurançaObservação sobre segurança

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, consulte Habilitar conexões criptografadas no Mecanismo de Banco de Dados (SQL Server Configuration Manager).

Ícone de vínculo de 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 de execução do Agente de Instantâneo. 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)

    Todos os dias de frequency_interval, com um padrão de diariamente.

    8

    frequency_interval é um ou mais dos seguintes (combinado 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 dia do mês do frequency_interval.

    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 = Dia da semana |

    10 = Dia de fim de semana

    64

    frequency_interval não é usado.

    128

    frequency_interval não é usado.

  • [ @frequency_subday = ] frequency_subday
    É a unidade de freq_subday_interval. frequency_subday é int e pode ter um destes 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, que significa a cada 5 minutos.

  • [ @frequency_relative_interval = ] frequency_relative_interval
    É a data de execução do Agente de Instantâneo. 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 do primeiro agendamento do Agente de Instantâneo, 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 para de ser agendado, formatada como AAAAMMDD. active_end_date é int, com um padrão de 99991231, que significa 31 de dezembro de 9999.

  • [ @active_start_time_of_day = ] active_start_time_of_day
    É a hora do dia do primeiro agendamento do Agente de Instantâneo, formatada 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 do último agendamento do Agente de Instantâneo, formatada como HHMMSS. active_end_time_of_day é int, com um padrão de 235959, que indica 23h59min59s em um relógio de 24 horas.

  • [ @snapshot_job_name = ] 'snapshot_agent_name'
    É o nome de um trabalho existente do Agente de Instantâneo se um trabalho existente estiver sendo usado. snapshot_agent_name é nvarchar(100) com o valor padrão de 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, então job_login e job_password devem ser NULL.

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

  • [ @publisher_login= ] 'publisher_login'
    É o logon usado na conexão com o Publicador. publisher_login é sysname, com um padrão de NULL. publisher_login deve ser especificado quando publisher_security_mode é 0. Se publisher_login for NULL e publisher_security_mode for 1, então, a conta Windows especificada em job_login será usada na conexão com o Publicador.

  • [ @publisher_password= ] 'publisher_password'
    É a senha usada ao conectar-se ao Publicador. publisher_password é sysname, com um padrão de NULL.

    Observação sobre segurançaObservação sobre segurança

    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 do Windows na qual o agente é executado. job_login é nvarchar(257), com um padrão de NULL. Essa conta do Windows 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çãoObservação

    Para Publicadores não SQL Server, esse deve ser o mesmo logon especificado em sp_adddistpublisher (Transact-SQL).

  • [ @job_password= ] 'job_password'
    É a senha da conta do 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.

    Observação sobre segurançaObservação sobre segurança

    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 Publicador que não é do SQL Server. publisher é sysname, com um padrão de NULL.

    ObservaçãoObservação

    publisher Não deveria ser usado ao criar um Agente de Instantâneo em um Publicador SQL Server.

Valores de 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 membros da função de servidor fixa sysadmin ou da função de banco de dados fixa db_owner podem executar sp_addpublication_snapshot.

Consulte também

Referência

sp_addpublication (Transact-SQL)

sp_changepublication_snapshot (Transact-SQL)

sp_startpublication_snapshot (Transact-SQL)

Procedimentos armazenados de replicação (Transact-SQL)

Conceitos

Crie uma publicação

Criar e aplicar o instantâneo