Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Este tópico descreve como criar uma subscrição para um Assinante de Server que não seja SQL Server usando SQL Server Management Studio ou Transact-SQL. A replicação transacional e snapshot suporta a publicação de dados para subscritores de sistemas que não sejam SQL Server. Para informações sobre plataformas de Assinantes suportadas, consulte Assinantes Não-SQL Server.
Neste tópico
Para criar uma subscrição para um Assinante que não utilize SQL Server, utilizando:
SQL Server Management Studio (Estúdio de Gestão do Servidor SQL)
Usando o SQL Server Management Studio
Para criar uma subscrição para um Cliente que não seja um SQL Server:
Instale e configure o software cliente apropriado e o(s) fornecedor(es) de OLE DB no Distribuidor SQL Server. Para mais informações, consulte Assinantes Oracle e Assinantes IBM Db2.
Crie uma publicação usando o Assistente de Novas Publicações. Para mais informações sobre a criação de publicações, consulte Criar uma Publicação e Criar uma Publicação a partir de uma Base de Dados Oracle. Especifique as seguintes opções no Assistente de Nova Publicação:
Na página Tipo de Publicação , selecione Publicação Instantânea ou Publicação Transacional.
Na página do Agente de Snapshot, desmarque Criar um snapshot imediatamente.
Cria-se o snapshot após a publicação estar ativada para subscritores que não utilizam SQL Server, para garantir que o Snapshot Agent gera um snapshot e scripts de inicialização adequados para esses subscritores.
Ative a publicação para subscritores que não sejam SQL Server usando a caixa de diálogo Propriedades da Publicação - <PublicationName>. Consulte Propriedades de Publicação, Opções de Subscrição para mais informações sobre este passo.
Crie uma subscrição usando o Assistente de Nova Subscrição. Este tópico fornece mais informações sobre este passo.
(Opcional) Altere a propriedade do artigo pre_creation_cmd para manter as tabelas no Assinante. Este tópico fornece mais informações sobre este passo.
Gera um snapshot para a publicação. Este tópico fornece mais informações sobre este passo.
Sincroniza a subscrição. Para mais informações, consulte Sincronizar uma Subscrição Push.
Para permitir uma publicação para assinantes que não sejam do servidor SQL
Ligue-se ao Publisher no SQL Server Management Studio e depois expanda o nó do servidor.
Expanda a pasta Replicação e depois expanda a pasta Publicações Locais .
Clique com o botão direito na publicação e depois clique em Propriedades.
Na página Opções de Subscrição selecione um valor de Verdadeiro para a opção Permitir Assinantes que não são do Servidor SQL. Ao selecionar esta opção, alteram-se várias propriedades para que a publicação seja compatível com subscritores que não são do SQL Server.
Observação
Selecionar True define o valor da propriedade de artigo pre_creation_cmd para 'drop'. Esta configuração especifica que a replicação deve deixar uma tabela no Assinante se corresponder ao nome da tabela no artigo. Se tiver tabelas existentes no Assinante que pretende manter, utilize 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'.Selecione OK. Solicitar-lhe-ão que crie um novo instantâneo para a publicação. Se não quiser criar um neste momento, use os passos descritos no próximo procedimento "como fazer" mais tarde.
Para criar uma subscrição para um Assinante que não seja do SQL Server
Expanda a pasta Replicação e depois expanda a pasta Publicações Locais .
Clique com o botão direito na publicação apropriada e depois clique em Novas Subscrições.
Na página de Localização do Agente de Distribuição , certifique-se de que está selecionado Executar todos os agentes no Distribuidor . Os subscritores não-SQL Server não suportam a execução de agentes no Subscritor.
Na página Subscritores, clique em Adicionar Subscritor e depois em Adicionar Subscritor não-SQL Server.
Na caixa de diálogo Adicionar Assinante de Servidor Não-SQL, selecione o tipo de Assinante.
Insira um valor no nome da fonte de dados:
Para o Oracle, este é o nome substrato de rede transparente (TNS) que configuraste.
Para a IBM, isto pode ser qualquer nome. É típico especificar o endereço de rede do Assinante.
O nome da fonte de dados introduzido neste passo e as credenciais especificadas no passo 9 não são validados por este assistente. Não são usados por replicação até que o Agente de Distribuição seja executado para a subscrição. Certifique-se de que todos os valores foram testados ligando-se ao Assinante através de uma ferramenta cliente (como sqlplus para Oracle). Para mais informações, consulte Assinantes Oracle e Assinantes IBM Db2.
Selecione OK. Na página Subscritores do assistente, o Subscritor é agora exibido na coluna Subscritores com um (destino predefinido) apenas leitura na coluna Base de Dados de Subscrições:
Para o Oracle, um servidor tem no máximo uma base de dados, pelo que não é necessário especificar a base de dados.
Para IBM Db2, a base de dados é especificada na propriedade Catálogo Inicial da cadeia de ligação DB2, que pode ser introduzida no campo de opções de ligação adicionais descrito mais adiante neste processo.
Na página de Segurança do Agente de Distribuição, clique no botão de propriedades (...) ao lado do assinante para aceder à 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, Palavra-passe e Confirmar palavra-passe, introduza a conta e palavra-passe Microsoft Windows sob as quais o Agente de Distribuição deve executar e faça ligações locais ao Distribuidor.
A conta requer estas permissões mínimas: membro da função fixa db_owner na base de dados de distribuição; membro da lista de acesso à publicação (PAL); permissões de leitura na partilha de instantâneos; e permissões de leitura no diretório de instalação do fornecedor OLE DB. Para mais informações sobre o PAL, veja Secure the Publisher.
Em Ligar ao Assinante, nos campos Login, Palavra-passe e Confirmar palavra-passe , introduza o login e a palavra-passe que devem ser usados para se ligar ao Assinante. Este login deve já estar configurado e ter permissões suficientes para criar objetos na base de dados de subscrição.
No campo Opções de Ligação Adicionais , especifique quaisquer opções de ligação para o Assinante sob a forma de uma cadeia de ligação (a Oracle não exige opções adicionais). Cada opção deve estar separada por um ponto e vírgula. Segue-se um exemplo de uma cadeia de ligação DB2 (as quebras de linha servem para legibilidade):
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 é específica para o servidor DB2 que está a configurar, mas a opção Processar Binário como Carácter deve estar sempre definida como Falso. É necessário um valor para a opção Catálogo Inicial para identificar a base de dados de subscrição.
Na página de Cronograma de Sincronização , selecione um cronograma para o Agente de Distribuição no menu de Agendamento do Agente (o calendário é normalmente Executado continuamente).
Na página Inicializar Subscrições , especifique se a subscrição deve ser inicializada e, em caso afirmativo, quando deve ser inicializada:
Limpe o Initialize apenas se tiver criado todos os objetos e adicionado todos os dados necessários na base de dados de subscrição.
Selecione Imediatamente na lista suspensa na coluna Inicializar Quando para que o Agente de Distribuição transfira ficheiros de instantâneo para o Subscritor após a conclusão deste assistente. Selecione Na primeira sincronização para que o agente transfira os ficheiros na próxima execução agendada.
Na página Ações do Assistente, opcionalmente, crie um script para a subscrição. Para mais informações, consulte Replicação de Scripts.
Para manter tabelas junto do Assinante
- Por defeito, ativar uma publicação para Subscritores que não utilizam o SQL Server define o valor da propriedade do artigo pre_creation_cmd para 'eliminar'. Esta configuração especifica que a replicação deve deixar uma tabela no Assinante se corresponder ao nome da tabela no artigo. Se tiver tabelas existentes no Assinante que pretende manter, utilize 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'.
Gerar um instantâneo para a publicação
Expanda a pasta Replicação e depois expanda a pasta Publicações Locais .
Clique com o botão direito na publicação e depois clique em Ver Situação do Agente de Instantâneos.
Na caixa de diálogo Ver Estado do Agente de Instantâneo - <Publicação>, clique em Iniciar.
Quando o Agente de Snapshot termina de gerar o snapshot, é exibida uma mensagem, como "[100%] Foi gerado um snapshot de 17 artigos."
Usando Transact-SQL
Pode criar subscrições push para subscritores que não sejam SQL Server programaticamente, utilizando procedimentos armazenados de replicação.
Importante
Quando possível, solicite que os usuários insiram credenciais de segurança em tempo de execução. Se você precisar armazenar credenciais em um arquivo de script, deverá proteger o arquivo para impedir o acesso não autorizado.
Criar uma subscrição 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 é do SQL Server tanto no Publicador como no Distribuidor. Para os requisitos de replicação de um provedor OLE DB, veja Subscritores de Servidores Não SQL, Subscritores Oracle, Subscritores IBM Db2.
No Publisher na base de dados da publicação, verifique se a publicação suporta subscritores que não usam o SQL Server executando sp_helppublication (Transact-SQL).
Se o valor de enabled_for_het_sub for 1, são suportados Assinantes de Servidores não SQL.
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 mudar enabled_for_het_sub para verdadeiro, deve cancelar quaisquer subscrições existentes da publicação. Não pode definir enabled_for_het_sub para true quando a publicação também suporta a atualização de subscrições. Mudar enabled_for_het_sub afetará outras propriedades de publicação. Para mais informações, consulte Assinantes Não-SQL do Servidor.
No Editor na base de dados de publicações, execute sp_addsubscription (Transact-SQL). Especifique
@publication,@subscriber, um valor de(default destination)para@destination_db, um valor de push para@subscription_type, e um valor de 3 para@subscriber_type(especifica um fornecedor OLE DB).No Publicador, na base de dados de publicações, execute sp_addpushsubscription_agent (Transact-SQL). Especifique o seguinte:
Os parâmetros
@subscribere@publication.Um valor de (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_string, e@subscriber_catalog.As credenciais do Microsoft Windows sob as quais é executado o Agente de Distribuição no Distribuidor para
@job_logine@job_password.
Observação
As ligações feitas usando a Autenticação Integrada do Windows utilizam sempre as credenciais do Windows especificadas por
@job_logine@job_password. O Agente de Distribuição faz sempre a ligação local ao Distribuidor usando a Autenticação Integrada do Windows. Por padrão, o agente irá ligar-se ao Assinante através da Autenticação Integrada do Windows.Um valor de 0 para
@subscriber_security_modee as informações de login do fornecedor OLE DB para@subscriber_logine@subscriber_password.Um calendário para o trabalho de Agente de Distribuição para esta subscrição. Para mais informações, consulte Especificar Agendas de Sincronização.
Importante
Ao criar uma subscrição push num Publisher com um Distribuidor remoto, os valores fornecidos para todos os parâmetros, incluindo job_login e job_password, são enviados ao Distribuidor em texto simples. Deve encriptar a ligação entre o Publisher e o seu Distribuidor remoto antes de executar este procedimento armazenado. Para obter mais informações, consulte Habilitar conexões criptografadas com o Mecanismo de Banco de Dados (SQL Server Configuration Manager).