Ошибка "Запись не найдена в менеджере имен базы данных" с катастрофическими последствиями и её лечение

24.05.24

База данных - Администрирование СУБД

Ситуация: при обновлении серверной базы данных произошёл сбой и теперь невозможно войти ни в конфигуратор, ни в 1С:Предприятие по причине ошибки, вынесенной в заголовок. Рецепт лечения.

Случилась сегодня ситуация: при обновлении конфигурации базы данных конфигуратор вывалился с ошибкой (суть которой не важна, да и не записали). После этого вход в базу стал невозможен: при попытке открыть её и клиентом, и конфигуратором, получили ошибку "Запись не найдена в менеджере имен базы данных".

Ситуацию усугубляло то, что бэкап перед обновлением, естественно, виновники торжества не сделали, последний бэкап датируется прошлой ночью, и за почти сутки десятки пользователей внесли сотни документов.

Зачем я пишу об этом? Затем, что в решении этой проблемы Гугл оказался не помощник:

  1. Гуглится огромная куча статей, где при аналогичной ошибке рекомендуется использовать утилиту восстановления файловых баз. А у них -- серверная.
  2. Гуглится огромная куча статей, где подобная ошибка возникает спорадически или при реструктуризации в результате каких-то манипуляций в расширении. В результате заход в конфигуратор и некие манипуляции там всё решают. А в нашем случае в конфигуратор зайти нельзя совсем.
  3. Что такое "менеджер имён базы данных", в какой таблице БД он хранится? Прямого ответа на этот вопрос Гугл не даёт.
  4. Есть несколько записей на разных форумах, когда человек столкнулся с такой же проблемой, ему советуют восстановить таблицы config, dbschema, files и т. п., но никакой информации о решении проблемы в итоге нет.

Итак, решение:

  1. Делаем копию битой базы при помощи pg_dump и куда-нибудь откладываем. Пока база бэкапится, виновнику торжества посылаем одну из картинок "Он не делал бэкапы".
  2. Разворачиваем из копии предыдущий ночной бэкап.
  3. "Менеджер имён базы данных" -- это данные, помимо прочих, хранящиеся в таблице params. Вот её нам и надо перетянуть из старого бэкапа в битую базу. Делаем дамп таблицы в развёрнутом бэкапе, очищаем таблицу в битой базе и загружаем из дампа.

Ответы на вопросы "как сделать дамп базы данных", "как сделать дамп отдельной таблицы", "как удалить содержимое таблицы" и "как загрузить данные из sql-дампа" в PostgreSQL Гугл уже знает достаточно хорошо.

Разумеется, эти советы надо применять осознанно и с умом. Возможно, параллельно стоит перетащить таблицу config. Также в нашем случае мы точно знали, что никаких других изменений в конфигурации между бэкапом и поломкой не происходило. Иначе можно получить разнообразные глюки.

Так как бэкапы -- наше всё, после восстановления имеет смысл сделать ещё один бэкап, запустить тестирование-исправление. А потом вообще развернуть чистую базу на той же конфигурации и перенести туда данные, например, через выгрузку-загрузку XML.

См. также

Администрирование СУБД Сервера Системный администратор Россия Бесплатно (free)

Доброго дня, коллеги. Рубрика - администрирование серверов 1С: Предприятие. Все еще остались живые сервера на платформе Windows, а в связи с этим и необходимость их обслуживать. На продуктивной среде, понятное дело, все должно работать, как часы, без всяких перезапусков и желательно 24/7, хотя для многих, скорее всего, это сферический коньв в вакуумен и большой техдолг по рефакторингу до такого результата. Поэтому скрипт, который приведу ниже, будет полезен не только на тестовых серверах, где идет активная разработка и эксперименты, которые могут выводить из строя службу сервера 1С, но и на продуктивных системах, описанных выше (да, с техдолгом, который почти невозможно устранить, и поэтому применяется костылирование с регулярным перезапуском службы).

23.07.2024    2824    mefalcon    12    

2

Администрирование СУБД Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В статье описала свой опыт аудита 1С базы, порядок действий + статьи, которые сильно помогли в работе.

14.07.2024    6277    limonen    15    

19

Администрирование СУБД Платформа 1С v8.3 Россия Бесплатно (free)

Безопасное полное удаление пользователей из конфигураций 1С.

25.06.2024    978    It-digit    5    

1

Администрирование СУБД Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

При хранении файлов в томах на диске они иногда исчезают. Разбираемся, почему.

23.05.2024    8409    human_new    18    

55

Администрирование СУБД Системный администратор Платформа 1С v8.3 Бесплатно (free)

Краткое описание шагов по установке, настройке и применению инструмента 1С:Исполнитель на операционной системе РедОС, а также по борьбе с некоторыми возникающими ошибками.

06.05.2024    903    artemusII    0    

1

Администрирование СУБД Системный администратор Программист Платформа 1С v8.3 Бесплатно (free)

Статья для тех, кто столкнулся с необходимостью пересчета итогов для "больших таблиц" и нет возможности поставить на паузу ИБ для проведения работ.

25.04.2024    2882    virustam    33    

12

Администрирование СУБД Системный администратор Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Бесплатно (free)

Иногда в конфигурации 1С:Бухгалтерский учет v3.0 возникает ситуация, когда программа всем пользователям выдает предупреждение, что авторизация не выполнена и работа программы будет завершена. Данная инструкция позволяет решить возникшую проблему.

24.04.2024    1726    Yan_Malyakov    0    

3
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. mrcamomile 81 24.05.24 14:34 Сейчас в теме
Спасибо, напишите в статье платформу на которой поймали эту ошибку.
3. Kernelbug 54 24.05.24 19:32 Сейчас в теме
(1) Не имеет значения. Ну 8.3.22.1750
2. SerVer1C 785 24.05.24 15:00 Сейчас в теме
Вы целиком перетягивали params или отдельные записи?
4. Kernelbug 54 24.05.24 19:33 Сейчас в теме
(2) Перетянул целиком, но потом пришел к выводу, что надо будет подробнее разобрать содержимое и переносить конкретные записи.
5. gurd 5 07.06.24 14:11 Сейчас в теме
Словил себе такую ошибку сегодня. При обновлении с реструктуризацией вылетела ошибка исключительной блокировки, не удалось завершить обновление. Эту ошибку полечил, вроде, заработало, но на некоторых запросах сыпалась ошибка Запись не найдена в менеджере имен базы данных.
В обновлении добавлялись несколько новых реквизитов, возможно, при реструктуризации эти новые реквизиты корректно в базу не записались, поэтому удалил добавленные реквизиты, сохранил изменения с реструктуризацией ИБ и ошибка исчезла.
Теперь при обновлении будем не только завершать сеансы пользователей, блокировать регламентные задания, но и стопать веб сервер на время обновления, чтобы ничего случайно не могло в базу подключиться.
6. Kernelbug 54 13.06.24 18:20 Сейчас в теме
(5) Конечно, в нормальной ситуации бэкапы рулят. Но если база такая, что восстановление из бэкапа занимает часов 5 и есть способы починить напрямую и быстрее, эти способы рулят тоже. Но бэкапы всё равно рулят.
7. paulwist 18.06.24 09:33 Сейчас в теме
(6)
"Менеджер имён базы данных" -- это данные, помимо прочих, хранящиеся в таблице params.


Как поймали (с помощью какого инструмента) имя таблички params??
8. Kernelbug 54 18.06.24 17:15 Сейчас в теме
(7) Гугл, глаза, сумбурная документация
9. gurd 5 21.06.24 03:20 Сейчас в теме
Сегодня снова получил себе такую ошибку. Никого в базе не было, регламентные задания заблокированы, веб сервер остановлен. По идее, никто не должен был помешать принятию изменений, но после появления сообщения с кнопкой "Принять", вылетает ошибка блокировки и конфигуратор вылетает. При попытке войти снова такая ошибка, конфигуратор недоступен. Почистил delete fr om Config WH ERE FileName = 'commit', в конфигуратор пустила, но в режиме клиента не проводились документы, опять там, где добавлял новые реквизиты: ошибка Запись не найдена в таблице имен...
Теперь уже одно удаление проблемных реквизитов с последующей реструктуризацией не прокатило, точнее после удаления проблемных реквизитов и попытке сохранить изменения вылетала ошибка, что не найдено поле и указано имя этого поля (так понял этот новый реквизит). Выполнил тестирование и исправление с включенными режимами: Пересоздание автономной конфигурации и Обновление размещения таблиц информационной базы. После этого дала выполнить удаление проблемных реквизитов и сохранить изменения с реструктуризацией, а потом повторил обновление, которое в первый раз не прошло, и все заработало.
Возможно, кто-то из пользователей пытался войти в 1С как раз в тот момент, когда нажал "Принять" при сохранении изменений.
Оставьте свое сообщение