С административными функциями в процессе работы почти не сталкивался. Но появилась необходимость сделать локальную копию рабочей БД на компьютере пользователя в файловой версии. Базовая конфигурация УТ 11, доработанная, снята с поддержки. Документов в базе данных не более 100 в день, но практически к каждому документу прикрепляется скан печатной формы. Формат базы данных - MS SQL.
Здесь надо пояснить, что все дальнейшие действия производились с копией БД. При первичной выгрузке информационной базы размер файла достиг 31Гб. При загрузке в файловую версию архива, появилась ошибка - размер одной из таблиц превысил 4Гб. Первое логическое решение, вынести файлы из в тома на диске и затем сделать архив копии для дальнейшей загрузки в файловую версию. Был неприятно удивлен: после выгрузки прикрепленных файлов из БД в тома и создания архива, размер архива существенно вырос. Значит проблема не только в хранимых в базе данных файлов (в них, конечно, тоже). Скажу сразу, чистка файлов, удаление документов за период и другие действия, которые могли бы привести к уменьшению БД приводили ровно к противоположному результату.
Решил проверить - в каких таблицах в MS SQL больше всего данных. Спасибо за разработку Размер таблиц 1С в базе данных MS SQL. Саму разработку не качал, ничего сказать не могу, но использовал запрос из данной статьи, мне этой информации хватило.
После недолгой работы с полученным файлом в Excell, получил следующее:
_DbCopiesTrLogs | dbo | 1583667 | 47311216 | 47309192 | 2024 |
Config | dbo | 30294 | 621152 | 621096 | 56 |
_DbCopiesTrTables | dbo | 2980511 | 235352 | 235208 | 144 |
Поиск в интернете привел меня на следующую страницу: Размещение данных 1С:Предприятия. Таблицы и поля.
Откуда стало понятно, что две из трех самых больших таблиц это таблицы из механизма "Копии баз данных". С данным механизмом никогда не работал и не знал для чего он, пришлось знакомиться.
Посмотреть список и отредактировать список копий можно здесь:
В нашей базе данных обнаружилась одна копия, к которую были включены практически все объекты конфигурации.
Дальнейшее ознакомление с механизмом "Копии баз данных" показало, что данный механизм используется также и "1С:Аналитика", а именно эту программу установил без ведома других горе консультант (уже уволен). Мало того, что он установил программу, так еще и в рабочей базе добавил "копию базы данных". Которая еще к тому же почти год не обновлялась, что привело существенному росту базы данных. Проблема роста базы данных найдена. Решение тоже очевидно - удалить копию базы данных, но......
Попытка простого удаления копии привела к тому, что сервер сильно "задумался", база данных MS SQL начала расти прямо на глазах. Оставил данный процесс на ночь. Утром обнаружилась ошибка, связанная с тем, что на сервере на диске, где хранится база данных MS SQL закончилось место. Т.е. просто удаление копии базы данных не сработало, пришлось окунуться в MS SQL более глубоко.
Составил список таблиц, которые относятся к механизму "Копии баз данных":
Таблица копий _ DbCopies
Таблица настроек копий _DbCopiesSettings
Таблица состояний таблиц копий _DbCopiesTablesStates
Таблица изменений в процессе первоначального копирования _DbCopiesTrChanges
Таблица объектов изменений _DbCopiesTrChObj
Таблица c информацией по блокам первоначального копирования _DbCopiesInitialLast
Таблица журналов транзакций _DbCopiesTrLogs
Таблица с измененными в транзакциях таблицах _DbCopiesTrTables
Таблица перенесенных транзакций _DbCopiesUpdates
Решил их очистить и посмотреть, будет ли работоспособной информационная БД.
Видимо данная команда удаления записей в таблице является одной транзакцией (в MS SQL не силен). Так что при попытке очистить самую большую таблицу получил полный "висяк" сервера на долгое время. В SQL есть возможность удаления записей из таблицы в цикле партиями (по 5000-10000 записей). Такой подход работает лучше.
С помощью вышеописанного почистил все таблицы, относящиеся к "копии баз данных". На работоспособность базы данных и информационной базы это ни как не сказалось. Архив при выгрузке информационной базы уменьшился в два раза. И его получилось загрузить в файловую версию БД.
Прошу сильно не пинать - это моя первая статья. Может, кому-нибудь будет полезна.