Configuración de servidores vinculados: servidor ms sql y teradata

Hola a todos! Decidí escribir este artículo por una simple razón: no encontré instrucciones detalladas para configurar un servidor vinculado remoto entre los servidores teradata y ms sql.

Sberbank almacena datos en diferentes servidores: oracle, teradata, mssql. A menudo (a veces, varias veces al día), mis colegas y yo tenemos que realizar acciones que se denominan "efectivas" es muy difícil: escribir una solicitud, exportar datos a un archivo, importarlos al servidor mssql y trabajar. El tiempo dedicado a una solicitud es más de 3 horas (aproximadamente 90 millones de líneas).


Trabajo eficiente

La razón de tales acciones complejas es la falta de privilegios para crear tablas en servidores teradata. Es por eso que "subimos" los datos al servidor ms sql (todo está bien con permisos). Esta fue una introducción, y ahora paso a la descripción de la secuencia de acciones.

Nota : la instrucción se preparó utilizando SQL Server Management Studio 12 y Teradata Client ver 15 (si la versión de Teradata es inferior, por ejemplo 14, entonces se debe descargar software adicional del sitio web oficial).

Paso 1 : configurar una conexión ODBC

Ir: Panel de control \ Sistema y seguridad \ Administración \ Fuentes de datos ODBC

En la sección "DSN personalizado", haga clic en "Agregar". A continuación, seleccione el controlador Teradata y complete los campos.

Importante: recuerde el nombre de la nueva fuente. Aún lo necesitamos.

Paso 2 : servidor vinculado

Open Management Studio - Objetos de servidor - Servidores vinculados: cree un servidor vinculado.

Los campos en la sección General son: Servidor vinculado: un nombre arbitrario, Proveedor: proveedor OLE DB de Microsoft para controladores ODBC, Nombre del producto: ServiceNow, Fuente de datos: el nombre de la fuente de datos que se creó en el "Paso 1".


Sección del servidor vinculado "General"

Campos de la sección "Seguridad": Inicio de sesión remoto: el nombre del KM en el servidor Teradata, Con contraseña, la contraseña del KM en el servidor Teradata.


Sección de seguridad del servidor vinculado

Para que nadie pueda ingresar a través del servidor vinculado (teradata) debajo de mi KM, agregaré una asignación de nombres de inicio de sesión en los servidores locales y remotos. Guardado


Inicios de sesión coincidentes en servidores locales y remotos

Abrir una nueva solicitud. Escribimos select * desde openquery (SERVICENOW, 'select * from dual') y obtenemos un error. Acceso denegado. Adelante


Ejemplo de error

Paso 3 : SQLEXPRESS y KM integrado

Entramos en el Administrador de configuración de SQL - Propiedades del servidor SQL (MSSQLSERVER). Cambie la marca de verificación a "Usar el KM (Sistema local) incorporado para la entrada".


SQLEXPRESS y ultrasonido integrado

Si ejecuta Management Studio 12 como administrador, funcionará. No necesitamos bajo el administrador. Seguimos configurando.

Paso 4 - SQLEXPRESS y servicio de red

Entramos en el Administrador de configuración de SQL - Propiedades del servidor SQL (MSSQLSERVER). Cambie la marca de verificación a "Usar el KM (Servicio de red) incorporado para iniciar sesión", pero en KM NT Service \ MSSQLSERVER .


SQLEXPRESS y servicio de red

Debería ser así.


Administrador de configuración de SQL Server

Paso 5 - Servicio de componentes

win + R - dcomcnfg - computadoras - propiedades mi computadora - pestaña de propiedades por defecto.
Complete el siguiente ejemplo:


Servicio de componentes

Paso 6 - Configurar DCOM

win + R - dcomcnfg - computadoras - mi computadora - configuración DCOM - propiedades de msdainitialize. Copiar ID de aplicación / Código de aplicación. Necesario para buscar un objeto en el registro de Windows.


Msdainitialize propiedades de objeto

Próxima victoria + R - regedit- búsqueda. Debe encontrar el objeto en el registro, mediante el código de la aplicación, e ingresar su permiso.


Msdainitialize registro de objetos

Control total para el administrador de PC local.


Propiedades del objeto msdainitialize en el registro de WINDOWS

Confirmar y guardar. Hicimos esto para que la sección de Seguridad del objeto (código de aplicación) se active.


Sección de seguridad del objeto msdainitialize

Personalizar - Editar (el botón se ha activado) - agregamos derechos completos al servicio NT Service \ MSSQLSERVER .


Derechos completos para el servicio MSSQLSERVER

Debe otorgar derechos al servicio en las secciones: Permiso de inicio y activación, Permiso de acceso, Permiso de configuración. A continuación, debe reiniciar el servicio MSQSQLSERVER: reiniciar / reiniciar el servicio NT \ MSSQLSERVER .

Paso 7 Seguridad COM

win + R - dcomcnfg - computadoras - mi computadora - configuración DCOM
Cambie el valor predeterminado agregando el servicio NT Service \ MSSQLSERVER . Asigne permisos máximos para particiones: Permiso de lanzamiento y activación, Permiso de acceso.


Permiso de acceso

A continuación, debe reiniciar el servicio MSQSQLSERVER: reiniciar / reiniciar el servicio NT \ MSSQLSERVER . Ejecute select * desde openquery (SERVICENOW, 'select * from dual'). Funciona


Ejecución de la consulta

Espero que esta guía le ayude con la configuración de la tecnología de acceso remoto. Ahora importamos los datos inmediatamente al servidor mssql (ahorrando no minutos, sino horas). Una solicitud que solía ejecutarse durante aproximadamente 3 horas (exportación de datos a un archivo, importación a mssql), después de configurar la tecnología, se procesa en 47 segundos (importación del resultado de la consulta inmediatamente a mssql).

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


All Articles