リンクサーバーをリロードする方法は?


14

Microsoft SQL Server 2014 Enterprise Editionを使用しています。サーバーを再起動するか、MSSQLSERVERサービスを停止する必要があるリンクサーバーで問題が発生します。サーバーが再び実行されると、(DB2への)リンクされたサーバーは正しく機能せず、SQL Serverは次のエラーを表示します。

メッセージ7302、レベル16、状態1、行10
リンクサーバー "Airspe"のOLE DBプロバイダー "DB2OLEDB"のインスタンスを作成できません。

サーバーを数回再起動した後にのみ、リンクサーバーが機能し始めます。

  1. リンクサーバーを起動するためにサーバーを数回再起動する必要があるのはなぜですか?
  2. 他の解決策はありますか?

これは、リンクサーバーの1つを作成するスクリプトです。

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'

これはプロバイダー構成です。 provider_configuration

回答:


1

DB2 Linkの構成に何か不足していると思います。

接続文字列は、この最初のようになります。

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;

欠落しているパラメーターを追加してください。システムが自動/ランドパラメーターを設定しないようにして、問題を解決する必要があります。



0

コミュニティwikiの回答

問題はアーキテクチャにありました。32ビットありました。システムをSQL Server 2014 Enterprise 64ビットを使用する別のサーバーに移行しました。すべての問題は解決しました-MelgoV(質問作成者)。


彼らが他の人を助ける場合に備えて、コメントに残された他の提案:

構成の変更時を除き、再起動する必要があるのは通常の動作ではありません。コアデータベースの安定性を重視する場合は、インプロセスオプションを無効にする必要があります。そうしないと、リンクサーバードライバーのエラーによりエンジンがクラッシュする可能性があります。

動作するのは簡単なことではなく、たとえばネットワークを介してセキュリティ資格情報を提示するためにどのように、何を使用するかなど、多数のノックオン効果があります。あなたがその道を下るなら、それを解くために一日を費やすことを期待してください。


問題は、Microsoftドライバー自体に関係している可能性があります。代わりにIBM提供のドライバーを使用してください。これをインストールする手順については、こちらをご覧ください。多くの場合、ベンダーが提供するドライバーははるかに優れており、Microsoftから提供されているドライバーと比較して、安定性とパフォーマンスが向上しています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.