Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se:SQL Server
Este tópico descreve como criar uma assinatura para um não Assinante do SQL Server no SQL Server usando o SQL Server Management Studio ou o Transact-SQL. A replicação transacional e de instantâneos dá suporte à publicação de dados para não Assinantes do SQL Server. Para obter mais informações sobre plataformas de Assinantes com suporte, consulte Non-SQL Server Subscribers.
Como usar o SQL Server Management Studio.
Para criar uma assinatura para um não Assinante do SQL Server:
Instale e configure o software de cliente Oracle e o provedor OLE DB apropriados no Distribuidor do SQL Server. Para obter mais informações, consulte Oracle Subscribers e IBM DB2 Subscribers.
Crie uma publicação usando o Assistente para Nova Publicação. Para obter mais informações sobre a criação de publicações, consulte Create a Publication (Criar 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.
Crie o instantâneo depois que a publicação for habilitada para Assinantes que não sejam do SQL Server, para garantir que o Agente de Instantâneo gere um instantâneo e scripts de inicialização adequados para Assinantes que não sejam do SQL Server.
Habilite a publicação para não assinantes do SQL Server usando a caixa de diálogo Propriedades da publicação - <PublicationName>. Consulte Publication Properties, Subscription Options para obter mais informações sobre essa etapa.
Crie uma assinatura usando o Assistente para Nova Assinatura. Esse tópico proporciona mais informações sobre essa etapa.
(Opcional) Altere a propriedade de artigo pre_creation_cmd para manter as tabelas no Assinante. Esse tópico proporciona mais informações sobre essa etapa.
Gere uma captura instantânea para a publicação. Esse tópico proporciona mais informações sobre essa etapa.
Sincronize a assinatura. Para obter mais informações, consulte Synchronize a Push Subscription.
Para habilitar uma publicação para assinantes que não sejam do SQL Server
Conecte-se ao Publicador no Microsoft SQL Server Management Studio e, em seguida, expanda o nó de servidor.
Expanda a pasta Replicação e, em seguida, a pasta Publicações Locais .
Clique com o botão direito do mouse na publicação, em clique em Propriedades.
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 não Assinantes do SQL Server.
Observação
Selecionando Verdadeiro define o valor da propriedade do artigo pre_creation_cmd para 'descartar'. Essa configuração especifica que a replicação deve excluir uma tabela no Assinante se o nome dela corresponder ao nome da tabela no artigo. Se você tiver tabelas existentes no Assinante que deseja manter, use o procedimento armazenado sp_changearticle para cada artigo; especifique o valor 'none' para pre_creation_cmd:
sp_changearticle @publication= 'MyPublication', @article= 'MyArticle', @property='pre_creation_cmd', @value='none'.Selecione 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 que não seja do SQL Server
Expanda a pasta Replicação e, em seguida, a pasta Publicações Locais .
Clique com o botão direito do mouse em uma publicação adequada e clique em Novas Assinaturas.
Na página Local do Agente de Distribuição, certifique-se de que Executar todos os agentes no Distribuidor esteja selecionado. Os não Assinantes do SQL Server não oferecem suporte à execução de agentes no Assinante.
Na página Assinantes, clique em Adicionar Assinante e, em seguida, clique em Adicionar Assinante que não seja do SQL Server.
Na caixa de diálogo Adicionar Assinante Não SQL Server, selecione o tipo de assinante.
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. Eles não são usados pela replicação até que o Agente de Distribuição seja executado para a assinatura. Certifique-se de que todos os valores foram testados conectando-se ao Assinante usando uma ferramenta cliente (como sqlplus para Oracle). Para obter mais informações, consulte Oracle Subscribers e IBM DB2 Subscribers.
Selecione OK. Na página Assinantes do assistente, o Assinante agora é exibido na coluna Assinante, com (destino padrão) somente leitura na coluna Banco de Dados de 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.
Na página Segurança do Agente de Distribuição , clique no botão de propriedades (...) ao lado do Assinante para acessar a caixa de diálogo Segurança do Agente de Distribuição .
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 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 de instantâneo; e permissão de leitura no diretório de instalação do provedor OLE DB. Para obter mais informações sobre a PAL, consulte Secure the Publisher (Proteger o publicador).
No Conectar ao Assinante, nos campos Logon, Senhae 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.
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).
Na página Inicializar Assinaturas , especifique se a assinatura deve ser inicializada e caso positivo, onde deve ser inicializada.
Desmarque Inicializar somente se você tiver criado todos os objetos e adicionado todos os dados necessários no banco de dados da assinatura.
Selecione Imediatamente na lista suspensa da coluna Inicializar Quando para que o Agente de Distribuição transfira os arquivos de instantâneo para o Assinante depois que este assistente for concluído. Selecione Na primeira sincronização para que o agente transfira os arquivos na próxima vez que estiver agendado para ser executado.
Na página Ações do Assistente, opcionalmente crie um script para a assinatura. Para obter mais informações, consulte Scripting Replication.
Para manter tabelas no Assinante
- Por padrão, ao habilitar uma publicação para Assinantes que não sejam do SQL Server, o valor da propriedade de artigo pre_creation_cmd é definido como 'drop'. Essa configuração especifica que a replicação deve excluir uma tabela no Assinante se o nome dela corresponder ao nome da tabela no artigo. Se tiver tabelas existentes no Assinante que deseja manter, use o procedimento armazenado sp_changearticle para cada artigo; especifique o valor 'none' 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
Expanda a pasta Replicação e, em seguida, a pasta Publicações Locais .
Clique com o botão direito do mouse em uma publicação e clique em Exibir Status do Agente de Instantâneo.
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".
Usando o Transact-SQL
Crie assinaturas push para não Assinantes do SQL Server de forma programática, usando procedimentos armazenados de replicação.
Importante
Quando possível, solicite que os usuários 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 que não seja do SQL Server
Instale o provedor OLE DB mais recente para o Assinante que não seja do SQL Server tanto no Publicador quanto no Distribuidor. Para os requisitos de replicação de um fornecedor OLE DB, consulte Non-SQL Server Subscribers, Oracle Subscribers, IBM DB2 Subscribers.
No banco de dados de publicação do Publicador, verifique se a publicação oferece suporte a não Assinantes do SQL Server executando sp_helppublication (Transact-SQL).
Se o valor de enabled_for_het_sub for 1, há suporte para não Assinantes do SQL Server.
Se o valor de enabled_for_het_sub for 0, execute sp_changepublication (Transact-SQL) especificando enabled_for_het_sub para
@propertye true para@value.Observação
Antes de alterar enabled_for_het_sub para true, você deve remover quaisquer subscrições existentes da publicação. Não é possível definir enabled_for_het_sub como true quando a publicação também oferece suporte à atualização de assinaturas. Alterar enabled_for_het_sub afetará outras propriedades de publicação. Para obter mais informações, consulte Non-SQL Server Subscribers.
No Publicador, no banco de dados de publicação, execute sp_addsubscription (Transact-SQL). Especifique
@publication,@subscriber, um valor igual a(default destination)para@destination_db, um valor igual a push para@subscription_typee um valor igual a 3 para@subscriber_type(especifica um provedor OLE DB).No Publicador, no banco de dados de publicação, execute sp_addpushsubscription_agent (Transact-SQL). Especifique o seguinte:
Os parâmetros
@subscribere@publication.Um valor igual a (destino padrão) para
@subscriber_db,As propriedades da fonte de dados não SQL Server para
@subscriber_provider,@subscriber_datasrc,@subscriber_location,@subscriber_provider_stringe@subscriber_catalog.As credenciais do Microsoft Windows usadas para executar o Agente de Distribuição no Distribuidor para
@job_logine@job_password.
Observação
As conexões feitas por meio da Autenticação Integrada do Windows sempre usam as credenciais do Windows especificadas por
@job_logine@job_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 igual a 0 para
@subscriber_security_modee as informações de logon do provedor OLE DB para@subscriber_logine@subscriber_password.Agendamento da tarefa do Agente de Distribuição para esta assinatura. Para obter mais informações, consulte Specify Synchronization Schedules.
Importante
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_passwordsã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, confira Habilitar conexões criptografadas para o mecanismo de banco de dados (SQL Server Configuration Manager).