Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
Добрый день.
Прошу помощи.
Есть три сервера.

SQL1-PRINCIPAL
SQL2-FAILOVER
SQL0-WITNESS.


Зеркалирование настроено для для БД1, БД2,БД3. БД4 существует только на SQL2.
Настроен линкед сервер с SQL1 на SQL2, и в обратном направлении (с SQL2 на SQL2).

Т.е. такое ощущение, что линкед сервер смотрит сам на себя, а не тот сервер который указан в настройках.

версия MS SQL на SQL1, SQL2, SQL0

Select @@version
Microsoft SQL Server 2008 R2 (RTM) - 10.50.1617.0 (X64)   Apr 22 2011 19:23:43   Copyright (c) Microsoft Corporation  Enterprise Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1) 

Теперь собственно проблема.
При запросе с SQL1
select * FROM [SQL2].[БД4].[dbo].[ТБЛ1]
ругается, что такой таблицы нет
Msg 7314, Level 16, State 1, Line 1
The OLE DB provider "SQLNCLI10" for linked server "SQL2" does not contain the table ""ТБЛ1"."dbo"."БД4"". The table either does not exist or the current user does not have permissions on that table.

Реально она на SQL2 есть, что видно через менеджмент студию и если выполнить на самом SQL2 запрос
select * FROM[БД4].[dbo].[ТБЛ1]


при просмотре через менеджмент студию, с сервера SQL1, по пути
SQL1-Server Objects-Linked Servers-SQL2
отображаются базы которые настроены как зеркалированные БД1, БД2, БД3 и которые в рабочем состоянии на SQL1. Ту единственную базу БД4 которая должна отображаться, не видно.

при просмотре через менеджмент студию, с сервера SQL2, по пути
SQL2-Server Objects-Linked Servers-SQL1
отображается база БД4, вместо БД1, БД2, БД3

Т.е. такое ощущение, что линкед сервер смотрит сам на себя, а не тот сервер который указан в настройках.
пинг доменного имени сервера проходит нормально, т.е. сервера не путаются, кто из них является SQL1 кто SQL2.
10 ноя 14, 10:19    [16820827]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
Glory
Member

Откуда:
Сообщений: 104760
AlexeyMish
Реально она на SQL2 есть,

or the current user does not have permissions on that table
10 ноя 14, 10:21    [16820836]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
Glory,

Согласен.
Но учитывая, что писал ниже - возникает мысль, что проблема не в правах.

автор
при просмотре через менеджмент студию, с сервера SQL1, по пути
SQL1-Server Objects-Linked Servers-SQL2
отображаются базы которые настроены как зеркалированные БД1, БД2, БД3 и которые в рабочем состоянии на SQL1. Ту единственную базу БД4 которая должна отображаться, не видно.

при просмотре через менеджмент студию, с сервера SQL2, по пути
SQL2-Server Objects-Linked Servers-SQL1
отображается база БД4, вместо БД1, БД2, БД3

Т.е. такое ощущение, что линкед сервер смотрит сам на себя, а не тот сервер который указан в настройках.
пинг доменного имени сервера проходит нормально, т.е. сервера не путаются, кто из них является SQL1 кто SQL2.
10 ноя 14, 10:25    [16820853]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
Glory
Member

Откуда:
Сообщений: 104760
AlexeyMish
возникает мысль, что проблема не в правах.

Мысли - это не инструмент мониторинга.
Вот Профайлер, например, - это инструмент мониторинга.

Сообщение было отредактировано: 10 ноя 14, 10:26
10 ноя 14, 10:26    [16820866]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
Glory,

Спасибо за наводку.

Начал разбор выполнения запросов, увидел, что
Select * FROM
sys.servers AS srv

Возвращает data_source=NULL для моего линкед сервера.
По какой то неведанной логике, MS SQL сервер считает, что раз data_source нет, значит надо работать с данными на самом себе.
С чем связано это поведение разбираться не стал, т.к. задачу решил.
10 ноя 14, 11:09    [16821124]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
Glory
Member

Откуда:
Сообщений: 104760
AlexeyMish
По какой то неведанной логике, MS SQL сервер считает, что раз data_source нет, значит надо работать с данными на самом себе.

по какой неведанной логике вы создали этот linked server ?
10 ноя 14, 11:10    [16821138]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
Glory,

Я свою ошибку понял.
Я не понял, почему при не указанном датасорце ms sql не выдает ошибку, о том, что "не знаю что ты хочешь", а начинает работать с данными которые размещены на нем самом.
Я безусловно рад, что вы мне помогли, но манера изложения ваших мыслей стимулирует свести общение к минимуму.
10 ноя 14, 11:36    [16821305]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
Glory
Member

Откуда:
Сообщений: 104760
AlexeyMish
Я не понял, почему при не указанном датасорце ms sql не выдает ошибку, о том, что "не знаю что ты хочешь", а начинает работать с данными которые размещены на нем самом.

Потому, что кто то сделал так ?

A. Using the Microsoft SQL Server Native Client OLE DB Provider
The following example creates a linked server named SEATTLESales. The product name is SQL Server, and no provider name is used.

USE master;
GO
EXEC sp_addlinkedserver
'SEATTLESales',
N'SQL Server'
GO
10 ноя 14, 11:38    [16821318]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
Glory,

Кто-то сделал так.
EXEC master.dbo.sp_addlinkedserver @server = N'SQL1', @srvproduct=N'MS SQL 2008', @provider=N'SQLNCLI10'
Я конечно весьма слаб в MS SQL, но мне кажется, что указание параметра @server = N'SQL1' дает достаточное основание ругнуться, при пустом @datasrc.
10 ноя 14, 11:45    [16821375]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
Glory
Member

Откуда:
Сообщений: 104760
AlexeyMish
Кто-то сделал так.
EXEC master.dbo.sp_addlinkedserver @server = N'SQL1', @srvproduct=N'MS SQL 2008', @provider=N'SQLNCLI10'

И что неправильного в этом документированном синтаксисе ?

AlexeyMish
Я конечно весьма слаб в MS SQL, но мне кажется, что указание параметра @server = N'SQL1' дает достаточное основание ругнуться, при пустом @datasrc.

Вы весьма слабы в чтении хелпа

Сообщение было отредактировано: 10 ноя 14, 11:49
10 ноя 14, 11:48    [16821404]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
AlexeyMish
Member

Откуда:
Сообщений: 71
Glory,

Ок
10 ноя 14, 11:54    [16821442]     Ответить | Цитировать Сообщить модератору
 Re: Не корректная работа зеркалированных серверов MS SQL 2008 при работе с линкед сервером.  [new]
Crimean
Member

Откуда:
Сообщений: 13148
совет - разрешите для линкедов RPC, проверяйте сервера посредством
exec server.master..sp_exectesql N'select @@servername'
например, что ли
10 ноя 14, 13:20    [16822077]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить