Configurando servidores vinculados: ms sql server e teradata

Olá pessoal! Decidi escrever este artigo por um motivo simples - não encontrei instruções detalhadas para configurar um servidor vinculado remotamente entre os servidores teradata e ms sql.

O Sberbank armazena dados em diferentes servidores: oracle, teradata, mssql. Freqüentemente (às vezes, várias vezes ao dia), meus colegas e eu temos que executar ações que são chamadas de “eficazes” é muito difícil: você escreve uma solicitação, exporta dados para um arquivo, importa-os para o servidor mssql e trabalha. O tempo gasto em uma solicitação é superior a 3 horas (cerca de 90 milhões de linhas).


Trabalho eficiente

O motivo de tais ações complexas é a falta de privilégios para criar tabelas em servidores teradados. É por isso que "carregamos" os dados no servidor ms sql (tudo está bem com as permissões). Esta foi uma introdução e agora volto à descrição da sequência de ações.

Nota : as instruções foram preparadas usando o SQL Server Management Studio 12 e o Teradata Client versão 15 (se a versão do Teradata for menor, por exemplo 14, então é necessário fazer o download de software adicional no site oficial).

Etapa 1 - Configurar uma conexão ODBC

Vá: Painel de Controle \ Sistema e Segurança \ Administração \ Fontes de Dados ODBC

Na seção "DSN personalizado", clique em "Adicionar". Em seguida, selecione o driver Teradata e preencha os campos.

Importante: lembre-se do nome da nova fonte. Nós ainda precisamos disso.

Etapa 2 - Servidor vinculado

O Open Management Studio - Objetos de servidor - Servidores vinculados - cria um servidor vinculado.

Os campos na seção Geral são: Servidor vinculado - um nome arbitrário, Provedor - Microsoft OLE DB Provider para drivers ODBC, Nome do produto - ServiceNow, Fonte de dados - o nome da fonte de dados criada na "Etapa 1".


Seção de servidor vinculado "Geral"

Campos da seção Segurança: Login remoto - o nome do KM no servidor Teradata, Com senha - a senha do KM no servidor Teradata.


Seção Segurança do Servidor Vinculado

Para que ninguém possa acessar o servidor vinculado (teradata) no meu KM, adicionarei um mapeamento dos nomes de login nos servidores local e remoto. Salvo.


Correspondência de logons em servidores locais e remotos

Abra uma nova solicitação. Escrevemos select * from openquery (SERVICENOW, 'select * from dual') e obtemos um erro. Acesso negado. Vá em frente.


Exemplo de erro

Etapa 3 - SQLEXPRESS e KM integrado

Entramos no SQL Configuration Manager - Propriedades do SQL Server (MSSQLSERVER). Altere a marca de seleção para "Use o KM (sistema local) interno para entrada".


SQLEXPRESS e ultra-som integrado

Se você executar o Management Studio 12 como administrador, ele funcionará. Não precisamos do administrador. Continuamos a configurar.

Etapa 4 - SQLEXPRESS e serviço de rede

Entramos no SQL Configuration Manager - Propriedades do SQL Server (MSSQLSERVER). Altere a marca de seleção para "Use o KM (Serviço de Rede) interno para fazer login", mas em KM NT Service \ MSSQLSERVER .


SQLEXPRESS e serviço de rede

Deveria ser assim.


Gerenciador de Configuração do SQL Server

Etapa 5 - Serviço de Componentes

win + R - dcomcnfg - Computers - Properties meu computador - guia Propriedades padrão.
Preencha o exemplo abaixo:


Serviço de Componentes

Etapa 6 - Configurar o DCOM

win + R - dcomcnfg - computadores - meu computador - configuração DCOM - msdainitialize propriedades. Copie o ID do aplicativo / código do aplicativo. Necessário para procurar um objeto no registro do Windows.


Propriedades do objeto Msdainitialize

Próxima vitória + R - regedit- pesquisa. Você precisa encontrar o objeto no registro, pelo código do aplicativo, e inserir sua permissão.


Registro de objeto Msdainitialize

Controle total para o administrador local do PC.


Propriedades do objeto msdainitialize no registro do Windows

Confirme e salve. Fizemos isso para que a seção Segurança do objeto (código do aplicativo) se torne ativa.


Seção de segurança do objeto msdainitialize

Personalizar - Editar (o botão ficou ativo) - adicionamos direitos totais ao serviço NT Service \ MSSQLSERVER .


Direitos totais para o serviço MSSQLSERVER

Você precisa conceder direitos ao serviço nas seções: permissão de inicialização e ativação, permissão de acesso, permissão de configuração. Em seguida, você precisa reiniciar o serviço MSQSQLSERVER - Reiniciar / Reiniciar NT Service \ MSSQLSERVER .

Etapa 7 Segurança COM

win + R - dcomcnfg - computadores - meu computador - configuração DCOM
Altere o valor padrão adicionando o serviço NT Service \ MSSQLSERVER . Atribua permissões máximas para partições: permissão de inicialização e ativação, permissão de acesso.


Permissão de acesso

Em seguida, você precisa reiniciar o serviço MSQSQLSERVER - Reiniciar / Reiniciar NT Service \ MSSQLSERVER . Execute select * from openquery (SERVICENOW, 'select * from dual'). Isso funciona.


Execução de consulta

Espero que este guia ajude com as configurações da tecnologia de acesso remoto. Agora importamos os dados imediatamente para o servidor mssql (economizando não minutos, mas horas). Uma solicitação que costumava ser executada por cerca de 3 horas (exportação de dados para um arquivo, importação para mssql), após a configuração da tecnologia, processada em 47 segundos (importação do resultado da consulta imediatamente para mssql).

Source: https://habr.com/ru/post/pt427437/


All Articles