Come ricaricare un server collegato?


14

Sto usando Microsoft SQL Server 2014 Enterprise Edition. Si verifica un problema con i server collegati in cui è necessario riavviare il server o arrestare il MSSQLSERVERservizio. Quando il server è di nuovo in esecuzione, i server collegati (a DB2) non funzionano correttamente e SQL Server mostra questo errore:

Messaggio 7302, livello 16, stato 1, riga 10
Impossibile creare un'istanza del provider OLE DB "DB2OLEDB" per il server collegato "Airspe".

Solo dopo aver riavviato il server più volte il server collegato inizia a funzionare.

  1. Perché è necessario riavviare il server più volte per ottenere server collegati?
  2. Ci sono altre soluzioni?

Questo è lo script per creare uno dei server collegati:

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'

Questa è la configurazione del provider: provider_configuration

Risposte:


1

Credo che manchi qualcosa nella configurazione fatta per DB2 Link.

la stringa di connessione dovrebbe assomigliare a questa prima.

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;

Aggiungi i parametri mancanti, in modo che il sistema non imposti i parametri automatici / rando, che dovrebbero risolvere il problema.



0

Risposta wiki della community :

Il problema era l'architettura. Avevamo 32 bit; ora abbiamo migrato il nostro sistema su un altro server con SQL Server 2014 Enterprise a 64 bit e tutti i nostri problemi sono finiti: MelgoV (autore della domanda).


Altri suggerimenti lasciati nei commenti nel caso in cui aiutino gli altri:

Non è normale ricominciare da capo se non durante le modifiche alla configurazione. Dovresti disabilitare l' opzione in process se ti preoccupi della stabilità del database principale, altrimenti errori nel driver del server collegato possono causare l'arresto anomalo del motore.

Non è banale per funzionare e ha una serie di effetti a catena, ad esempio in come e cosa utilizza per presentare le credenziali di sicurezza attraverso la rete. Aspettati di trascorrere una giornata cercando di districarti se segui questa strada.


Il problema potrebbe avere a che fare con il driver Microsoft stesso. Utilizzare invece un driver fornito da IBM . Le istruzioni per l'installazione sono disponibili qui . I driver forniti dal fornitore sono spesso di gran lunga superiori: più stabili e con prestazioni più elevate, rispetto a quelli forniti da Microsoft.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.