¿Cómo recargar un servidor vinculado?

14

Estoy usando Microsoft SQL Server 2014 Enterprise Edition. Se produce un problema con los servidores vinculados donde es necesario reiniciar el servidor o detener el MSSQLSERVERservicio. Cuando el servidor se está ejecutando nuevamente, los servidores vinculados (a DB2) no funcionan correctamente y el servidor SQL muestra este error:

Msg 7302, Nivel 16, Estado 1, Línea 10
No se puede crear una instancia del proveedor OLE DB "DB2OLEDB" para el servidor vinculado "Airspe".

Solo después de reiniciar el servidor varias veces, el servidor vinculado comienza a funcionar.

  1. ¿Por qué es necesario reiniciar el servidor varias veces para obtener servidores vinculados?
  2. ¿Hay otras soluciones?

Este es el script para crear uno de los servidores vinculados:

EXEC master.dbo.sp_addlinkedserver 
@server = N'AIRS', 
@srvproduct=N'Microsoft OLE DB Provider for DB2', 
@provider=N'DB2OLEDB', 
@datasrc=N'###.###.###.##',@provstr=N'Provider=DB2OLEDB;
    Data Source=#####;Persist Security Info=True;Password=**********;
    User ID=######;Initial Catalog=######;
    Network Address=###.###.###;Package Collection=AICOLDP;DBMS Platform=DB2/AS400',
@catalog=N'#####'

EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'AIRS',@useself=N'False',@locallogin=NULL,@rmtuser=N'#####',@rmtpassword='########'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'collation compatible', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'data access', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'dist', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'pub', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'rpc', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'rpc out', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'sub', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'connect timeout', @optvalue=N'0'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'collation name', @optvalue=null
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'lazy schema validation', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'query timeout', @optvalue=N'0'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'use remote collation', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'AIRS', @optname=N'remote proc transaction promotion', @optvalue=N'true'

Esta es la configuración del proveedor: configuración_proveedor

MelgoV
fuente

Respuestas:

1

Creo que falta algo en la configuración realizada para DB2 Link.

la cadena de conexión debería verse así primero.

Provider=DB2OLEDB; User ID=db2user; Password=mypassword; Initial Catalog=mydatabase;
Network Transport Library=TCP; Host CCSID=37;PC Code Page=1208;
Network Address=111.111.111.333; Network Port=446; Package Collection=MSDB2COL; 
Process Binary as Character=False; Connect Timeout=15; Units of Work=RUW;
DBMS Platform=DB2/AS400;Defer Prepare=False;Rowset Cache Size=0; Max Pool Size=100;
Persist Security Info=True;Connection Pooling=True;Derive Parameters=False;

Agregue los parámetros que faltan, para que el sistema no establezca los parámetros automáticos / rando, eso debería resolver el problema.

MarmiK
fuente
0

Respuesta wiki comunitaria :

El problema fue la arquitectura. Teníamos 32 bits; ahora hemos migrado nuestro sistema a otro servidor con SQL Server 2014 Enterprise de 64 bits y todos nuestros problemas han terminado: MelgoV (autor de la pregunta).


Otras sugerencias dejadas en los comentarios en caso de que ayuden a otros:

No es un comportamiento normal tener que reiniciar, excepto durante los cambios de configuración. Debe deshabilitar la opción en proceso si le preocupa la estabilidad de su base de datos principal; de lo contrario, los errores en el controlador del servidor vinculado pueden hacer que su motor se bloquee.

No es trivial comenzar a trabajar y tiene una gran cantidad de efectos secundarios, por ejemplo, en cómo y qué utiliza para presentar credenciales de seguridad en toda la red. Espere pasar un día tratando de desenredar eso si sigue ese camino.


El problema puede tener que ver con el controlador de Microsoft en sí. Utilice un controlador proporcionado por IBM en su lugar. Las instrucciones para instalar esto se pueden encontrar aquí . Los controladores suministrados por el proveedor a menudo son muy superiores: más estables y con un mayor rendimiento, en comparación con los proporcionados por Microsoft.

revs usuario126897
fuente