Как перезагрузить связанный сервер?


14

Я использую Microsoft SQL Server 2014 Enterprise Edition. Проблема возникает со связанными серверами, где необходимо перезапустить сервер или остановить MSSQLSERVERслужбу. Когда сервер снова работает, связанные серверы (с DB2) не работают должным образом, и SQL Server показывает эту ошибку:

Сообщение 7302, уровень 16, состояние 1, строка 10
Невозможно создать экземпляр поставщика OLE DB "DB2OLEDB" для связанного сервера "Airspe".

Только после перезагрузки сервера несколько раз начинает работать связанный сервер.

  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

Ответы:


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;

Пожалуйста, добавьте недостающие параметры, чтобы система не установила параметры Automatic / rando, которые должны решить проблему.


1

Возможно, вы захотите проверить, что запрос связанного сервера создается или выполняется в контексте пользователя, который является локальным администратором в ОС, чтобы исключить эту проблему

https://support.microsoft.com/en-us/help/2647989/error-message-when-you-try-to-create-an-instance-of-an-ole-db-provider-in-sql- сервера не может создать-ан-экземпляр-из-оле-DB-провайдера


0

Ответ сообщества вики :

Проблема была в архитектуре. У нас было 32 бита; Теперь мы перенесли нашу систему на другой сервер с 64-разрядной версией SQL Server 2014 Enterprise, и все наши проблемы прошли - MelgoV (автор вопроса).


Другие предложения, оставленные в комментариях, если они помогают другим:

Это не нормальное поведение для перезагрузки, кроме как во время изменений конфигурации. Вам следует отключить параметр in process, если вы заботитесь о стабильности вашей основной базы данных - в противном случае ошибки в драйвере связанного сервера могут привести к сбою вашего ядра.

Это не тривиально, чтобы начать работать и имеет множество эффектов, например, как и что он использует для представления учетных данных безопасности в сети. Ожидайте провести день, пытаясь распутать это, если вы пойдете по этому пути.


Возможно, проблема связана с самим драйвером Microsoft. Вместо этого используйте предоставленный IBM драйвер . Инструкция по установке этого может быть найти здесь . Поставляемые поставщиком драйверы часто намного превосходят: более стабильные и с более высокой производительностью по сравнению с теми, которые поставляются «из коробки» Microsoft.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.