Comment recharger un serveur lié?

14

J'utilise Microsoft SQL Server 2014 Enterprise Edition. Un problème se produit avec les serveurs liés où il est nécessaire de redémarrer le serveur ou d'arrêter le MSSQLSERVERservice. Lorsque le serveur s'exécute à nouveau, les serveurs liés (à DB2) ne fonctionnent pas correctement et le serveur SQL affiche cette erreur:

Msg 7302, niveau 16, état 1, ligne 10
Impossible de créer une instance du fournisseur OLE DB "DB2OLEDB" pour le serveur lié "Airspe".

Ce n'est qu'après avoir redémarré le serveur plusieurs fois que le serveur lié commence à fonctionner.

  1. Pourquoi est-il nécessaire de redémarrer le serveur plusieurs fois pour obtenir des serveurs liés?
  2. Y a-t-il d'autres solutions?

Voici le script pour créer l'un des serveurs liés:

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'

Voici la configuration du fournisseur: fournisseur_configuration

MelgoV
la source

Réponses:

1

Je crois que quelque chose manque dans la configuration effectuée pour DB2 Link.

la chaîne de connexion devrait ressembler à ceci en premier.

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;

Veuillez ajouter des paramètres manquants afin que le système ne définisse pas les paramètres Automatique / Rando, ce qui devrait résoudre le problème.

MarmiK
la source
0

Réponse du wiki communautaire :

Le problème était l'architecture. Nous avions 32 bits; nous avons maintenant migré notre système vers un autre serveur avec SQL Server 2014 Enterprise 64 bits et tous nos problèmes sont terminés - MelgoV (auteur de la question).


Autres suggestions laissées dans les commentaires au cas où elles aideraient les autres:

Ce n'est pas un comportement normal de devoir redémarrer, sauf lors des changements de configuration. Vous devez désactiver l' option in process si vous vous souciez de la stabilité de votre base de données principale - sinon des erreurs dans le pilote de serveur lié peuvent entraîner le blocage de votre moteur.

Il n'est pas anodin de se mettre au travail et a une multitude d'effets indirects, par exemple sur la manière et les éléments utilisés pour présenter les informations d'identification de sécurité sur le réseau. Attendez-vous à passer une journée à essayer de démêler cela si vous suivez cette voie.


Le problème peut être lié au pilote Microsoft lui-même. Utilisez plutôt un pilote fourni par IBM . Les instructions pour installer ceci peuvent être trouvées ici . Les pilotes fournis par le fournisseur sont souvent bien supérieurs: plus stables et avec des performances supérieures, par rapport à ceux fournis dès le départ par Microsoft.

utilisateur126897
la source