Копии баз данных и размер БД. Проблемы и пути решения

30.11.22

База данных - Архивирование (backup)

Столкнулся с проблемой быстрого роста объема БД. Статья о том, как решал эту проблему.

С административными функциями в процессе работы почти не сталкивался. Но появилась необходимость сделать локальную копию рабочей БД на компьютере пользователя в файловой версии. Базовая конфигурация УТ 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 записей). Такой подход работает лучше.

С помощью вышеописанного почистил все таблицы, относящиеся к "копии баз данных". На работоспособность базы данных и информационной базы это ни как не сказалось. Архив при выгрузке информационной базы уменьшился в два раза. И его получилось загрузить в файловую версию БД.

Прошу сильно не пинать - это моя первая статья. Может, кому-нибудь будет полезна.

размер БД копии

См. также

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

Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS!

6000 руб.

06.11.2012    72215    625    45    

84

Архивирование (backup) Системный администратор Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Программа позволяет выполнять автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    15481    17    6    

23

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

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

14.07.2024    7664    limonen    16    

19

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

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

24.05.2024    2914    Kernelbug    9    

20

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

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

23.05.2024    9276    human_new    18    

56

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

Скрипт позволяет высвобождать место в операционную систему, занятое файлом базы MS SQL в итерациях с заданным количеством мегабайт

28.03.2024    2035    Garilia    9    

17

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

В Postgres достаточно подробная документация, и, видимо, поэтому при инсталляции Postgres для 1С большинство параметров приходится выставлять самим. Параметров в Postgres много, а составить эффективную комбинацию не так просто. Все упрощается, если рассмотреть профиль нагрузки, например, 1С это прежде всего профиль OLTP нагрузки – так устроены его метаданные (объекты). Если сосредоточиться на оптимизации профиля OLTP, понимание Postgres сразу упростится.

15.02.2024    3775    1CUnlimited    14    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. roman72 388 02.12.22 12:33 Сейчас в теме
С почином!
Однако, механизм копий баз данных подаётся как средство повышения производительности на уровне пользователей.
Итак с предубеждением относился к 1С:Аналитике, теперь ещё больше..
4. Redokov 82 12.12.22 18:10 Сейчас в теме
(1) А почему плохая настройка инструмента неопытным человеком увеличило Ваше предубеждение против 1С:Аналитики? Сама аналитика здесь при чем? Нормальный инструмент, если понимать ограничения
2. Neiron_1C 159 02.12.22 22:42 Сейчас в теме
А горе консультант был уволен из-за этого косяка или по другой причине?
3. DrMih 8 05.12.22 08:42 Сейчас в теме
(2) Есть сейчас такая категория "около1Сников" - любителей сертификатов. Он один из них. Кроме наличия сертификатов и поверхностного знания общего администрирования в голове ничего. Косяк обнаружил через месяц после его увольнения.
5. sergio111 15.12.22 15:48 Сейчас в теме
если надо почисть таблицу в ms sql, есть команда truncate table dbo._"имя таблицы"". очень быстро удаляет.
Оставьте свое сообщение