Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
Есть сложности с таймаутами из .NET приложения во время выполнения бэкапа. Подробнее: Раз в день .NET приложение копирует свежие данные данные в архивную базу, которая выросла уже до 4ТБ. Архивная база лежит на относительно медленном диске (один физический диск). Её бэкап (на медленный носитель) длится 24 часа. Для копирования в архивную базу в приложении открывается SqlDataReader для источника, и передаётся в объект SqlBulkCopy для записи в целевую таблицу архива. Для SqlBulkCopy предватительно настраиваются свойства NotifyAfter и BatchSize. Опционально можно включать транзакцию для всех вставлямых в таблицу данных (т.е. на коннекшине). Если она выключена, испозьзуется UseInternalTransaction = true на SqlBulkCopy. Таймаут для SqlBulkCopy установлен в 0. Таймаут для источника установлен в 120 сек. До сих пор всё было нормально. С некоторого времени приложение начало вылетать по таймауту, если оно выполняется одновременно с бэкапом . Причём очено странно: Некоторые таблицы копируются баз проблем. Для других - в основном с большим количеством BLOB данных копируется некоторое количестро строк, затем секунд через 20 после последней записи вылетает таймаут. Методом тыка: Включил асинхронное обновление статистики для целевой базы - не помогло. Затем ещё уменьшил BatchSize - не помогло. Затем ещё включил транзакцию - помогло . Но остаётся совершенно непонятным причина таймаута. Мож. кто сталкивался или имеет объяснение, буду признателен. ЗЫ: пожалуйста, не предлагайте апгрейтить железо - мой вопрос о причинах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 11:01 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
Alexander UsС некоторого времени приложение начало вылетать по таймауту, если оно выполняется одновременно с бэкапом .В процессе бекапа минимально логируемые операции логируются полностью. Соответственно, увеличивается и время выполнения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 11:29 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
invmAlexander UsС некоторого времени приложение начало вылетать по таймауту, если оно выполняется одновременно с бэкапом .В процессе бекапа минимально логируемые операции логируются полностью. Соответственно, увеличивается и время выполнения. Ишо бы знать бякап какой базы исполняется... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 11:50 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
aleks222Ишо бы знать бякап какой базы исполняется... Выполняется полный бэкап целевой базы - базы архива. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 11:59 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
invmВ процессе бекапа минимально логируемые операции логируются полностью. Соответственно, увеличивается и время выполнения. Спасибо за уточнение. К сожалению оно не меняет картину - установка таймаута для источника 120с, для цели 0с, Вначале пишет несколько блоков записей, потом вылетает примерно через 20 (это переменно) сек. после одного (случайного) их них. А когда вкючил транзакцию на уровне записи в таблицу (дневной импорт) уже 2 раза как отработало без таймаута. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 12:08 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
Alexander Usaleks222Ишо бы знать бякап какой базы исполняется... Выполняется полный бэкап целевой базы - базы архива. Ну дык, чередуйте бякап и чудесное приложение. Сутки через сутки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 12:55 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
aleks222Ну дык, чередуйте бякап и чудесное приложение. Сутки через сутки. Типа "кривые гвозди надо забивать кривыми молотками"? Я же написал, хочу понять причину . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 13:00 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
Alexander Usaleks222Ну дык, чередуйте бякап и чудесное приложение. Сутки через сутки. Типа "кривые гвозди надо забивать кривыми молотками"? Я же написал, хочу понять причину . А что тут нипанятного? Окромя "внешних таймаутов", есть "внутренние таймауты" самого сервера. https://docs.microsoft.com/en-us/sql/t-sql/statements/set-lock-timeout-transact-sql?view=sql-server-2017 Т.е. если что-то не может получить доступ к ресурсу за 20 сек - это убивается с ошибкой. Если ты озаботишься выводом ошибки MS SQL в своем приложении - станет понятнее. Ну, или профайлером лови. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 13:55 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
aleks222Окромя "внешних таймаутов", есть "внутренние таймауты" самого сервера. https://docs.microsoft.com/en-us/sql/t-sql/statements/set-lock-timeout-transact-sql?view=sql-server-2017 ... Залогил значение @@LOCK_TIMEOUT для коннекшина на целевую базу. Выдаёт -1 Может есть ещё другие параметры для внутренних таймаутов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 14:45 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
Alexander Us, Ожидания сессии анализируйте - sys.dm_exec_session_wait_stats Если версия не позволяет, то через extended events - https://blog.sqlauthority.com/2016/05/28/sql-server-finding-waits-session-extended-event-wait_info/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 15:01 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
invm, Спасибо большое, буду копать. Но может есть параметры, котрые влияют на время ожиданиий сессии? Может их сразу можно подкрутить и посмотреть будет ли эффект? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 15:15 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
Alexander Us, Ставлю ежа, что sql здесь не при чём ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 15:18 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
Alexander Usaleks222Окромя "внешних таймаутов", есть "внутренние таймауты" самого сервера. https://docs.microsoft.com/en-us/sql/t-sql/statements/set-lock-timeout-transact-sql?view=sql-server-2017 ... Залогил значение @@LOCK_TIMEOUT для коннекшина на целевую базу. Выдаёт -1 Может есть ещё другие параметры для внутренних таймаутов? Позор, Ватсон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 17:49 |
|
||
|
Timeout: level 300
|
|||
|---|---|---|---|
|
#18+
aleks222Позор, Ватсон. Холмс ну Вас с Вашими подколами, что Вы конкретно имеете ввиду? А что касается SqlBulkCopy: "Значение 0 означает отсутствие ограничений. Операция массового копирования будет находиться в состоянии ожидания бесконечно долго." Это я знаю, так и установлено, я же написал. Или я что то важное просмотрел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.07.2018, 18:31 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1689424]: |
0ms |
get settings: |
6ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
130ms |
get topic data: |
9ms |
get first new msg: |
6ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 463ms |

| 0 / 0 |
