|
v7: Загрузка базы в SQL 2012. База данных уже открыта и одновременно к ней может обращаться то | ☑ | ||
---|---|---|---|---|
0
Birmingem
06.11.18
✎
11:01
|
Обратился заказчик, у него база 1С 7.7 в SQL 2005.
Выгрузил (выгрузкой 1С), получилось 73 Мб в zip. У меня на работе комп с Win 2012 и SQL 2012. В SQL 2012 есть базы 1С 8.3, так что не хотелось бы ставить SQL 2005. На этом компе в папку 1С 7.7 положил файлы BkEnd.dll и BkEndUtls.dll из Solution7 (так называемый секретный релиз 1С). В SQL 2012 создал базу, совместимость с SQL 2005. 1С к этой базе нормально подключилась. Запустил загрузку данных. Вроде все хорошо, идет загрузка... Но под конец, возможно при переиндексации или при пересчете итогов, выдает сообщение "База данных уже открыта и одновременно к ней может обращаться только один пользователь". В SQL размер загруженной базы 2,8 Гб. Подскажите, как решить? |
|||
1
Карст
06.11.18
✎
11:04
|
не совсем так подсоединил базу , видимо и монопольно зайти не сможешь
либо переподключай к скулю либо ищи развернутый мануал |
|||
2
АгентБезопасной Нацио
06.11.18
✎
11:16
|
в server management studio база не открыта?
|
|||
3
АгентБезопасной Нацио
06.11.18
✎
11:17
|
кстати, бэкапы 2005 разве в 2012 не восстанавливаются?
|
|||
4
Birmingem
06.11.18
✎
11:23
|
(2)Что значит не открыта? При загрузке базы server management studio закрыт. После того как вылезла ошибка зашел server management studio, посмотрел базу, состояние обычное не single_user.
(3)Не знаю. На всякий случай сделал именно выгрузку, чтобы в крайнем случае в дбф загрузить. Сейчас как раз, идет загрузка в ДБФ. Это чтобы проверить, не битая ли база. |
|||
5
1Сергей
06.11.18
✎
11:26
|
там надо сделать ряд каких-то действий в sql, чтобы клюшки его поняла
каких уже не помню |
|||
6
Birmingem
06.11.18
✎
11:30
|
Провел эксперимент.
Создал базу SQL, также как в предыдущий раз. Создал новую базу в 1С, подключил в к базе SQL. Потом загрузил только конфигурацию, взятую из выгрузки, сохранил, и вуаля - 1С запустилась! Создал пару элментов справочников, ввел документ, провел, сформировал отчет. Попробовал заходить как монопольно так и не монопольно. Все работает. Т.е. создал новую чистую базу на SQL 2012. Тогда почему же при загрузке из архива выдает ошибку? |
|||
7
Карст
06.11.18
✎
11:32
|
несколько способов приспособить SQL.
- общие реквизиты неограниченной длины должны стоять в конце списка - перед выгрузкой сделать ТиИ |
|||
8
АгентБезопасной Нацио
06.11.18
✎
11:37
|
(4) а в логах по этой базе что?
(7) есть такое. только насколько помню, эти случаи дают другие сообщения об ошибках |
|||
9
Birmingem
06.11.18
✎
11:41
|
(7)Проверил. Общих реквизитов документов нет.
ТиИ пока сделать возможности нет. Рабочая база находится далеко. Как загрузится в ДБФ, попробую из ДБФ выгрузить и снова в SQL загрузить. Настраивал "Секретный релиз платформы v77.27.7" согласно http://catalog.mista.ru/public/82018/ Там только две ДЛЛ в 1С/Бин положить надо и все. (8)В SQL не силен. Как посмотреть лог базы? И на что именно там обращать внимание? |
|||
10
Birmingem
06.11.18
✎
11:43
|
Из 1С подключался к SQL как под SA, так и отдельного пользователя SQL создавал. Результат тот же.
|
|||
11
АгентБезопасной Нацио
06.11.18
✎
11:47
|
(9) Управление-Журналы SQLServer
ну или натрави профайлер на загружаемую базу, посмотри, что происходит на момент ошибки. |
|||
12
Birmingem
06.11.18
✎
15:18
|
В ДБФ загрузилась нормально
|
|||
13
ikea
06.11.18
✎
15:26
|
(0) Уже давно бы поставил SQL 2005 и забыл. Но будет еще 3 дня бороться с мельницами.
|
|||
14
АгентБезопасной Нацио
06.11.18
✎
15:30
|
(12) а что в логах? что говорит товарищ Профайлер?
(13) разводить зоопарк стоит только в экстренных случаях. у него не экстренный. и вообще, "лучше день потерять, а потом за 5 минут долететь!"© |
|||
15
Birmingem
06.11.18
✎
15:37
|
Предпоследняя запись:
Setting database option SINGLE_USER to ON for database MyBase и через 30 минут Setting database option MULTI_USER to ON for database MyBase Больше записей нет. |
|||
16
АгентБезопасной Нацио
06.11.18
✎
15:47
|
посмотреть бы, в мульти он переключился до ошибки, или после...
в общем, натравливай профайлер, запускай загрузку - завтра смотри лог профайлера. |
|||
17
Ёпрст
06.11.18
✎
16:29
|
(0) lck то прибей в каталоге
|
|||
18
АгентБезопасной Нацио
07.11.18
✎
07:16
|
(17) всего-то? а разве пофигуратор его сам удалить не пробует?
|
|||
19
Карст
07.11.18
✎
15:02
|
(18) если он каталог с базой копировал - могло остаться , так же как и варианты 1Cv7.$ui ... 1SJOURN.$lk и прочее
|
|||
20
АгентБезопасной Нацио
07.11.18
✎
15:09
|
(19) могло. но все файлы блокировки, насколько помню, при отваливании от держащего сеанса но при попытке создания блокировки - удаляются...
несколько сумбурно выразился но смысл такой: - если сеанс отвалился от 1SJOURN.$lk - то другой сеанс при первой попытке блокировки попытается удалить файлик. |
|||
21
Ёпрст
07.11.18
✎
15:44
|
(20) неа, при аварийном завершении процесса, lck остается
|
|||
22
Ёпрст
07.11.18
✎
15:44
|
и 1с-ина его не удаляет
|
|||
23
1snik_d
19.11.18
✎
11:31
|
Получилось найти решение, такая же проблема?
|
|||
24
1snik_d
19.11.18
✎
11:33
|
Еще такое же вываливается, если запускаешь восстановление последовательности через Операции - Проведение документов. После проведения некоторого количества документов такое сообщение.
|
|||
25
Ёпрст
19.11.18
✎
11:39
|
(24) какая версия sql, как дружили , какой режим совместимости ?
|
|||
26
Ёпрст
19.11.18
✎
11:40
|
если че, версию скуля понижать не надо в настройках sql
|
|||
27
1snik_d
19.11.18
✎
11:44
|
(25) SQL 2014, секретный релиз, режим совместимости пробовал разный, эффект одинаковый. Сейчас стоит без понижений.
|
|||
28
MadDAD
19.11.18
✎
12:02
|
(27) Там есть служебный процесс, который считает статистику в фоне. Конфигуратор при восстановлении базы сначала переключает в Single USer, затем восстанавливает данные, потом переключает базу в Multi USer. Затем он пытается снова переключить в Single для пересчета итогов. И в это время запускается служебный процесс, который этому мешает.
Без секретного релиза это решалось патчем BKEND.dll - замена имени таблицы sysprocesses на sysprocesse1 к примеру. И созданием View "sysprocesse1" с отбором только процессов 1СV7. В этом запросе "Select COUNT(*) from master..sysprocesses where dbid=DB_ID('%s')" Как с этим работает секретный релиз - хз. Но можно попробовать то же самое |
|||
29
MadDAD
19.11.18
✎
12:07
|
Вот тут готовое решение - http://forum.ru-board.com/topic.cgi?forum=8&topic=34526&start=20#18
|
|||
30
1snik_d
19.11.18
✎
13:37
|
(29) Огроменное спасибо за наводку, куда копать. Все получилось, проведение работает теперь, не вываливаается.
|
|||
31
1snik_d
26.11.18
✎
10:21
|
Недолго музыка играла ((
Вообщем проблема никуда не делась. Может можно как-нибудь заставить сервер не запускать фоновые задания для определенной ИБ. |
|||
32
1snik_d
26.11.18
✎
10:22
|
(31) На время перепроведения документов
|
|||
33
ADirks
26.11.18
✎
10:40
|
(31) Можно зайти с другой стороны: после запуска 1С выключить монопольный режим
ALTER DATABASE CURRENT SET MULTI_USER я так и сделал :) |
|||
34
1snik_d
26.11.18
✎
10:46
|
(33) А можно поподробнее, а то я делаю так, а SQL ругается
В настоящий момент невозможно изменить состояние или параметры базы данных "tiscopy". База данных находится в однопользовательском режиме, и в настоящий момент к ней подключен пользователь. |
|||
35
ADirks
26.11.18
✎
11:34
|
(34) Это не в студии надо делать, а внутре 1С. Можно прям при старте системы, можно в обработку запилить.
ЗапросСКЛ = СоздатьОбъект("ODBCRecordSet"); рез = ЗапросСКЛ.Выполнить(" |ALTER DATABASE CURRENT |SET MULTI_USER |"); Если рез <> 1 Тогда Сообщить(ЗапросСКЛ.ПолучитьОписаниеОшибки()); ВЛог("ВосстановлениеГП", ЗапросСКЛ.ПолучитьОписаниеОшибки()); КонецЕсли; Кстати, это как раз из обработки проведения (востановления ГП). Если надо, могу поделиться. |
|||
36
АгентБезопасной Нацио
26.11.18
✎
11:37
|
(35) а что там особенного-то можно придумать? это раньше, на 2000, надо было извращаться с РеконнектНатив...
|
|||
37
ADirks
26.11.18
✎
11:52
|
(36) да просто чтобы очередной раз велосипед не пилить
|
|||
38
1snik_d
26.11.18
✎
11:56
|
(35) Так работает перепроведение, не падает. Получается полноценного монопольного режима в таком раскладе не сделать?
Ну т.е. SINGLE_USER на секретном релизе не совсем правильно работает? |
|||
39
Sserj
26.11.18
✎
12:04
|
(9) Там не только 2 dll надо положить. Еще если у ты из 1С подключаешься не с пользователм sa то нужно права на просмотр подключений дать пользователю
|
|||
40
Sserj
26.11.18
✎
12:05
|
+(39) Вот запрос из мануала Solution7
USE master GO GRANT VIEW SERVER STATE TO <your_login> GO |
|||
41
Sserj
26.11.18
✎
12:08
|
(38) Нужно инструкции перед возникновением проблем читать :)
Вот цитата из ридми Solution7: "..Большинство "специалистов" запускает 1с под учеткой SA (или другой, но с соответствующими суперправами), следовательно, у них такой проблемы не стоит. Зато имеется другая проблема - так называемый фоновый процесс сброса грязных страниц из кэша буфера данных, при выполнении которого, не удается запустить 1с в монопольном режиме..." |
|||
42
1snik_d
26.11.18
✎
12:09
|
(41) Это все было сделано в первую очередь. И учетка отдельная заведена и права даны...
|
|||
43
1snik_d
26.11.18
✎
12:10
|
(41) Да и проблема в монопольном режиме возникает в 2-х случаях. При пересчете итогов и при перепроведении документов в ТА. А так монопольный режим работает без нареканий.
|
|||
44
1snik_d
26.11.18
✎
12:11
|
(41) Там куча комментариев к публикации с такой проблемой без решения.
|
|||
45
ADirks
26.11.18
✎
12:14
|
(38) Похоже, Спок не обе все ситуации излечил. Там 2 таких запроса, и один из них остался без коррекции.
(41) Не помогло. Сильно разбираться неохота было, решил так вот читернуть. Кстати, от этого ещё и дополнительная польза есть. Можно в базе что-нибудь посмотреть, пока проводится. |
|||
46
Sserj
26.11.18
✎
12:15
|
(42)У меня единственная проблема при загрузки базы секретным релизом в SQL2017 были документы без реквизитов шапки (в типовой ТИС это к примеру КнигаПокупок и КнигаПродаж). Набросай обработку по метаданным и добавить к таким в шапку реквизит любой. Потому как без реквизитов таблицы шапок не создаются и при загрузки на индексировании 1С просто умирала молча.
|
|||
47
1snik_d
26.11.18
✎
12:27
|
(45) Красава, но вообще читерство - зло ))
|
|||
48
guest1
06.12.18
✎
17:30
|
Добрый был день.
Тоже переходим с MS SQL 2005 на 2012. Та же проблема - база вываливается при монопольной режиме в ошибку "База данных уже открыта ...". Что было сделано: 1. Из 1с ver.27 выгрузили данные 2. Установили MS SQL 2012 3. В MS SQL создали пользователя userSQL с правами db_owner 4. В MS SQL создали новую базу с владельцем userSQL 5. Удалили BIN 1C 6. Установили по новому 1С, заменили BKEnd.dll на BKEnd0.dll и добавили две новой DLL из Solution 7 Теперь при загрузке данных вылетает данный сабж. Что не так? |
|||
49
guest1
06.12.18
✎
18:35
|
Апну
|
|||
50
MadDAD
07.12.18
✎
08:14
|
(48)
1. после того как 1С вылетела с ошибкой, проверить загруженные данные. Например посмотреть в таблицу журнала. Если загрузилось все, то продолжаем дальше 2. Запустить ТиИ с пересчетом итогов. 3. Больше не пользоваться выгрузкой 1С. После выполнения персчетов сравнить регистры и оборотки в предыдущей версии базы и в новой. |
|||
51
ADirks
07.12.18
✎
08:24
|
(48) 1. То что ты пишешь, не имеет никакого отношения к проблеме.
2. Заколебали вы со своим ТиИ. Не надо этого делать по поводу и без. |
|||
52
guest1
07.12.18
✎
08:49
|
Добрый день.
В место выгрузки/загрузки просто развернули архив из MS SQL 2005 в MS SQL 2012. Не запуская 1С, выполнили скрипт DBCC CHECKDB ("имя базы", REPAIR_REBUILD). Как ни странно, 1С поднялась и бодро бегает. Но остался вопрос монопольного режима. Как выше писали - он нужен только для восстановления последовательности (групповое перепроведение) и работа с итогами: открытие периода (если есть компонента Оперативный учет) и полный пересчет бух.итогов. У нас постановление последовательности работает без использования монопольного режима, а работа с итогами - только монопольный режим. |
|||
53
ADirks
07.12.18
✎
08:56
|
(52) Для пересчета итогов регистров в немонопольном режиме есть УстановкаТА.ert или Установка_ТА_2_2.ert. А вот с бухитогами никто не заморочился. Так что
ALTER DATABASE CURRENT SET MULTI_USER |
|||
54
guest1
07.12.18
✎
08:59
|
(51)
Так вроде проблема именно в режиме SINGLE_USER. При монопольном режиме в базу "лезет" sa и вот тут ошибка. Вроде так. |
|||
55
ADirks
07.12.18
✎
09:06
|
(54) проблема в том, что 1С выполняет команды, которые, видите ли, в SQL 2012 посчитали устаревшими, и выпилили их напрочь. Секретный релиз такое исправляет, но как оказалось не всё.
В базу лезет не sa, а тот пользователь, которого указали в настройках "параметры БД SQL". |
|||
56
guest1
07.12.18
✎
09:15
|
(53)
Беда у нас в том, что пересчет бух итогов идет в пакетном режиме раз в неделю ночью. считает около 1,5 часов. Но раз последние MS SQL не моут корректно работать с 1С v7.7 то придется использовать "костыль" ALTER DATABASE CURRENT SET MULTI_USER. |
|||
57
guest1
07.12.18
✎
09:27
|
Кстати, пересчет итогов через конфигуратор вроде идет.
Остался вопрос про открытие периода обработкой УстановкаТА.ert Может есть возможность поделится обработкой? |
|||
58
guest1
07.12.18
✎
09:30
|
А нет, нашел у себя УстановкаТА.ert.
|
|||
59
ADirks
07.12.18
✎
09:34
|
(58) Регистры с измерениями типа "Неопределено" есть? Если нет, то хорошо. Если есть, то надо модифицированную версию, которая 2.2.
Могу заслать. |
|||
60
guest1
07.12.18
✎
09:36
|
Блин, да, есть такие измерения.
|
|||
61
guest1
07.12.18
✎
09:41
|
(59)
Буду благодарен за обработку |
|||
62
ADirks
07.12.18
✎
09:42
|
(61) куда слать то?
|
|||
63
guest1
07.12.18
✎
09:54
|
||||
64
guest1
07.12.18
✎
09:55
|
Кстати, пересчет итогов через конфигуратор выполнился.
|
|||
65
guest1
07.12.18
✎
10:08
|
Отправили? (62)
|
|||
66
ADirks
07.12.18
✎
10:09
|
ушло
|
|||
67
guest1
07.12.18
✎
10:28
|
Поймал, спасибо.
|
|||
68
guest1
07.12.18
✎
10:35
|
Получается для того чтобы 1С v7.7 переселить на MS SQL старше 2005 необходимо:
1. развернуть архив, созданный в предыдущем MS SQL, в чистую базу на новом сервере MS SQL. 2. В папке BIN выполнить переименование BKEND.dll на BKEND0.dll и добавить 2 dll из "секретного релиза". На этом все. Что в плюсе - 1с 7.7 продолжает жить на новом серваке Что в минусе - 1с 7.7 теряет все плюшки монопольного режима, кот. заменяются обработками и пакетным режимом для конфигуратора. |
|||
69
ADirks
07.12.18
✎
10:55
|
(68) Как-то так. Но, честно говоря, какие такие плюшки даёт монопольный режим - я прям теряюсь :)
До недавнего времени даже и не знал, что такая проблема имеет место. Как-то не надо было (да и сейчас не особо надо). |
|||
70
guest1
07.12.18
✎
12:19
|
Продолжаем шаманить.
Источник Проблема c 1C 77 под SQL 7.0 SP2 1.Флажки Auto create/update statistics которые ставятся по дефоулту в свойствах базы сняли. 2.Параметр Recovery Interval = 20 Помогло. Начало работать в монопольном режиме перепроведение документов и пересчет итогов без ошибки №924. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |