Compartilhar via


Criar uma assinatura para um Assinante não SQL Server

Este tópico descreve como criar uma assinatura para um Assinante não SQL Server no SQL Server 2012 usando SQL Server Management Studio ou Transact-SQL. Dados de publicação de suporte a replicação transacional e de instantâneo para Assinantes não SQL Server. Para obter mais informações sobre plataformas de Assinantes com suporte, consulte Assinantes não SQL Server.

Neste tópico

  • Para criar uma assinatura para um Assinante não SQL Server, usando:

    SQL Server Management Studio

    Transact-SQL

Usando o SQL Server Management Studio

Para criar uma assinatura para um Assinante não SQL Server:

  1. Instale e configure o software de cliente Oracle e o provedor OLE DB apropriados no Distribuidor SQL Server. Para obter mais informações, consulte Assinantes Oracle e Assinantes do IBM DB2.

  2. Crie uma publicação usando o Assistente para Nova Publicação. Para obter mais informações sobre a criação de publicações, consulte Crie uma publicação e Criar uma publicação de um banco de dados Oracle. Especifique as opções a seguir no Assistente para Nova Publicação:

    • Na página Tipo de Publicação, selecione Publicação de Instantâneo ou Publicação Transacional.

    • Na página Agente de Instantâneo, desmarque Criar um instantâneo imediatamente.

      Você cria o instantâneo após a publicação estar habilitada para Assinantes não SQL Server para garantir que o Agente de Instantâneo gere scripts de instantâneo e de inicialização adequados para os Assinantes não SQL Server.

  3. Habilite a publicação para Assinantes não SQL Server usando a caixa de diálogo Propriedades de Publicação - <Nome_da_Publicação>. Consulte Propriedades da Publicação, Opções de Assinatura para obter mais informações sobre essa etapa.

  4. Crie uma assinatura usando o Assistente para Nova Assinatura. Esse tópico proporciona mais informações sobre essa etapa.

  5. (Opcional) Altere a propriedade do artigo de pre_creation_cmd para reter as tabelas no Assinante. Esse tópico proporciona mais informações sobre essa etapa.

  6. Gere um instantâneo para a publicação. Esse tópico proporciona mais informações sobre essa etapa.

  7. Sincronize a assinatura. Para obter mais informações, consulte Sincronizar uma assinatura push.

Para habilitar uma publicação para Assinantes não SQL Server

  1. Conecte-se ao Publicador no SQL Server Management Studio e expanda o nó do servidor.

  2. Expanda a pasta Replicação e, em seguida, expanda a pasta Publicações Locais.

  3. Clique com o botão direito do mouse na publicação, em clique em Propriedades.

  4. Na página Opções de Assinatura, selecione um valor de Verdadeiro para a opção Permitir Assinantes não SQL Server. A seleção dessa opção altera várias propriedades de forma que a publicação seja compatível com Assinantes não SQL Server.

    ObservaçãoObservação

    Selecionando Verdadeiro define o valor da propriedade do artigo pre_creation_cmd para 'descartar'. Essa definição especifica que a replicação deve descartar uma tabela no Assinante se coincidir com o nome de tabela no artigo. Se tiver tabelas existentes no Assinante que deseja manter, use o procedimento armazenado sp_changearticle para cada artigo, especifique o valor 'nenhum' para pre_creation_cmd: sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.

  5. Clique em OK. Você será solicitado a criar um novo instantâneo para a publicação. Se não quiser criar um neste momento, use mais tarde as etapas descritas no próximo procedimento “Como”.

Para criar uma assinatura para um Assinante não SQL Server

  1. Expanda a pasta Replicação e, em seguida, expanda a pasta Publicações Locais.

  2. Clique com o botão direito do mouse em uma publicação adequada e clique em Novas Assinaturas.

  3. Na página Local do Agente de Distribuição, certifique-se de que Executar todos os agentes no Distribuidor esteja selecionado. Assinantes não -SQL Server não têm suporte para os agentes executando no Assinante.

  4. Na página Assinantes, clique em Adicionar Assinante e clique em Adicionar Assinante não SQL Server.

  5. Na caixa de diálogo Adicionar Assinante Não SQL Server, selecione o tipo de Assinante.

  6. Digite um valor no Nome da fonte de dados:

    • Para o Oracle, esse é o nome do substrato transparente de rede (TNS) que você configurou.

    • Para a IBM, esse pode ser qualquer nome. É comum especificar o endereço de rede do Assinante.

    O nome da fonte de dados digitado nesta etapa e as credenciais especificadas na etapa 9 não são validados por este assistente. Não são usados pela replicação até que o Agente de Distribuição execute para uma assinatura. Certifique-se de que todos os valores tenham sido testados por meio de conexão ao Assinante usando uma ferramenta de cliente (como sqlplus para o Oracle). Para obter mais informações, consulte Assinantes Oracle e Assinantes do IBM DB2.

  7. Clique em OK. Na página Assinantes do assistente, o Assinante é agora exibido na coluna Assinante com um somente leitura (destino padrão) na coluna Banco de Dados da Assinatura:

    • Para o Oracle, um servidor tem, no máximo, um banco de dados, assim não é necessário especificar o banco de dados.

    • Para a IBM DB2, o banco de dados é especificado na propriedade Catálogo Inicial da cadeia de caracteres da conexão DB2, que pode ser digitada no campo Opções de conexões adicionais descrito mais adiante neste processo.

  8. Na página Segurança do Agente de Distribuição, clique no botão de propriedades () próximo ao Assinante para acessar a caixa de diálogo Segurança do Agente de Distribuição.

  9. Na caixa de diálogo Segurança do Agente de Distribuição:

    • Nos campos Processar conta, Senha e Confirmar senha, digite a conta e a senha do Microsoft Windows sob as quais o Agente de Distribuição deve executar e realizar conexões locais ao Distribuidor.

      A conta requer, no mínimo, as seguintes permissões: membro da função de banco de dados fixa db_owner no banco de dados de distribuição, membro da lista de acesso à publicação (PAL); permissões de leitura no compartilhamento do instantâneo e permissão de leitura no diretório instalado do provedor OLE DB. Para obter mais informações sobre a PAL, consulte Proteger o Publicador.

    • No Conectar ao Assinante, nos campos Logon, Senha e Confirmar senha, digite o logon e a senha que devem ser usados para se conectar ao Assinante. Esse logon já deverá estar configurado e ter permissões suficientes para criar objetos no banco de dados de assinatura.

    • No campo Opções de conexões adicionais, especifique as opções de conexão para o Assinante na forma de uma cadeia de caracteres para conexão (Oracle não necessita de opções adicionais). Cada opção deverá estar separada por um ponto-e-vírgula. A seguir um exemplo de uma cadeia de conexão DB2 (as quebras de linha são para facilitar a leitura):

      Provider=DB2OLEDB;Initial Catalog=MY_SUBSCRIBER_DB;Network Transport Library=TCP;Host CCSID=1252;
      PC Code Page=1252;Network Address=MY_SUBSCRIBER;Network Port=50000;Package Collection=MY_PKGCOL;
      Default Schema=MY_SCHEMA;Process Binary as Character=False;Units of Work=RUW;DBMS Platform=DB2/NT;
      Persist Security Info=False;Connection Pooling=True;
      

      A maioria das opções na cadeia de caracteres é específica do servidor DB2 que você está configurando, mas a opção Processar Binário como Caractere sempre deve ser definida como False. Um valor é necessário para a opção Catálogo Inicial para identificar o banco de dados de assinatura.

  10. Na página Agenda de Sincronização, selecione uma agenda para o Agente de Distribuição no menu Agenda do Agente (a agenda é tipicamente Executar continuamente).

  11. Na página Inicializar Assinaturas, especifique se a assinatura deve ser inicializada e caso positivo, onde deve ser inicializada.

    • Desmarque Inicializar só se você criou todos os objetos e adicionou todos os dados necessários no banco de dados de assinatura.

    • Selecione Imediatamente na lista suspensa na coluna Inicializar Quando para que o Agente de Distribuição transfira os arquivos de instantâneos para o Assinante após a conclusão desse assistente. Selecione Na primeira sincronização para que o agente transfira os arquivos da próxima vez em que for agendado para executar.

  12. Na página Ações do Assistente, opcionalmente faça o script da assinatura. Para obter mais informações, consulte Replicação de script.

Para reter tabelas no Assinante

  • Por padrão, habilitando uma publicação para Assinantes não -SQL Server define o valor da propriedade do artigo de pre_creation_cmd para 'descartar' Essa definição especifica que a replicação deve descartar uma tabela no Assinante se coincidir com o nome de tabela no artigo. Se tiver tabelas existentes no Assinante que deseja manter, use o procedimento armazenado sp_changearticle para cada artigo, especifique um valor 'nenhum' para pre_creation_cmd. sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.

Para gerar um instantâneo para a publicação

  1. Expanda a pasta Replicação e, em seguida, expanda a pasta Publicações Locais.

  2. Clique com o botão direito do mouse em uma publicação e clique em Exibir Status do Agente de Instantâneo.

  3. Na caixa de diálogo Exibir Status do Agente de Instantâneo - <Publicação>, clique em Iniciar.

Quando o Agente de Instantâneo terminar de gerar o instantâneo, uma mensagem será exibida, como "[100%] Um instantâneo de 17 artigos foi gerado".

Ícone de seta usado com o link Voltar ao Início[Top]

Usando Transact-SQL

Crie assinaturas push para Assinantes não SQL Server de forma programática, usando procedimentos armazenados de replicação.

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

Quando possível, solicite aos usuários que insiram as credenciais de segurança em tempo de execução. Se for necessário armazenar credenciais em um arquivo de script, você deverá proteger o arquivo para impedir acesso não autorizado.

Para criar uma assinatura push para uma publicação transacional ou de instantâneo para um assinante não SQL Server

  1. Instale o mais recente provedor OLE DB para o Assinante não SQL Server no Publicador e no Distribuidor. Para os requisitos de replicação de um fornecedor OLE DB, consulte Assinantes não SQL Server, Assinantes Oracle, Assinantes do IBM DB2.

  2. No Publicador do banco de dados de publicação, verifique se a publicação oferece suporte a Assinantes não SQL Server, executando sp_helppublication (Transact-SQL).

    • Se o valor de enabled_for_het_sub for 1, os Assinantes não SQL Server terão suporte.

    • Se o valor de enabled_for_het_sub for 0, execute sp_changepublication (Transact-SQL), especificando enabled_for_het_sub para @property e true para @value.

      ObservaçãoObservação

      Antes de alterar enabled_for_het_sub para true, é preciso ignorar todas as assinaturas existentes para a publicação. Não é possível definir enabled_for_het_sub como true quando a publicação oferecer suporte também a assinaturas de atualização. Alterar enabled_for_het_sub afetará outras propriedades de publicação. Para obter mais informações, consulte Assinantes não SQL Server.

  3. No Publicador do banco de dados de publicação, execute sp_addsubscription (Transact-SQL). Especifique @publication, @subscriber; um valor de (destino padrão) para @destination_db; um valor de push para @subscription_type, e um valor de 3 para @subscriber_type (especifica um provedor OLE DB).

  4. No Publicador do banco de dados de publicação, execute sp_addpushsubscription_agent (Transact-SQL). Especifique o seguinte:

    • Os parâmetros @subscriber e @publication.

    • Um valor de (destino padrão) para @subscriber_db,

    • As propriedades de fonte de dados não SQL Server para @subscriber_provider, @subscriber_datasrc, @subscriber_location, @subscriber_provider_string e @subscriber_catalog.

    • As credenciais do Microsoft Windows com as quais o Agente de Distribuição do Distribuidor é executado para @job_login e @job_password.

      ObservaçãoObservação

      As conexões realizadas com Autenticação Integrada do Windows sempre usam as credenciais do Windows especificadas por @job_login e @password. O Agente de Distribuição sempre faz a conexão local com o Distribuidor usando a Autenticação Integrada do Windows. Por padrão, o agente se conecta ao Assinante usando a Autenticação Integrada do Windows.

    • Um valor de 0 para @subscriber_security_mode e informações de logon do provedor OLE DB para @subscriber_login e @subscriber_password.

    • Agenda para o trabalho do Agente de Distribuição para essa assinatura. Para obter mais informações, consulte Especificar agendas de sincronização.

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

    Ao criar uma assinatura push em um Publicador com um Distribuidor remoto, os valores especificados para todos os parâmetros, inclusive job_login e job_password são enviados para o 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 seta usado com o link Voltar ao Início[Top]

Consulte também

Conceitos

Assinantes do IBM DB2

Assinantes Oracle

Outros assinantes não SQL Server

Conceitos dos procedimentos armazenados do sistema de replicação

Práticas recomendadas em relação à segurança de replicação