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

Откуда:
Сообщений: 10
Собственно, вынужденно и в спешке, пришлось в конце года переходить с антикварной машины с MS SQL Server 2000 на новый, но необустроенный сервер с MS SQL Server 2008 R2. На сервере крутится несколько баз, с которыми работают клиентские программы. ISUF и EOD, если кому-то что-то сказали эти названия. Буквально в тот же вечер, обнаружилось, что клиентские машины, работающие с сервером, необъяснимым образом подвисают на произвольное время от половины, до нескольких минут, потом отвисают и работают дальше. Перестаёт отвечать эксплорер, но каких-либо сбоев не выдаётся. Методом исключения, пришли к выводу, что корень зла, программа EOD, принимающая документы в электронном виде и заливающая их в базу. В логах MS SQL постоянно вылезают следующие строки:

Date,Source,Severity,Message
12/26/2016 17:59:23,spid69,Unknown,Setting database option RECOVERY to SIMPLE for database ******2016_Farch.
12/26/2016 17:59:23,spid69,Unknown,Setting database option RECOVERY to RECMODEL_70BACKCOMP for database ******2016_Farch.
12/26/2016 17:59:23,spid69,Unknown,Setting database option RECOVERY to SIMPLE for database ******2016_Farch.
12/26/2016 17:59:23,spid69,Unknown,Setting database option RECOVERY to RECMODEL_70BACKCOMP for database ******2016_Farch.
12/26/2016 17:59:22,spid69,Unknown,Setting database option RECOVERY to SIMPLE for database ******2016_Farch.
12/26/2016 17:59:22,spid69,Unknown,Setting database option RECOVERY to RECMODEL_70BACKCOMP for database ******2016_Farch.
12/26/2016 17:55:17,Backup,Unknown,Database was restored: Database: ******2016_FArch<c/> creation date(time): 2016/12/16(15:38:25)<c/> first LSN: 12912:24:37<c/> last LSN: 12912:40:1<c/> number of dump devices: 1<c/> device information: (FILE=2<c/> TYPE=DISK: {'E:\Backup\******2016_FArch-1726-12-2016'}). Informational message. No user action required.
12/26/2016 17:55:17,Backup,Unknown,Restore is complete on database '******2016_FArch'. The database is now available.

Бэкап выполнен руками, а вот пачка смен RECOVERY появляется сама по себе, с интервалом около 5 минут. Насколько можно судить, именно в этот момент, пользователи, как либо обращающиеся к серверу подвисают.

Пожалуйста, помогите решить проблему!
27 дек 16, 13:53    [20052751]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Temnov
Перестаёт отвечать эксплорер, но каких-либо сбоев не выдаётся.
Это что значит? Запрос какой нибудь можно выполнить в этот момент? Например, exec sp_who2?
27 дек 16, 14:07    [20052836]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
ALEKS2
Guest
Temnov
Перестаёт отвечать эксплорер

Интересно, какое отношение имеет "эксплорер" к MS SQL Server?
Ишо можно понять и простить "подвисает КЛИЕНТ MS SQL", но фсе остальное - продукт вашего больного мозга.
27 дек 16, 14:22    [20052893]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
Temnov
Member

Откуда:
Сообщений: 10
alexeyvg,
Подвисают клиентские машины, сервер работает нормально и запрос выполнить можно. Результат отпишу в ближайшее время.

ALEKS2,

"Подвисает эксплорер", это означает что на клиентских машинах, которые в этот момент работали с SQL-Server перестает отвечать процесс "explorer.exe" (помимо клиента SQL Server), и через минуту-две, начинает работать нормально. Если отключить программу СЭД, пропадают записи в логах SQL Сервера и, соответственно, подвисания. Как одно связано с другим - выше понимания "моего больного мозга". Может и не связано, но совпадает с вызывающей уважение регулярностью.
27 дек 16, 14:40    [20052972]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
Eleanor
Member

Откуда:
Сообщений: 3199
Temnov
Если отключить программу СЭД, пропадают записи в логах SQL Сервера и, соответственно, подвисания. Как одно связано с другим - выше понимания

Видимо, у вас программа СЭД раз в 5 минут подсоединяется к ***2016_Farch и изменяет режим восстановления на SIMPLE.
Потом она же выполняет какие-то тяжелые запросы, которые всех тормозят.
Запросы надо профайлером смотреть.
27 дек 16, 16:00    [20053326]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6801
у вас там AUTO_CLOSE завёлся :)
27 дек 16, 16:03    [20053347]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
Temnov
Member

Откуда:
Сообщений: 10
Покопавшись в результатах, выдаваемых sp_who2, получил результат:

Сперва события лога:

Date,Source,Severity,Message
12/27/2016 16:51:22,spid75,Unknown,Setting database option RECOVERY to SIMPLE for database ****2016_Farch.
12/27/2016 16:51:22,spid75,Unknown,Setting database option RECOVERY to RECMODEL_70BACKCOMP for database ****2016_Farch.

spid процесса, меняющего режим восстановления - 75

В момент появления записи в логе и соответственно, подвисания невезучих клиентских машин, результат, выдаваемый sp_who2 (кусочек),

75 sleeping sa SERVER1 . ****2016 AWAITING COMMAND 1517 25 01.12.2027 16:51 AutoImport EOD Server 75 0

База ****2016_Farch к этому моменту, уже не задействована. База ****2016, это основная база данных в которой работают пользователи. Farch - это вспомогательная база, где хранятся графические файлы (сканы документов).

Eleanor,

Это понятно, что меняет режим восстановления. Но непонятно - зачем и каким боком оно касается всеобщих тормозов. Про профайлер, если не сложно, поподробнее, я действительно полнейший нуб в SQL- сервере.

TaPaK,

То же самое, если не сложно, то на пальцах и для малообразованных в данном вопросе людей поясните, пожалуйста.
27 дек 16, 16:19    [20053433]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
londinium
Member

Откуда: Киев
Сообщений: 1193
автор
То же самое, если не сложно, то на пальцах и для малообразованных в данном вопросе людей поясните, пожалуйста

в SSMS правой кнопкой по БД ->Properties. Поставить "AUTO CLOSE"=false
27 дек 16, 16:23    [20053446]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
Temnov
Member

Откуда:
Сообщений: 10
londinium,
Стоит "False" во всех базах.
27 дек 16, 16:29    [20053473]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
lkajda
Guest
По поводу RECMODEL_70BACKCOMP

http://stackoverflow.com/questions/4935641/cannot-enable-select-into-bulkcopy-on-sql-server-2005-database-using-sp-dboption
27 дек 16, 16:34    [20053494]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Temnov
alexeyvg,
Подвисают клиентские машины, сервер работает нормально и запрос выполнить можно. Результат отпишу в ближайшее время.

Тогда смотрите, что там происходит на сервере, и почему клиентские машины "подвисают".
Например, в результатах sp_who2 есть столбец block by, он показывает, "кто блокирует". Если он не пустой, значит, процессы кем то блокированы.
Ещё можно смотреть профайлером.
Temnov
Про профайлер, если не сложно, поподробнее, я действительно полнейший нуб в SQL- сервере.
Профайлер - средство, которое показывает, какие запросы выполняются к серверу.
Запустите его, настройте "трассу", и смотрите, что там кто выполняет.
27 дек 16, 17:33    [20053731]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
Temnov
Member

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

Нагуглил, хотя и не совсем понял применение этой страницы, но зато вылез на db_option. И после чего, записав поведение сервера в профайлере, нашел такую вот строчку:

SQL:BatchStarting EXEC sp_dboption '****2016_Farch', 'select into/bulkcopy', 'true' AutoImport EOD Server sa 4980 72 2016-12-27 18:13:42.600

Может это быть корнем зла? Если да, то какие дальнейшие действия?
27 дек 16, 17:35    [20053738]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Temnov
Может это быть корнем зла?
Нет.
Сами по себе эти сообщения не страшны, эта смена опции ничего не тормозит.
27 дек 16, 17:42    [20053752]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
lkajda
Guest
С клиентской машины данные через bcp не грузятся на сервер ?
Это бы объясняло и зависание windows explorer.
Понаблюдайте на клиентской машине за очередями дисков в performance monitor.
27 дек 16, 17:47    [20053772]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
Eleanor
Member

Откуда:
Сообщений: 3199
Temnov
Это понятно, что меняет режим восстановления. Но непонятно - зачем и каким боком оно касается всеобщих тормозов.

Просто бессмысленная команда. С тормозами Setting database option никакак не связаны.
Например, 1C тоже делает такие бессмысленные действия.

В профайлере подозрительными могут быть запросы, которые дают очень высокие значения в колонках cpu, reads или writes.
cpu - если на Sql Server высокая нагрузка на процессор в момент проблем.
reads, writes - если очень медленно откликаются диски (средние значение Disk sec/Read, Disk sec/Write в вашем случае, видимо превращаются в секунды)

Либо смотрите, что долго выполняется (по 2 минуты) в колонке duration.
27 дек 16, 20:50    [20054212]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Eleanor
В профайлере подозрительными могут быть запросы, которые дают очень высокие значения в колонках cpu, reads или writes.
cpu - если на Sql Server высокая нагрузка на процессор в момент проблем.
reads, writes - если очень медленно откликаются диски (средние значение Disk sec/Read, Disk sec/Write в вашем случае, видимо превращаются в секунды)

Либо смотрите, что долго выполняется (по 2 минуты) в колонке duration.
Если приложения прямо таки "намертво зависают", очевидно, каждое клиентское приложение непременно хочет какой то заблокированный ресурс, что то вроде каких то метаданных.

Нужно во время зависания мониторить текущее состояние с помощью sp_who2, смотря на заблокированные процессы.
И пытаться искать в профайлере, что же там такого происходит, что это за такие общие для всех ресурсы, кто их блокирует и зачем.
27 дек 16, 21:04    [20054260]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
Temnov
Буквально в тот же вечер, обнаружилось, что клиентские машины, работающие с сервером, необъяснимым образом подвисают на произвольное время от половины, до нескольких минут, потом отвисают и работают дальше.
Кстати, клиентские машины "подвисают" все разом, синхронно, или по отдельности?
Если синхронно, то см. выше, а если по отдельности, то, как вам уже писали, ищите в профайлере долгие запросы; наверняка это типичный (но нечастый, не массовый) случай "затыков" при переносе на другой сервер, которое, как правило, легко лечится обновлением статистики или ребилдом индекса.
27 дек 16, 21:12    [20054287]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
aleks2
Guest
alexeyvg
Если приложения прямо таки "намертво зависают", очевидно, каждое клиентское приложение непременно хочет какой то заблокированный ресурс, что то вроде каких то метаданных.


Хе-хе.

1. Зависания приложений "хором" в Windows, причем приложений к MS SQL никаким боком не имеющих отношения - НЕ МОЖЕТ зависеть от того, что делает сервер MS SQL. Даже если сервер весь на блокировки изошел - Блокнот на клиенте от этого не зависнет.

2. Зависания приложений "хором" в Windows означает только одно - в этот момент выполняется код драйвера ядра Windows. В момент выполнения такого кода Windows не может переключаться между задачами - это выглядит как зависание всего и фся.

3. Чего за "драйверы ядра" ставят и используют программы тредстартера - мне не видать.
28 дек 16, 06:19    [20055021]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
leguo
Member

Откуда: откуда не ждали
Сообщений: 43
Не помню с чем было связано, но когда переходили на SQL Server 2008
разработчики рекомендовали включать TCP/IP.

Управление компьютером->Службы и приложения->SQL Server Configuration Manager->
А дальше я не помню... Или у сервера включать TCP/IP или у клиентов
(Sql Server Network Configuration или Sql Native Client).
28 дек 16, 08:25    [20055109]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31780
aleks2
Хе-хе.

1. Зависания приложений "хором" в Windows, причем приложений к MS SQL никаким боком не имеющих отношения - НЕ МОЖЕТ зависеть от того, что делает сервер MS SQL.
Хм, нельзя написать такое приложение?
По моему, достаточно простая функциональность - зависание, скоординированное неким центральным сервером.
aleks2
Зависания приложений "хором" в Windows означает только одно - в этот момент выполняется код драйвера ядра Windows.
А по моему, достаточно не обрабатывать события.
28 дек 16, 09:19    [20055217]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
Temnov
Member

Откуда:
Сообщений: 10
alexeyvg, Eleanor,

Подвисают по отдельности, т.к. люди работают всё-таки не синхронно и обращаются к серверу не единомоментно. После кучи экспериментов, я даже как-то засомневался, что проблема именно в SQL сервере. По крайней мере, профайлер не выдаёт чего-либо сверхподозрительного. Самый большой "duration" выдаёт Audit, у него же максимальное число считываний. Но, ему вроде бы и положено так работать.

leguo,

И у клиента и у сервера, стоит TCP/IP в положении Enabled.


В общем, понятно, что ничего непонятно. Но, в любом случае спасибо.

Про ребилд и обновление статистики (в смысле, как ПРАВИЛЬНО делать) подсказать не можете?
28 дек 16, 10:13    [20055334]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
Владислав Колосов
Member

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

это с сервером не связано, какие-то особенности клиентского приложения. Например, приложение, написанное на VFP, при выполнении запроса может блокировать интерфейс другого запущенного приложения на VFP или MS Office.
28 дек 16, 10:58    [20055523]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
aleks2
Guest
alexeyvg
aleks2
Хе-хе.

1. Зависания приложений "хором" в Windows, причем приложений к MS SQL никаким боком не имеющих отношения - НЕ МОЖЕТ зависеть от того, что делает сервер MS SQL.
Хм, нельзя написать такое приложение?
По моему, достаточно простая функциональность - зависание, скоординированное неким центральным сервером.
aleks2
Зависания приложений "хором" в Windows означает только одно - в этот момент выполняется код драйвера ядра Windows.
А по моему, достаточно не обрабатывать события.
28 дек 16, 11:48    [20055770]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
aleks2
Guest
1. Да, эксплорер писали чтобы досадить тредстартеру.
2. Лучше забудь свои домыслы о работе ядра Windows.
28 дек 16, 11:50    [20055784]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы с подвисаниями клиентских машин после перехода с MS SQL Server 2000 на 2008 R2  [new]
Konst_One
Member

Откуда:
Сообщений: 11562
вы на клиентских машинах бы поставили свежие драйвера от нового сервера (клиентские тулзы из сетапа) и переключились бы на новый драйвер в строке соединения (а то может вы там вообще ODBC юзаете , а мы не знаем)
28 дек 16, 11:58    [20055826]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить