powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / SQL 2005 & 1cv77: монопольный обмен
19 сообщений из 19, страница 1 из 1
SQL 2005 & 1cv77: монопольный обмен
    #35640864
narayan32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, может кто сталкивался с моей проблемой или подкинет свежую идею.
Дано:
В связке терминального сервера с 1С:Предприятием 7.7 р25 и сервера под SQL 2005, в режиме монопольного обмена постоянно происходит событие, приводящее к ошибке 1С "База не может быть открыта в монопольном режиме".
Ранее, когда сервер БД работал под управлением SQL 2000, проблема также существовала, но проявлялась в значительной степени реже.

Предположения:


Дело в том, что сам по себе механизм семёрки, при распаковке очередного архива, пришедшего с другого узла, переводит базу в режим multi_user и любая попытка подключения (вроде бы даже прошедшая в то время, когда база была в режиме single_user) приводит к упомянутой ошибке.

Попытки:
Была попытка создания задания для Агента SQL сервера по автообмену с предшествующим переключением в single_user, но получился облом: 1с, само собой, не может попасть в базу.

Урезать права пользователя, под которым 1с заходит в SQL до db_datawriter: облом. 1с может попадать в базу, только с правами dbo. На данный момент, подключается под sa.

Отключение пользователям возможности запуска 1с на время монопольного обмена. Облом. На сервере собирается статистика с помощью ReportManager, могут читаться данные из базы из других учётных систем, ОЛАПы итд.

Вопрос: Как удержать гарантированный однопользовательский режим для определённого процесса на неизвестный период времени?

Заранее всех благодарю за участие и советы.

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35641060
narayan32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поправка к вопросу:
Как удержать гарантированный однопользовательский режим для определённого процесса на время его работы?
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35642254
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По моему все ошибки про монопольный режим уже были описаны и не раз... Дайте побольше данных - при каких условиях возникает эта ошибка?
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35644484
narayan32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пока искал на форуме ответы, нашёл рекомендации по подключению семёрки к 2005 SQL. Нашел такие:
Модель восстановления для базы - simple

Отключить автосжатие - по умолчанию оно отключено.

После того, как изменил модель восстановления, обмен 2 дня работает отлично - попытка входа в базу во время монопольного обмена не приводит к ошибке обменщика "невозможно открыть базу в монопольном режиме"
Неужели модель восстановления помогла решить проблему? Как она может влять на работу базы?
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35645871
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНеужели модель восстановления помогла решить проблему? Как она может влять на работу базы?
1) нет
2) никак
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35655993
narayan32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
автор1) нет
2) никак
Так и есть, это не помогло (удивительно:)). Может кто даст подсказку, в каком направлении искать?
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35674435
narayan32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Решение проблемы оказалось проще. Блокировка базы осуществлялась фоновым процессом, выполняющим очистку таблиц от удаленных записей (GHOST CLEANUP), который в SQL является системным и запускается автоматически когда у него появляется такая возможность (по документации, если база не заблокирована, то через каждые 15 секунд). Решением проблемы в данном случае является отключение этого системного процесса на время монопольных обменов. Для отключения выполняется команда T-SQL:
DBCC TRACEON(661,-1)
для включения
DBCC TRACEOFF(661, -1)
для проверки статуса
DBCC TRACESTATUS
где 661 - флаг (trace flag) отключения именно этого процесса, -1 - признак глобального отключения процесса

Также предлагаю прописать перед монопольным обменом задание убивающее все подключения к базе, которые исходят не от процесса 1cv7.exe, т.е. те, которые возвращает:

Select spid from master..sysprocesses where dbid=DB_ID('test_sql') and program_name<>'1CV7'

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
DECLARE    @spid INT
DECLARE    @tString VARCHAR( 15 )
DECLARE    @getspid CURSOR

SET @getspid =   CURSOR FOR
SELECT         spid
FROM       master..sysprocesses
WHERE          dbid=DB_ID('ou_cb_2008') and program_name<>'1CV7'

OPEN @getspid

FETCH NEXT FROM @getspid INTO @spid
WHILE @@FETCH_STATUS =  0 

BEGIN
SET @tString = 'KILL ' + CAST(@spid AS VARCHAR( 5 ))
EXEC(@tString)
FETCH NEXT FROM @getspid INTO @spid
END

CLOSE @getspid
DEALLOCATE @getspid

Так-то


Всем спасибо ):
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35703528
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
таже самая ошибка
провел тестирование на тестовом серваке - все ОК, ошибка действительно больше не появлялась
попробывал один сервак запустить на боевую - ошибка присутвует, DBCC TRACEON(661,-1) - не помогает
на обоих серваках DBCC TRACESTATUS - показатели одни
единственное различие в том, что релиз тестового сервака - 3042, рабочего - 3186
больше различий не нашел

кто знает в чем тут прикол?
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35712897
narayan32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей84,
Подробнее ситуацию опишешь?
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35713096
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
narayan32Спасибо за ценную информацию, буду знать.
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35714917
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
narayan32Сергей84,
Подробнее ситуацию опишешь?
вся история
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35724092
narayan32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей84,

прочитай сообщение выше (25 ноя 08, 15:36) - это конкретный и полный ответ по проблеме
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35724521
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
narayan32Сергей84,

прочитай сообщение выше (25 ноя 08, 15:36) - это конкретный и полный ответ по проблеме
я его читал, а вот эффекта нет
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35726044
narayan32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сергей84,

Ну, само прочтение мало чем поможет, нужно ещё что-нибудь сделать.
Что делали, что не получается?
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35727779
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
narayan32Сергей84,

Ну, само прочтение мало чем поможет, нужно ещё что-нибудь сделать.
Что делали, что не получается?
провел тестирование на тестовом серваке - все ОК, ошибка действительно больше не появлялась
попробывал один сервак запустить на боевую - ошибка присутвует, DBCC TRACEON(661,-1) - не помогает
на обоих серваках DBCC TRACESTATUS - показатели одни
единственное различие в том, что релиз тестового сервака - 3042, рабочего - 3186
больше различий не нашел
согласно логу - ошибка имеется через раз, т.е. один день - есть, другой нет
сдается мне, что кроме "GHOST CLEANUP" - еще что-то сидит, но пока никак не могу отловить :(
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35731276
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 narayan32
скажите версию MSSQL вашего

результаты моих тестов показывают, что после обновления MSSQL до 3042 - данная методика по отключению "GHOST CLEANUP" - не канает
либо какая-то другая служба начинает работу
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35742170
Сергей84
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей84согласно логу - ошибка имеется через раз, т.е. один день - есть, другой нет
сдается мне, что кроме "GHOST CLEANUP" - еще что-то сидит, но пока никак не могу отловить :(
в общем я нашел ещеодин скулоский процесс, который влияетна монопольный обмен - это процесс CHECKPOINT
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #35808127
Walkabout
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как-то нашел одно не очень радующее собщение на сайте Майкрософт по trace flags, звучало примерно так:

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

Для выключения CHEKPOINT флага не нашел?
...
Рейтинг: 0 / 0
SQL 2005 & 1cv77: монопольный обмен
    #36279780
Denis81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня проблема решилась, отключение зеркалирования, восьмерочной базы.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / SQL 2005 & 1cv77: монопольный обмен
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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