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

Откуда: Казахстан, г. Риддер
Сообщений: 44
Добрый день.
Была задача слинковать 2 СУБД PostgreSQL 8.3 х32 и MSSQL 2008 x64. Скачал драйвер к постгре х64, слинковал обе СУБД.
Создал вспомогательную БД и там хранимку
USE [HelpersDB]
GO
/****** Object:  StoredProcedure [dbo].[ofar31Svodka]    Script Date: 11/23/2010 14:17:32 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER PROCEDURE [dbo].[ofar31Svodka]
(
	@datestarttext nvarchar(20),
	@dateendtext nvarchar(20)
) 
AS
BEGIN
	SET NOCOUNT ON;
	DECLARE @datestart datetime,@dateend datetime;
	SET @datestart=CONVERT(datetime,@datestarttext,104);
	SET @dateend=CONVERT(datetime,@dateendtext,104);
	INSERT INTO ofar31Statistic VALUES(GETDATE(),'ofar31',1);
	SET @dateend=DATEADD(HH,23,@dateend);
	SET @dateend=DATEADD(MI,59,@dateend);
	SET @dateend=DATEADD(SS,59,@dateend);
	SELECT (CONVERT(nvarchar(10),[Дата/Время],104)+' '+CONVERT(nvarchar(5),[Дата/Время],8)) AS [Дата/Время]
		,[Продукт],[Цикл],[CU],[PB],[ZN],[FE],[Тв.],IsNull([Код завершения],'') AS [Код завершения]
	FROM [192.168.106.36].[last].[public].[Svodka] 
	where CONVERT(datetime,[Дата/Время],104) between @datestart and @dateend
	ORDER BY [Дата/Время],[Цикл],[Продукт]
END

И вот что интересно - сервер MSSQL вылетает совсем и тишина. тут же через минуту выполняю запрос в том же окне - возвращает данные.
В логах системы такие записи:
Имя журнала:   Application
Источник: Application Error
Дата: 23.11.2010 10:34:29
Код события: 1000
Категория задачи:(100)
Уровень: Ошибка
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: ridqpr.asuof.kz
Описание:
Имя сбойного приложения: sqlservr.exe, версия: 2007.100.1600.22, отметка времени: 0x4875a5e9
Имя сбойного модуля: ntdll.dll, версия: 6.1.7600.16559, отметка времени 0x4ba9b802
Код исключения: 0xc0000374
Смещение ошибки: 0x00000000000c6df2
Идентификатор сбойного процесса: 0x1a7c
Время запуска сбойного приложения: 0x01cb8a12b740a370
Путь сбойного приложения: C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Binn\sqlservr.exe
Путь сбойного модуля: C:\Windows\SYSTEM32\ntdll.dll
Код отчета: f56ad094-f6ba-11df-8e36-002590014133


Имя журнала: Application
Источник: Windows Error Reporting
Дата: 23.11.2010 10:34:29
Код события: 1001
Категория задачи:Отсутствует
Уровень: Сведения
Ключевые слова:Классический
Пользователь: Н/Д
Компьютер: ridqpr.asuof.kz
Описание:
Контейнер ошибки , тип 0
Имя события: APPCRASH
Ответ: Нет данных
Идентификатор CAB: 0

Сигнатура проблемы:
P1: sqlservr.exe
P2: 2007.100.1600.22
P3: 4875a5e9
P4: StackHash_8967
P5: 6.1.7600.16559
P6: 4ba9b802
P7: c0000374
P8: 00000000000c6df2
P9:
P10:

Вложенные файлы:

Эти файлы можно найти здесь:
C:\ProgramData\Microsoft\Windows\WER\ReportQueue\AppCrash_sqlservr.exe_c6d5ecc83c107bf7ba28a03826189eef30fff45c_b5e05f76

Символ анализа:
Повторный поиск решения: 0
Идентификатор отчета: f56ad094-f6ba-11df-8e36-002590014133
Состояние отчета: 4

Может кто то сталкивался с таким?
OS: win 2008x64
23 ноя 10, 11:29    [9823830]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
Glory
Member

Откуда:
Сообщений: 104751
А где текст серверной ошибки ?
23 ноя 10, 11:33    [9823885]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
rutz
Member

Откуда: Казахстан, г. Риддер
Сообщений: 44
Msg 64, Level 20, State 0, Line 0
Ошибка на транспортном уровне при получении результатов с сервера. (provider: Поставщик TCP, error: 0 - Указанное сетевое имя более недоступно.)
23 ноя 10, 11:44    [9823979]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
rutz
Member

Откуда: Казахстан, г. Риддер
Сообщений: 44
Установил пакет обновлений 1 - не помагло.
23 ноя 10, 11:58    [9824092]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
Подниму тему...
Два SQL- сервера.
Прилинкованы к одному и тому же Postgre
Просто запрос к табличке/вьюхе в PG выполняется из обоих SQL прекрасно.

А вот если на одном из них сделать так:
select ....
from POSTGRE..... p
inner join LocalTable lt
    on lt.ID=p.ID

то все работает.
На другом - процесс просто вырубается без объявления войны и каких-либо следов в логах.

linked сервер создавался на втором путем скриптования с первого.
ODBC профиль на первый взгляд настроен одинаково.

Я, конечно продолжу исследования, но помощь не помешает. )))
15 окт 12, 16:59    [13321743]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
UPDATE #1
Запустил сам SQL из консоли (фактически под другим пользователем) - все работает нормально на втором сервере - ничего не слетает.

Пока пошел думать, что там может быть с правами...
15 окт 12, 17:18    [13321860]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
UPDATE #2

Запустил процедуру, которая собственно много-много читает из Postgre.
Вырубился и SQL, запущенный из консоли
15 окт 12, 17:19    [13321870]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
Glory
Member

Откуда:
Сообщений: 104751
DeColo®es
А вот если на одном из них сделать так:
select ....
from POSTGRE..... p
inner join LocalTable lt
    on lt.ID=p.ID


то все работает.
На другом - процесс просто вырубается без объявления войны и каких-либо следов в логах.

Предварительный план выполнения доступен ?
15 окт 12, 17:32    [13321981]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5115
помню была проблема с линкованным постгри. при падении msdtc он "втихую" вырубал процесс сиквела.
15 окт 12, 17:39    [13322026]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
UPDATE #3

Следуем старому мудрому правилу "Если в разных ситуацияз запросы работают по-разному смотрите план выполнения"

Видим, что идет скан из таблицы на удаленном сервере, а потом к ней - MERGE JOIN локальных данных.

Причем теоретически все должно быть в порядке:
в linked-сервер запрос уходит с указанием сортировки по полю id, а локальную таблицу (точнее - это подзапрос из view) он по этому полю в плане сортирует (локально на этом поле даже индекса нет, если что, да и поле не совсем "id" ;) ).

Хинт LOOP JOIN (что в секции JOIN, что в OPTION на весь запрос) - ситуацию лечит.
15 окт 12, 17:40    [13322036]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
DeColo®es
Member

Откуда: Москва
Сообщений: 5503
Блог
Glory
Предварительный план выполнения доступен ?

Ага, доступен.

UPDATE #4

План выполнения вроде бы не при чем.
Просто при MERGE JOIN запрос практически гарантированно "сваливается", а в других вариантах - сервер рушится с некоего N-ного обращения...
Даже просто SELECT * FROM POSTGRE... после многократного вызова.

Именно DTC вроде бы не при чем - когда запускал в консоли, винда просто сказала, что процесс SQL Server скрэшился.
15 окт 12, 17:50    [13322113]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
Glory
Member

Откуда:
Сообщений: 104751
DeColo®es
Просто при MERGE JOIN запрос практически гарантированно "сваливается", а в других вариантах - сервер рушится с некоего N-ного обращения...
Даже просто SELECT * FROM POSTGRE... после многократного вызова.

Кончается место отведенное для кэширования данных с линкед серверов ?
16 окт 12, 09:19    [13324172]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
tunknown
Member

Откуда:
Сообщений: 775
DeColo®es
Именно DTC вроде бы не при чем - когда запускал в консоли, винда просто сказала, что процесс SQL Server скрэшился.

Повторено на 2012x64+SP1 11.0.3128.0 с провайдером Microsoft.ACE.OLEDB.12.0
Для теста "лечится" остановкой MSDTC. Хинты не проверял.
28 мар 16, 12:26    [18985805]     Ответить | Цитировать Сообщить модератору
 Re: PostgreSQL и MSSQL 2008x64bit - падает MSSQL при запросе к Postgre  [new]
Deff
Member

Откуда: Пермь
Сообщений: 18328
Упал на insert'е в 17 тысяч записей.

Поставил последнюю версию драйвера http://www.postgresql.org/ftp/odbc/versions/msi/

Запрос отработал.


Платные драйвера есть еще, если у кого проблема не решилась.
http://www.pgoledb.com/index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=2&virtuemart_category_id=1&Itemid=41
13 май 16, 16:59    [19170094]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить