|
|
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
Добрый день, может кто сталкивался с моей проблемой или подкинет свежую идею. Дано: В связке терминального сервера с 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". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2008, 17:55 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
Поправка к вопросу: Как удержать гарантированный однопользовательский режим для определённого процесса на время его работы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.11.2008, 19:57 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
По моему все ошибки про монопольный режим уже были описаны и не раз... Дайте побольше данных - при каких условиях возникает эта ошибка? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.11.2008, 12:04 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
Пока искал на форуме ответы, нашёл рекомендации по подключению семёрки к 2005 SQL. Нашел такие: Модель восстановления для базы - simple Отключить автосжатие - по умолчанию оно отключено. После того, как изменил модель восстановления, обмен 2 дня работает отлично - попытка входа в базу во время монопольного обмена не приводит к ошибке обменщика "невозможно открыть базу в монопольном режиме" Неужели модель восстановления помогла решить проблему? Как она может влять на работу базы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.11.2008, 16:30 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
авторНеужели модель восстановления помогла решить проблему? Как она может влять на работу базы? 1) нет 2) никак ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2008, 11:03 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
автор1) нет 2) никак Так и есть, это не помогло (удивительно:)). Может кто даст подсказку, в каком направлении искать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2008, 16:03 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
Решение проблемы оказалось проще. Блокировка базы осуществлялась фоновым процессом, выполняющим очистку таблиц от удаленных записей (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. Так-то Всем спасибо ): ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.11.2008, 15:36 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
таже самая ошибка провел тестирование на тестовом серваке - все ОК, ошибка действительно больше не появлялась попробывал один сервак запустить на боевую - ошибка присутвует, DBCC TRACEON(661,-1) - не помогает на обоих серваках DBCC TRACESTATUS - показатели одни единственное различие в том, что релиз тестового сервака - 3042, рабочего - 3186 больше различий не нашел кто знает в чем тут прикол? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.12.2008, 17:38 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
Сергей84, Подробнее ситуацию опишешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2008, 23:21 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
narayan32Спасибо за ценную информацию, буду знать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2008, 13:26 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
narayan32Сергей84, Подробнее ситуацию опишешь? вся история ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 15:30 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
Сергей84, прочитай сообщение выше (25 ноя 08, 15:36) - это конкретный и полный ответ по проблеме ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 11:09 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
narayan32Сергей84, прочитай сообщение выше (25 ноя 08, 15:36) - это конкретный и полный ответ по проблеме я его читал, а вот эффекта нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 13:05 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
Сергей84, Ну, само прочтение мало чем поможет, нужно ещё что-нибудь сделать. Что делали, что не получается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2008, 18:30 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
narayan32Сергей84, Ну, само прочтение мало чем поможет, нужно ещё что-нибудь сделать. Что делали, что не получается? провел тестирование на тестовом серваке - все ОК, ошибка действительно больше не появлялась попробывал один сервак запустить на боевую - ошибка присутвует, DBCC TRACEON(661,-1) - не помогает на обоих серваках DBCC TRACESTATUS - показатели одни единственное различие в том, что релиз тестового сервака - 3042, рабочего - 3186 больше различий не нашел согласно логу - ошибка имеется через раз, т.е. один день - есть, другой нет сдается мне, что кроме "GHOST CLEANUP" - еще что-то сидит, но пока никак не могу отловить :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2008, 13:55 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
2 narayan32 скажите версию MSSQL вашего результаты моих тестов показывают, что после обновления MSSQL до 3042 - данная методика по отключению "GHOST CLEANUP" - не канает либо какая-то другая служба начинает работу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.12.2008, 00:47 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
Сергей84согласно логу - ошибка имеется через раз, т.е. один день - есть, другой нет сдается мне, что кроме "GHOST CLEANUP" - еще что-то сидит, но пока никак не могу отловить :( в общем я нашел ещеодин скулоский процесс, который влияетна монопольный обмен - это процесс CHECKPOINT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.12.2008, 21:48 |
|
||
|
SQL 2005 & 1cv77: монопольный обмен
|
|||
|---|---|---|---|
|
#18+
Как-то нашел одно не очень радующее собщение на сайте Майкрософт по trace flags, звучало примерно так: Все флаги трассировки являются что-то типо недокументированными возможностями, поэтому не исключено что в следующей версии SQL тех или иных флагов уже не будет или они будут работать по другому Для выключения CHEKPOINT флага не нашел? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.02.2009, 13:46 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=35642254&tid=1523151]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
178ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
| others: | 241ms |
| total: | 532ms |

| 0 / 0 |
