Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Запрос на различных серверах

Запрос на различных серверах
Я
   vasiliy_oren
 
17.05.21 - 12:35
Доброго времени суток Дамы и Господа.
И опять прошу Вашей помощи :)
Вкратце суть проблемы: Есть сервер, на котором крутиться MS SQL и 1С. Купили такой же сервер и решили перенести 1С на новый сервер, а на старом оставить MS SQL.
Сказано, сделано. На новом сервере развернули 1С (тот же релиз, что и на старом).
Но при проверке работоспособности возникла абсолютно непонятная ситуация:
При работе со старым сервером (подключение к службе 1С старого сервера), все данные корректы.
При подключении к новому серверу (подключение к службе 1С нового сервера, подключение к СУБД старого сервера), при выполнении запроса (идентичный запрос, что на новом, что на старом сервере), результат запроса теряет периоды, и, соответственно, выдает неверную информацию.
Примеры результатов запросов:
Результат запроса старого сервера:
https://cloud.mail.ru/public/ttqM/pPxapzDJ1

Результат запроса нового сервера:
https://cloud.mail.ru/public/QbJm/DYMN8iKLr

Возможно проблема в том, что на старом сервере стоит Win 2012, а на новом Win 2008.

Так же помню, что несколько лет назад читал о данной проблеме, и решением было установка WorkFlow для SQL, но нигде сейчас не могу найти описание и решение подобной проблемы.

Если кто то сталкивался с данной проблемой и успешно решил ее, прошу помочь :)

Заранее огромное спасибо!
 
 Партнерская программа EFSOL Oblako
   arsik
 
1 - 17.05.21 - 12:40
Извиняюсь, но все же.. У вас 2 коннекта к 1й базе SQL одновременно?
   H A D G E H O G s
 
2 - 17.05.21 - 12:52
Мммм, загадки Жака Фреско.
Ну, допустим, первую ошибку вы сделали, когда решили разнести SQL и 1С.

Что по периодам - возможно смещение дат в 2000 не поставили, но не похоже.
И да, подключаться к одной SQL базе с разных серверов 1С чревато нарушением целостности.
   vasiliy_oren
 
3 - 17.05.21 - 12:53
(1) Да, все верно, 2 коннекта.
Один на старом (был изначально), второй на новом.
Оба коннекта отдельные кластеры: Старый - подключение localhost, новый - имя сервера. (2) 

(2) Семщение дат проверил, все ок, на новом сносил 1С, ставил, бестолку.
На новом пока никто не работает.

Ну, допустим, первую ошибку вы сделали, когда решили разнести SQL и 1С. - Почему?
   vasiliy_oren
 
4 - 17.05.21 - 12:55
(2) Оба сервера соединены 10 Гб сетью, так что обмен между ними не будет "узким" местом
   ДенисЧ
 
5 - 17.05.21 - 12:57
Два сервера 1с коннектятся к одной sql-базе? Руки давно не обрывали? Или уже оборвали и пришили на законное место?
   arsik
 
6 - 17.05.21 - 12:59
(3) (5) :)) Ну это ненадолго, надеюсь бэкапы делаются. Хотя с такими кривыми руками бэкап не поможет.
   H A D G E H O G s
 
7 - 17.05.21 - 13:00
(4) Будет
   vasiliy_oren
 
8 - 17.05.21 - 13:01
(5) Еще раз - на новом сервере никто не работает, до перехода на новый сервер все пользователи работают на старом сервере. Никаких изменений в СУБД на новом сервере не производиться - только выборка данных по запросам. Как раз и наткнулся на такую проблему при проверке.
   vasiliy_oren
 
9 - 17.05.21 - 13:04
Друзья, ок, тогда подскажите, почему эта схема, которая предложена и 1С в том числе не имеет права на жизнь. Ок, отключил новый коннектор, но вопрос остался открытым
   Йохохо
 
10 - 17.05.21 - 13:05
если на периоды обратить внимание результаты совпадут?
   fisher
 
11 - 17.05.21 - 13:06
(0) Не слышал про такое чудо. Покажи проблемный запрос. Не исключено, что он настолько кривой, что способен выдавать недетерминированный результат в разном окружении.
(9) Да имеет. И многие так работают. Просто когда на одном серваке - плюшки к производительности.
   vasiliy_oren
 
12 - 17.05.21 - 13:11
(11) В том то и дело, что любой запрос, который имеет реквизиты типа дата :(
По производительности - как раз и будем проверять, если производительность будет ниже - вернемся на балансировку
   vasiliy_oren
 
13 - 17.05.21 - 13:12
(10) Да, если разгруппировать запрос - данные идентичны, но без дат в реквизитах типа даты
   vasiliy_oren
 
14 - 17.05.21 - 13:13
(11) Стандартные запросы в УТ 10. Сомневаюсь, что 1Сники в своей типовой конфе могут так накосячить со всеми запросами
   fisher
 
15 - 17.05.21 - 13:14
(12) Тогда очень похоже что разное смещение дат в кластерах настроено. Как выше и говорили.
   H A D G E H O G s
 
16 - 17.05.21 - 13:16
Что говорит профайлер?
   H A D G E H O G s
 
17 - 17.05.21 - 13:16
(12) "вернемся на балансировку"

Это что за чудо?
   fisher
 
18 - 17.05.21 - 13:19
(17) Это когда система балансирует на остатках ресурсов.
   vasiliy_oren
 
19 - 17.05.21 - 13:20
(15) SQLYOffs=2000; на обоих настройках кластера. Перепроверил раза 3 или 4
   vasiliy_oren
 
20 - 17.05.21 - 13:22
(17) Это как раз вторая схема, которую предлагает 1С - 1 сервер - 1с И SQL, 2 сервер - только 1С. Рабочий сервер сервера 1 - главный, и балансирует (распределяет) сесии по двум серверам
   fisher
 
21 - 17.05.21 - 13:24
(19) Интересно. Тогда давай подробности. Неправильно работает отбор по датам или вообще неправильно отображается информация в полях типа "Дата"?
(20) То есть у вас сейчас два рабочих сервера в кластере? На разных хостах и куплено две серверных лицензии 1С?
   vasiliy_oren
 
22 - 17.05.21 - 13:32
(21) Да, все верно. Было 2 сервера, на обоих стоят 2 серверные лицензии, сейчас старый сервер заменили на новый.
Какие именно подробности? Примеры выполнения запроса на обоих серверах я указал.
Какие данные еще могут быть нужны?
   программистище
 
23 - 17.05.21 - 13:49
сделай копию базы и подключись новым сервером к копии и проверь, должно работать нормально, проверял?
может разные версии платформы 1с?
   ptiz
 
24 - 17.05.21 - 13:59
(0) Кластер должен быть один, точка входа - одна. Если вы сделали 2 кластера к одной базе в СУБД, это точно не рекомендации 1С.
   vasiliy_oren
 
25 - 17.05.21 - 14:05
(24) Хорошо, согласен, до рабочего дня я добавил новый кластер, начал его тестировать, но возникла такая проблема, которая описана выше.
Возможно эта ошибка связана как раз с тем, что используется 2 кластера, попробую сегодня после раб дня удалить старую точку входа и проверить новую, но, думаю, ошибка останется
   H A D G E H O G s
 
26 - 17.05.21 - 14:08
(20) Жесть, как она есть
   vasiliy_oren
 
27 - 17.05.21 - 14:24
   программистище
 
28 - 17.05.21 - 14:27
Удивляет два кластера, наверное
а должно быть Кластер 1, а там два сервера тогда уж
   fisher
 
29 - 17.05.21 - 14:28
(22) > Какие именно подробности?
Я вроде бы внятно сформулировал. Но повторю еще раз.
Неправильно работает отбор по датам или вообще неправильно отображается информация в полях типа "Дата"?
   vasiliy_oren
 
30 - 17.05.21 - 14:32
(29) Неправильно отображается информация в полях типа "Дата". Приложил 2 запроса с двух серверов - в первом указаны верные даты, во втором - все даты - "Пустые" даты 1С
 
 
   vasiliy_oren
 
31 - 17.05.21 - 14:33
То есть при получении дат из СУБД 1С получает пустые даты (не неправильные даты, ка при неверном смещении дат, а именно пустые).
Все остальные даты 1С получает верно
   H A D G E H O G s
 
32 - 17.05.21 - 14:36
(27) Во времена когда есть многоядерные процессоры, кто то балуется балансировкой нагрузки.
   fisher
 
33 - 17.05.21 - 14:41
(31) Любопытно. Любой простой запрос в консоли к любой таблице регистра или документов корректно отрабатывает отбор на период, но при этом отображает пустые даты?
   fisher
 
34 - 17.05.21 - 14:44
(31) И что такое "все остальные даты"? А какие в 1С даты не из СУБД?
ТекущаяДата(), что ли?
   Почему 1С
 
35 - 17.05.21 - 14:44
(32) Есть еще такое понятие как отказоустойчивость, сломался один и серверов кластера работает другой, только у 1С это не совсем так )
   vasiliy_oren
 
36 - 17.05.21 - 14:47
(34) Да, сорри, неверно написал. Пустыми являются реквизиты с типом дата. Все остальные реквизиты (примитивные, ссылка, и т. д.) получаются в запросе идентично.
   fisher
 
37 - 17.05.21 - 14:50
(36) А отбор по дате работает при этом корректно в запросе?
   vasiliy_oren
 
38 - 17.05.21 - 14:56
Да. Запрос возвращает ровно столько строк, сколько периодов нужно взять, например из РН
   fisher
 
39 - 17.05.21 - 15:02
Уникальная фигня. Никогда про такое не слышал. Первым делом я бы попробовал поставить на этот сервак того же сиквельного клиента, что и на основном сервере.
   fisher
 
40 - 17.05.21 - 15:04
"mssql %мояверсиясиквела% native client download" или чего-то в этом духе
   vasiliy_oren
 
41 - 17.05.21 - 15:06
Как раз это и делаю :)
Хотя возможно косяк именно в версии 11.0.2100.60
   hhhh
 
42 - 17.05.21 - 17:21
может региональные настройки другие?
   LoneBull
 
43 - 17.05.21 - 18:34
(0) в (40) дело говорит.
Новые базы использует datetime2, а старый клиент это нормально не поддерживает.
Это как бы должно диагностироваться и выдавать ошибку (а не мусор в данных), но не всегда работает.
   mistеr
 
44 - 17.05.21 - 18:53
(36) А если
    ВЫБРАТЬ '20210517' Как МояДата
   mistеr
 
45 - 17.05.21 - 18:53
(44) Или как там, не помню точно...
   vasiliy_oren
 
46 - 18.05.21 - 06:14
Доброго времени суток.
fisher, все верно, установил Native Client и все заработало.
Спасибо огромное :)
Спасибо всем откликнувшимся :)


Список тем форума
 
2 + 2 = 3.9999999999999999999999999999999...
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.