Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?

Переезжали мы на новый сервер. На нем SQL и 1C. В сравнении со старыми был намного круче. И тест Гилева это тоже подтвердил: против 10-15 на старых серверах выдавал 39. Поэтому мы сразу после покупки перенесли базу и начали работу.

Но в какой-то момент что-то пошло не так — пользователи стали жаловаться на медленную работу. Произвели определенные настройки сервера и служб (какие — тема отдельного поста) и решили перезагрузить сервер, благо скорость перезагрузки — 2 минуты (на других серверах до 10 доходило). После этого при входе в 1С получаем следующее сообщение: 

«Внимание!!! При обновлении данных, после последней реструктуризации, произошла ошибка. Повторить обновление?» «Да, Нет»

 

 

 

 

 

После нажатия кнопки «Да» появляется следующее:

«Обнаружена незавершенная операция сохранения конфигурации. Для продолжения работы необходимо завершить операцию.»

 

 

 

 

Первое, что решил сделать — CHECKDB на в Managment Studio —  после 2х часов ожидания (база 500 ГБ) — все ОК.

На просторах сети нашел информацию, что такая же ошибка бывает при динамическом обновлении. 

Решения, предложенные в сети сходу не помогли, но вкупе с другими действия дали результат. Итак, что я делал:

Решение:

  1. То, чего не хватало для решений из сети:

sp_configure ‘allow updates’, 1
reconfigure with override
go

 2.  Переводим базу в режим восстановления

alter database [db_name] set EMERGENCY, SINGLE_USER

3. Выполняем тестирование базы:

dbcc checkdb(‘db_name’, REPAIR_ALLOW_DATA_LOSS )

4. Выводим базу из режима восстановления:

alter database [db_name] set ONLINE, MULTI_USER

5. В принципе, если уверены что с самой базой все ок, то можно не делать 2-4 пункты. Далее выполняем два запроса в профайлере SQL:

delete from config where FileName = ‘commit’
delete from config where FileName = ‘ dbStruFinal’

Эти записи и отвечают за динамическое обновление — можно не бояться их удалять.

В рабочих версиях баз запросы:

select * from Config WHERE FileName = ‘commit’

select * from Config WHERE FileName = ‘dbStruFinal’

будут пустые.

6. возвращаем настройки:

sp_configure ‘allow updates’, 0
go

7. После этого удалось запустить конфигуратор и база заработала. 

Также база может заработать после удаления первого флага.

Еще из решений, которые есть в сети, полная замена таблицы Config.

Что у меня использовалось:

Платформа 1С: 1С:Предприятие 8.3 (8.3.10.2466)

SQL: Microsoft SQL Server 2008 R2 Standard Edition (64-bit) 10.50.6220.0

Также обратил внимание, что проблема повторяется на всех версиях платформ и SQL.

Всем удачи с решением таких проблем. Если есть трудности, обращайтесь, помогу.

p.s. бекап был, но терять даже несколько часов работы не очень хотелось