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

Откуда:
Сообщений: 10
Всем доброго дня! Не смог найти решение своей проблемы, хотя схожие вопросы здесь уже поднимались. Есть SQL Server 2012 (пробовал на рабочем сервере, на тестовом, устанавливал ОС и сервер с нуля на чистую машину), существует задача делать клон базы с помощью стандартной функции копирования базы данных. Создается джоб для копирования базы на тот же сервер под другим именем. И этот джоб через некоторое время (от 30 сек до несколько минут) вылетает с ошибками вида Inner exeption - timeout expired. ... server is not responding. Причем на диске появляются файлы БД, но после ошибки пропадают. В логах пишутся ошибки создания бд и передачи данных из-за таймаута сервера. С маленькими базами да пары сотен Мб проблем нет, но с более-менее крупными такая ошибка со всеми. Один раз только подобное задание прошло без ошибок. Пробовал менять настройку в MSSMS в Registered servers есть такой пункт как Execution time-out, который стоит в значении 0. Изменить его не получается - после выставления параметра и закрытия окна оно снова сбрасывается в ноль. Есть подозрение, что агент не дожидаясь ответа от сервера завершает джоб и эта настройка помогла бы поправить ситуацию. Может кто сталкивался с таким?
14 окт 15, 14:36    [18278074]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
andrewkrasyuk,

Стандартная функция копирования базы это две команды backup database и restore database, все остальное от лукавого.
В вашей джобе команды какие?
14 окт 15, 15:46    [18278604]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
andrewkrasyuk
Member

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

Я понимаю, но по ряду причин, а главное из системы резервного копирования этот вариант не подходит.
Последовательность моих действий такая: в MSSMS для БД выбираю "Copy database", source и destination имя сервера БД, затем выбираю метод SQL management Object method, так как база все время активно используется, в Destination database пишу новое имя, например CLONE_DB1 и указываю каталог расположения файлов для копии. На этом все. Package name и Finish. После чего запускается процедура.
14 окт 15, 15:54    [18278676]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
Ozerov
Member

Откуда: Москва
Сообщений: 3637
andrewkrasyuk
WarAnt,

Я понимаю, но по ряду причин, а главное из системы резервного копирования этот вариант не подходит.

Вот здесь подробнее. Почему ?
Так, на вскидку. Может Copy_Only в Backup подойдет ?
14 окт 15, 16:03    [18278724]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
andrewkrasyuk
WarAnt,

Я понимаю, но по ряду причин, а главное из системы резервного копирования этот вариант не подходит.
Последовательность моих действий такая: в MSSMS для БД выбираю "Copy database", source и destination имя сервера БД, затем выбираю метод SQL management Object method, так как база все время активно используется, в Destination database пишу новое имя, например CLONE_DB1 и указываю каталог расположения файлов для копии. На этом все. Package name и Finish. После чего запускается процедура.


И что мешает открыть package и посмотреть внутренности, или хотя бы добавить туда больший уровень логирования действий?
14 окт 15, 16:05    [18278732]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
andrewkrasyuk
Всем доброго дня! Не смог найти решение своей проблемы, хотя схожие вопросы здесь уже поднимались. Есть SQL Server 2012 (пробовал на рабочем сервере, на тестовом, устанавливал ОС и сервер с нуля на чистую машину), существует задача делать клон базы с помощью стандартной функции копирования базы данных. Создается джоб для копирования базы на тот же сервер под другим именем. И этот джоб через некоторое время (от 30 сек до несколько минут) вылетает с ошибками вида Inner exeption - timeout expired. ... server is not responding. Причем на диске появляются файлы БД, но после ошибки пропадают. В логах пишутся ошибки создания бд и передачи данных из-за таймаута сервера. С маленькими базами да пары сотен Мб проблем нет, но с более-менее крупными такая ошибка со всеми. Один раз только подобное задание прошло без ошибок. Пробовал менять настройку в MSSMS в Registered servers есть такой пункт как Execution time-out, который стоит в значении 0. Изменить его не получается - после выставления параметра и закрытия окна оно снова сбрасывается в ноль. Есть подозрение, что агент не дожидаясь ответа от сервера завершает джоб и эта настройка помогла бы поправить ситуацию. Может кто сталкивался с таким?


исходя из всего описанного, хрустальный шар намекает на банальные блокировки возникающие во время выполнения джоба, а так как в настройки пакеты вы, судя по всему, не полезли то и тамошний таймаут остался по умолчанию.
Да да таймаут настраивается на клиенте, а не на сервере (нет на сервере конечно тоже можно но из разряда я сама сошла с ума).
14 окт 15, 16:08    [18278756]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
andrewkrasyuk
Member

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

Включал полный лог. Ясности это не добавляет.
InnerException-->Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.
CREATE DATABASE failed. Some file names listed could not be created. Check related errors.
StackTrace: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)

Остальное строки из групп шестнацатиричных цифр и путей к файлам. Внутренности пакета смотрел, настроек там не богато и, вроде, все варианты перепробовал. Не понятно почему не могу в свойствах подключения изменить параметр "execution time-out".
14 окт 15, 16:20    [18278816]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
andrewkrasyuk
Member

Откуда:
Сообщений: 10
WarAnt
Да да таймаут настраивается на клиенте, а не на сервере (нет на сервере конечно тоже можно но из разряда я сама сошла с ума).

Никаких настроек таймаута в джобе внутри нет. Изменить параметр таймаута на клиенте не могу, так как он все равно остается ноль, хотя и доступен для редактирования. В чем дело не понимаю - его не изменить, причем на разных серверах.
14 окт 15, 16:24    [18278843]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
andrewkrasyuk
WarAnt,

Включал полный лог. Ясности это не добавляет.

что прям совсем совсем не добавляет? CREATE DATABASE failed
14 окт 15, 16:37    [18278907]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
andrewkrasyuk
Member

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

И create и transfer faild в логах, перед этим стоит сообщение о превышении таймаута. Я может совсем туплю, но какой ясности это должно добавить?)) То, что она не создается и данные не передаются это и так понятно. Интересна причина. Так как один раз такое задание все же отработало успешно. И с маленькими базами на этих серверах с теми же настройками и под теми же пользователями все отрабатывает. Понятно, если бы были сообщения, что нет правл или т.п.
14 окт 15, 16:43    [18278939]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
Glory
Member

Откуда:
Сообщений: 104751
andrewkrasyuk
Не понятно почему не могу в свойствах подключения изменить параметр "execution time-out".

Потому что Registered servers в SSMS не имеют никакого отношения к выполнению джобов, пакетов и пр.

andrewkrasyuk
Внутренности пакета смотрел, настроек там не богато и, вроде, все варианты перепробовал.

Покажите скриншот этого "все варианты перепробовал"
14 окт 15, 16:48    [18278962]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
andrewkrasyuk
WarAnt,

И create и transfer faild в логах, перед этим стоит сообщение о превышении таймаута. Я может совсем туплю, но какой ясности это должно добавить?)) То, что она не создается и данные не передаются это и так понятно. Интересна причина. Так как один раз такое задание все же отработало успешно. И с маленькими базами на этих серверах с теми же настройками и под теми же пользователями все отрабатывает. Понятно, если бы были сообщения, что нет правл или т.п.


Если вас так сильно интересует где таймаут, в каждом пакете, работающим с базой, есть cоnnection, вот в нем и ищите настройки timeout, ну а вообще чтобы проверить "все варианты перепробовал" нужно прочитать 800 страничный опус по ssis, так что я сильно сомневаюсь что вы везде посмотрели:)
14 окт 15, 17:08    [18279073]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
andrewkrasyuk
Member

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

Это правда, не везде =(
Да, у каждого джоба есть настройки connection, а они все как раз ссылаются к тем, что я описывал выше. Есть еще execution time-out в настройках самой MSSMS в разделе Query execution, но как я понял от них ничего не меняется. В этом вопрос пока и заключается - как увеличить время ожидания джобом ответа сервера.
Всем спасибо за ответы. Как доберусь до сервера сделаю скриншоты в настройках джоба, но там все по-умолчанию.
15 окт 15, 10:31    [18281445]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
Glory
Member

Откуда:
Сообщений: 104751
andrewkrasyuk
Да, у каждого джоба есть настройки connection,

Причем тут джоб то ?

andrewkrasyuk
Есть еще execution time-out в настройках самой MSSMS в разделе Query execution,

Причем тут этот таймаут ?
15 окт 15, 10:32    [18281451]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
andrewkrasyuk
Member

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

Потому что я не могу найти что это за таймаут и почему задание завершается с такой ошибкой. Я не смог больше нигде найти похожих настроек, только в настройках подключения и самой студио. Если бы я знал причем тут они или не причем, то вопросов у меня скорее всего не было бы.
15 окт 15, 10:36    [18281465]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
Glory
Member

Откуда:
Сообщений: 104751
andrewkrasyuk
Потому что я не могу найти что это за таймаут и почему задание завершается с такой ошибкой.

Вам уже сказали, что этот таймаут находится внутри пакета
Но вы упоно лезите во все другие места.
Вы еще в ядро windows залезьте в поисках таймаута
15 окт 15, 10:38    [18281472]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
WarAnt
Member

Откуда: Питер
Сообщений: 2423
andrewkrasyuk
Да, у каждого джоба есть настройки connection


facepalm чесслово, я же написал искать timeout в пакете, это значит открыть пакет (файлик такой с расширением .dtsx, расположение которого указано в свойствах соответсвующего шага вашего джоба) студией и искать внутри него, а не в джобе и не в ssms и не в сервере,:) Вы чего, по диагонали ответы читаете?
15 окт 15, 11:06    [18281632]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
andrewkrasyuk
Потому что я не могу найти что это за таймаут и почему задание завершается с такой ошибкой. Я не смог больше нигде найти похожих настроек, только в настройках подключения и самой студио. Если бы я знал причем тут они или не причем, то вопросов у меня скорее всего не было бы.
Тут же всё просто.

1. Сервер только исполняет команды, никакими коннектами и их таймаутами не занимается.

2. Коннектами и таймаутами занимается, управляет, только клиентское приложение.

3. В данном случае клиентское приложение - это программа исполнения пакетов. Она при создании коннекта к серверу указывает таймаут выполнения запросов к серверу.

4. Этот таймаут клиентское приложение берёт из пакета (к счастью, программисты предусмотрели это), а в пакете этот таймаут указывает разработчик пакета.

5. При создании пакета визардом копирования он не спрашивает этот параметр у пользователя. Видимо, потому, что обычному пользователю это слишком сложно, поэтому решили не забивать ему мозги. Что поделать, это недостатки мышкопрограммирования - работать будут только стандартные вещи в простейших случаях.

6. Поэтому пользователю нужно найти этот пакет, и отредактировать его. Или написать свой, или использовать другие средства.
15 окт 15, 11:47    [18281894]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
o-o
Guest
alexeyvg
5. При создании пакета визардом копирования он не спрашивает этот параметр у пользователя. Видимо, потому, что обычному пользователю это слишком сложно, поэтому решили не забивать ему мозги. Что поделать, это недостатки мышкопрограммирования - работать будут только стандартные вещи в простейших случаях.

6. Поэтому пользователю нужно найти этот пакет, и отредактировать его. Или написать свой, или использовать другие средства.

вы не поверите, проще написать, чем сделать.
в любом другом Connection Manager можно выставить таймаут,
а если вскрыть пакет от copy database,
то там не просто Connection Manager, там SMO Connection Manager,
и в нем вообще никакого таймаута нет для редактирования

К сообщению приложен файл. Размер - 46Kb
15 окт 15, 12:32    [18282132]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
o-o
Guest
у обычного Connection Manager оно вот:

К сообщению приложен файл. Размер - 30Kb
15 окт 15, 12:58    [18282266]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
o-o
вы не поверите, проще написать, чем сделать.
в любом другом Connection Manager можно выставить таймаут,
а если вскрыть пакет от copy database,
то там не просто Connection Manager, там SMO Connection Manager,
Ааа, понятно :-( Не думал, что там SMO.
Пишут, никак это не управляется; получается, этот визард есть декорация, и нужно копировать базы самому.
15 окт 15, 13:35    [18282497]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
o-o
Guest
alexeyvg
Не думал, что там SMO.

в Copy database даже выбрать просят: детачем/аттачем копировать или использовать SMO.
я так понимаю, andrewkrasyuk & Co базу хотят в онлайне иметь.
и так и непонятно, чем бэкап не устроил

К сообщению приложен файл. Размер - 28Kb
15 окт 15, 13:43    [18282565]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
andrewkrasyuk
Member

Откуда:
Сообщений: 10
[quot o-o]
alexeyvg
и так и непонятно, чем бэкап не устроил


Из-за того, что один раз в неделю делается полный бэкап, в остальные дни разностный. В настоящий момент это делается сторонним ПО и доступа к архивам у меня нет. Пока это так и мне с этим ничего не сделать. Если я сделаю полный бэкап, то в случае, если вдруг понадобится восстанавливать рабочую базу, то последующие разностные архивы будут бесполезны без сделанного мною бэкапа. А так как этих баз несколько и клонировать базу приходится часто, то через какое-то время будет полный бардак. Я понимаю, что это лютый отстой, но ситуация в настоящий момент такая.
15 окт 15, 13:55    [18282671]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
o-o
Guest
andrewkrasyuk
Если я сделаю полный бэкап, то в случае, если вдруг понадобится восстанавливать рабочую базу, то последующие разностные архивы будут бесполезны без сделанного мною бэкапа.

COPY_ONLY Backups with SQL Server
15 окт 15, 13:59    [18282709]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка по timeout expired  [new]
Zandr
Member

Откуда: Москва
Сообщений: 576
Вторым ответом Ozerov (с помощью "хрустального шара") дал правильный ответ. Но велосипедостроение так просто не остановить!
Цирк с конями!
15 окт 15, 14:31    [18282930]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить