powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
25 сообщений из 37, страница 1 из 2
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231442
ymv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ymv
Гость
Господа!
Есть известная проблема совместимости 1С 7.7 и новых MS SQL: не всегда позволяет войти в базу монопольно.
SQL-ем запускается некий фоновый сервисный процесс; 1С он мешаться не должен, но она об этом не знает. :)
Подробней проблема описана в http://forum.infostart.ru/forum9/topic143958/message1484430/#message1484430
Так вот, вопрос к sql-щикам: можно ли запретить или хотя бы прибить этот процесс? Ни в списке процессов, ни запросом я его у пор не вижу.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231694
ymv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ymv
Гость
И еще вопрос чайницкий. Как всё-таки увидеть этот "фоновый процесс сброса грязных страниц"?

Select * from master.sysprocesses where dbid=DB_ID('my_base') видит только мой 1с-овский коннект, если кто-то подключен к базе.

Вроде как sysprocesses является устаревшей.
Хорошо, на другом форуме мне посоветовали select * from sys.dm_exec_requests.

Даю select * from sys.dm_exec_requests where database_id=DB_ID('my_base')
Не видит даже "обычный" коннект 1С к своей базе данных. Там этих вьюшек dm_* дофига и больше, какую заюзать?
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231725
ymv,

вам не "фоновый процесс сброса грязных страниц" нужно искать, а пользовательский процесс. Попробуйте с помощью sp_who2 поискать, по столбцу BlockedBy.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231728
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
ymvSQL-ем запускается некий фоновый сервисный процесс; 1С он мешаться не должен, но она об этом не знает. :)
Подробней проблема описана в http://forum.infostart.ru/forum9/topic143958/message1484430/#message1484430

ерунду говорите и в том форуме тоже ерунда написана.
сервер сам по себе базы в сингл юзер не переводит.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231734
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
ymvКак всё-таки увидеть этот "фоновый процесс сброса грязных страниц"?

еще одно подтверждение баббанства участников того форума.
ни один сервер не обходится без процесса сброса грязных страниц,
иначе у вас бы на диске никогда информация не обновлялась,
сплошное инмемори было бы, умирающее при остановке/перезапуске сервера.
только этот сброс не меняет статус базы и не переводит ее ни в какой сингл юзер.
граждане хватанули интересное и непонятное слово и раздули теорию,
чтобы остальные, не понимающие физики процесса, от страшного звучания "сброса грязных страниц"
в это поверили.
-------------------------------------------------------------------
если базу кто-то в сингл юзер переводит, то это пользователь,
причем с соответствующими правами, это минимум овнер базы.
другое дело, что вы можете не отловить переход базы в сингл юзер, и спохватиться слишком поздно.
глючный джоб может перевести базу в сингл юзер, отвалиться, не доделав своей работы,
и не вернуть базу в мультиюзер.
вы начинаете мониторить, а нагадившего процесса уже нет.
зато: в еррорлоге сервера будет запись о переводе в сингл юзер.
правда, там всего лишь спид процесса.
логин надо выуживать из дефолтного трэйса.
или аудит настроить
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231742
ymv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ymv
Гость
Отвечаю последовательно.

1. "Пользовательский процесс" базу в этом случае заблокировать не может. Это контролируемо. Единственный "пользовательский процесс" - это сам аппликуха 1С, а я её контролирую.

Еще раз порядок действий:
1.1 1С запускаем монопольно и что-то делаем большое, например "тестирование и исправление". Закрываем 1С.

1.2 Через некоторое время пытаемся зайти через 1С монопольно. Иногда выдаёт любимую ошибку "База данных уже открыта, и одновременно к ней может обращаться только один пользователь".
Стопудово перед этим заходом никаких пользовательских процессов там нет, смотрел всем чем угодно. Да и откуда они? Сама семерка 1С никаких фоновых процессов не делает.
При этом в п.1.2 если зайти не монопольно, таких проблем не возникает.
sp_who2 еще не пробовал, попробую для очистки совести.

2. По поводу single_user. Да, сервер сам по себе базу в single_user не переводит.
Однако когда в п.1.2 1С не может приконнектиться, она после аварийного завершения все-таки оставляет базу в single_user. То есть ей всё-таки удалось приконнектиться и перевести её в single_user, но дальше что-то её испугало, и она в ужасе отвалилась, оставив базу в single_user. Обычная трассировка SQL-профайлером или что я там использовал не показывает, что конкретно её напугало.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231744
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
ну так это ваше 1С в сингл юзер базу перевело,
а не "сброс грязных страниц" (инициированный сервером).
а откуда ж мы знаем, почему какое-то глючное 1С отвалилось,
не переведя обратно базу в мультиюзер?
ну я же с тем же успехом могу спросить: вот у меня в процедуре база переводится в сингл юзер,
делает switch, обратно переводит в мультиюзер.
а теперь скажите мне, почему вчера база осталась в сингл юзере?
а ответов может быть сколько угодно.
может банально, тот, кто запустил процедуру, не дождался окончания и закрыл студию.
а база осталась висеть в сингл юзере.
и как же мне сейчас отловить, кто это был?
ну я-то допустим отловлю.
у меня снимки реквестов пишутся в табличку раз в 5 минут.
процедура здоровая и длится дольше 5 минут.
мне достаточно найти в еррорлоге дату и спид переведшего в сингл юзер,
найти этот спид в моем аудите и наказать логин.
но если это было моментальное действие типа один базу отправил в сингл юзер, а второй прибил эту сессию,
я без дополнительных телодвижений в жизни не найду, чья в этом вина
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231745
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
ymv1. "Пользовательский процесс" базу в этом случае заблокировать не может. Это контролируемо. Единственный "пользовательский процесс" - это сам аппликуха 1С, а я её контролирую.

еще раз.
пользовательский процесс это значит не серверный процесс.
ваше 1С это пользовательский процесс.
именно он и переводит в сингл юзер.
и ваше ""Пользовательский процесс" базу в этом случае заблокировать не может" не принимается,
потому как именно 1С и именно пользовательский процесс
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231753
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
возможно, вы вот это хотели услышать
(только здесь не про то, кто *перевел* в сингл юзер,
а про то, кто вперед вас успел приконнектиться.
это да, серверный процесс)
BOLThe database remains in SINGLE_USER mode even if the user that set the option logs off.
At that point, a different user, but only one, can connect to the database.

Before you set the database to SINGLE_USER, verify the AUTO_UPDATE_STATISTICS_ASYNC option is set to OFF.
When set to ON, the background thread used to update statistics takes a connection against the database,
and you will be unable to access the database in single-user mode.
To view the status of this option, query the is_auto_update_stats_async_on column in the sys.databases catalog view.
If the option is set to ON, perform the following tasks:

Set AUTO_UPDATE_STATISTICS_ASYNC to OFF.

Check for active asynchronous statistics jobs by querying the sys.dm_exec_background_job_queue dynamic management view.

If there are active jobs, either allow the jobs to complete or manually terminate them by using KILL STATS JOB.
ALTER DATABASE SET Options (Transact-SQL)
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231766
ymv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ymv
Гость
Господа, вы меня не совсем поняли.

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

Понятно, что 1С - это не совсем вопрос для этого форума. Вопрос в том, что эту проблему вызвало и как это отловить.
Про "фоновый процесс сброса грязных страниц" - это я процитировал из мануала к патчу 1С для работы с SQL 2005-2012 безвестного аффтара. Более этот термин цитировать не буду.

Чтобы закрыть левый вопрос про single_user, еще раз по шагам приведу действия:

1. 1С заходит монопольно и делает что-то большое и толстое. Выходит.
2. Смотрю на базу. На базе не висит ни одного процесса. И она не в single_user.
3. Захожу монопольно. И вижу с вероятностью 40% любимое сообщение об ошибке. Закрываю 1С.
4. Смотрю базу. Она в single_user. Ну и хрен с ним.

По поводу AUTO_UPDATE_STATISTICS_ASYNC - спасибо, посмотрел в пропертях базы, оно у меня в off. По дефолту.

То есть вопрос собственно в том, как отловить, чаво ей не хватает для полноты счастья. SQL profiler пробовал, но особого материала это не принесло. Результаты трассировки есть по той ссылке.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231776
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
ymv2. Смотрю на базу. На базе не висит ни одного процесса. И она не в single_user.
3. Захожу монопольно. И вижу с вероятностью 40% любимое сообщение об ошибке. Закрываю 1С.

так вы заходите или нет в сингл юзере?
или просто пытаетесь, но обнаруживаете, что уже кто-то до вас зашел?
вот еще раз: сам сервер никогда базу в порядке самодеятельности в сингл юзер не переведет.
значит, переводит ваше 1С.
теперь вы утверждаете, что после того, как 1С "сходило монопольно", база вернулась в мультиюзер, так?
"2. Смотрю на базу. На базе не висит ни одного процесса. И она не в single_user."
и после этого вам не удается зайти в сингл юзере, т.к. кто-то уже опередил.
ну так чтобы опередить, надо базу перевести в сингл юзер.
кто перевел? ваше 1С.
почему вы этого не видите после того, как "1С сходило и вышло"?
ну или потому, что смотрите графически, а ГУИ не отрефрешило
(лучше "смотреть" запросом select user_access_desc from sys.databases),
или потому, что между тем, как 1С сходило, и тем, как вы попытались,
оно снова "сходило".
это можно проверить, глядя в еррорлог сервера.
там все даты перехода в сингл юзер и обратно записаны.
сверьте их с запланированными заходами 1С
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231792
ymv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ymv
Гость
>так вы заходите или нет в сингл юзере?

Не я. 1С. :)

Еще раз последовательность, детализованно.

1) 1С чегой-то делает монопольно, долго и упорно. Какой-то пересчет с большой модификацией данных. Отработала. Вышла.
2) Смотрю базу. Она в multi_user (про F5 я в курсе, не такой уж ламер). Никаких процессов не висит.
Кстати, сейчас еще посмотрел в этот момент "EXEC sp_who2" - ничего на моей базе нет. И "SELECT * FROM sys.dm_exec_background_job_queue" - ни одного процесса.
3) Запускаем опять 1С монопольно. Ругаеццо про невозможность войти монопольно и ждет нажатия OK. Жмём. Выходит.
4) Смотрим базу. Она в single_user.
5) Если 1С опять запустить - что монопольно, что разделенно, она успешно входит. Предыдущий single_user при этом сбрасывается. Но это уже совсем другая история...
Последовательность запросов 1С генерит в (3) одну и ту же, что при успешном, что при неуспешном входе. Никаких процессов и блокировок обнаружить не удалось.
Гипотеза может быть одна. У 1С, когда она устанавливает single_user, слишком маленький таймаут. И она отваливает по таймауту, хотя и вошла успешно в single_user. И если запущена из батника, то останавливает батник, ожидая OK.

Кстати, костыль я придумал. В батнике, перед тем как запустить 1С монопольно, запросом даю принудительно переключение в single_user - под тем же юзером, что и 1С. 1С, входя следом монопольно, успешно заходит. Правда, вылезло в другом месте...
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231827
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ymv1) 1С чегой-то делает монопольно, долго и упорно. Какой-то пересчет с большой модификацией данных. Отработала. Вышла.
2) Смотрю базу. Она в multi_user (про F5 я в курсе, не такой уж ламер). Никаких процессов не висит.
Кстати, сейчас еще посмотрел в этот момент "EXEC sp_who2" - ничего на моей базе нет. И "SELECT * FROM sys.dm_exec_background_job_queue" - ни одного процесса.
3) Запускаем опять 1С монопольно. Ругаеццо про невозможность войти монопольно и ждет нажатия OK. Жмём. Выходит.
4) Смотрим базу. Она в single_user.
5) Если 1С опять запустить - что монопольно, что разделенно, она успешно входит. Предыдущий single_user при этом сбрасывается. Но это уже совсем другая история...
Последовательность запросов 1С генерит в (3) одну и ту же, что при успешном, что при неуспешном входе. Никаких процессов и блокировок обнаружить не удалось.
Гипотеза может быть одна. У 1С, когда она устанавливает single_user, слишком маленький таймаут. И она отваливает по таймауту, хотя и вошла успешно в single_user. И если запущена из батника, то останавливает батник, ожидая OK.Из вышесказонного, да и из всего обсуждения ясно, что к сиквелу это не имеет никакого отношения.

Это просто баг клиентского приложения. Что то она там переключает туда-сюда, ИМХО видимо переводит базу в мульти, а где то в своих файлах сохраняет, что оставила в сингл.

Решать вопрос нужно на форумах по 1С

Или это какой то её баг, или баг какой то конфигурации, или там где то ваши программисты добавили в 1С сиквельный код, который что то там переводит, или которому мешает текущий режим, она вываливается, и получается несогласованное состояние.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231833
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
alexeyvgИМХО видимо переводит базу в мульти, а где то в своих файлах сохраняет, что оставила в сингл.

ошибка-то серверная, на 1С.
это точный текст 924-ой ошибки:
Код: coco
1.
2.
Database '%.*ls' is already open and can only have one user at a time. /
База данных "%1!" уже открыта, и одновременно к ней может обращаться только один пользователь.


так что это не 1С себе что-то сохраняет в конфигурации,
а база в сингл юзере.
почему ТС это не видит -- думаю, плохо смотрит,
кодом надо смотреть, не из своего 1С,
опрашивать sys.databases.
не понимаю еще, почему вместо всей этой писанины не сходить и не посмотреть еррорлог.
с какой частотой там идут
alter database set single_user/
alter database set multi_user?
короче, пока хотя бы еррорлог не покажет, разговор ниочемный
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231838
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
o-oalexeyvgИМХО видимо переводит базу в мульти, а где то в своих файлах сохраняет, что оставила в сингл.

ошибка-то серверная, на 1С.
это точный текст 924-ой ошибки:
Код: coco
1.
2.
Database '%.*ls' is already open and can only have one user at a time. /
База данных "%1!" уже открыта, и одновременно к ней может обращаться только один пользователь.



так что это не 1С себе что-то сохраняет в конфигурации,Это понятно, что серверная.

Но это же не бага сиквела, типа, что ему 1С посылает команду, а он не выполняет?

Очевидно, либо бага в 1С, либо что то там ещё делается, может, какие то сторонние приложения, джобы и т.п.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231842
ymv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ymv
Гость
>короче, пока хотя бы еррорлог не покажет, разговор ниочемный

С моим удовольствием. Management \ SQL Server Logs. Лог примерное за период, когда сегодня тестил. Причем без всяких костылей. Ошибка произошла (по логу 1С) около 15:53.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231852
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
Ну вот. Вы включили или рестартанули сервер и как только он был в состоянии принимать юзерские соединения, к нему сразу прицепилось 1С, спид51.
Прилагаю картинку, когда оно перевело базу в сингл юзер и в нем база пребывала с 15:30 по 15:49.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231855
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ymv,

Зачем вы при скульной 1С заходите монопольно? Вот вам и ответ. И от версии скуля не зависит. При любом скуле нет необходимости запускаться монопольно.
Но вы все так же можете продолжать это делать. Мазохисты они такие ... )
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231858
ymv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ymv
Гость
>Зачем вы при скульной 1С заходите монопольно?

Ряд регламентных операций в 1С требуют монопольного доступа.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231861
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрЗачем вы при скульной 1С заходите монопольно?Как я понимаю, это же сама 1С делает? Пользователь этим же не управляет?
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231862
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
После этого в 15:53 снова переводит в сингл юзер и только в 15:54 обратно.
Спид все тот же, 51.
Если это 1С не пересоединяется, то это все оно же.
Ну и тогда логично, что в 15:53 вы получаете ошибку о том, что база уже в сингл юзере и там кто-то приконнекчен.

Почему вы ничего не видите в sys.dm_exec_requests.
Потому что спид51 ничего не делает. Прицепился и висит, ничего не выполняя.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231864
ymv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ymv
Гость
>Вы включили или рестартанули сервер и как только он был в состоянии принимать юзерские соединения, к нему сразу прицепилось 1С, спид51.

Да бог с тобой:
1) Сервер написал в 10:49:38, что готов принимать клиентские подключения, процесс "Сервер"
2) Далее, в те же секунды запустил базы данных.
3) Потом в 10:49:40 писал ворнинги про протоколы и прочую фигню.
4) В 10:49:51 написал "восстановление завершено"
5) А вот в 10:52:04 уже вошел в базу монопольно, это я запустил "тестирование и восстановление".

Да, с момента запуска SQL-сервера до входа в 1С прошло несколько секунд, дык я его для того и включал, это же не рабочий сервер, кто же на рабочем тестит.
Только не пойму, почему так много раз он переключает затем single_user / multi_user. Счас закину еще 1С-овский лог.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231866
ymv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ymv
Гость
>Как я понимаю, это же сама 1С делает? Пользователь этим же не управляет?

Да, при "тестировании и исправлении 1С", как минимум. И её тестирование sql-ным не заменить.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231867
ymv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ymv
Гость
Вот лог 1С.
...
Рейтинг: 0 / 0
MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
    #39231868
o-o
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
o-o
Гость
ymv>Вы включили или рестартанули сервер и как только он был в состоянии принимать юзерские соединения, к нему сразу прицепилось 1С, спид51.

Да бог с тобой:
1) Сервер написал в 10:49:38, что готов принимать клиентские подключения, процесс "Сервер"

Кому вы парите мозги, Козюльский?
Еррорлог не реинициализировался по причине cycle, он начал писаться заново потому что сервер рестартанул. Он в 15:22 открыл мастера и перезаписал темпдб. И далее по списку
...
Рейтинг: 0 / 0
25 сообщений из 37, страница 1 из 2
Форумы / [игнор отключен] [закрыт для гостей] / MSSQL2005-2012 & 1С 7.7: прибить фоновый процесс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]