如何重新加载链接服务器?


14

我正在使用Microsoft SQL Server 2014企业版。链接的服务器出现问题,需要重新启动服务器或停止MSSQLSERVER服务。当服务器再次运行时,(连接到DB2的)链接服务器无法正常工作,并且SQL Server显示此错误:

消息7302,级别16,状态1,行10
无法为链接服务器“ Airspe”创建OLE DB提供程序“ DB2OLEDB”的实例。

仅在几次重新启动服务器后,链接服务器才开始工作。

  1. 为什么需要多次重启服务器才能启动链接的服务器?
  2. 还有其他解决方案吗?

这是创建链接服务器之一的脚本:

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

Answers:


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位;我们现在已将系统迁移到另一台使用64位SQL Server 2014 Enterprise的服务器,并且所有问题都已解决-MelgoV(问题作者)。


如果其他建议有助于他人,请留在评论中:

除了更改配置外,必须重新启动是不正常的行为。如果您关心核心数据库的稳定性,则应禁用in process选项,否则链接服务器驱动程序中的错误可能会导致引擎崩溃。

开始工作并非易事,并且会产生一系列连锁效应,例如,如何以及如何使用它来呈现整个网络的安全凭证。如果您沿着这条路走下去,请期待花费一天的时间来弄清这个问题。


该问题可能与Microsoft驱动程序本身有关。请改用IBM提供的驱动程序。安装说明可在此处找到。供应商提供的驱动程序通常要优越得多:与Microsoft现成的驱动程序相比,它们更稳定,性能更高。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.