Варианты очистки базы данных::Журнал СА 12.2008
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Наука и технологии
Подписка
Где купить
Авторам
Рекламодателям
Магазин
Архив номеров
Вакансии
Контакты
   

  Опросы

Какие курсы вы бы выбрали для себя?  

Очные
Онлайновые
Платные
Бесплатные
Я и так все знаю

 Читать далее...

1001 и 1 книга  
20.12.2019г.
Просмотров: 4346
Комментарии: 0
Dr.Web: всё под контролем

 Читать далее...

04.12.2019г.
Просмотров: 5646
Комментарии: 0
Особенности сертификаций по этичному хакингу

 Читать далее...

28.05.2019г.
Просмотров: 6875
Комментарии: 2
Анализ вредоносных программ

 Читать далее...

28.05.2019г.
Просмотров: 7270
Комментарии: 1
Микросервисы и контейнеры Docker

 Читать далее...

28.05.2019г.
Просмотров: 6342
Комментарии: 0
Django 2 в примерах

 Читать далее...

Друзья сайта  

Форум системных администраторов  

sysadmins.ru

 Варианты очистки базы данных

Архив номеров / 2008 / Выпуск №12 (73) / Варианты очистки базы данных

Рубрика: Базы данных /  Оптимизация

Андрей Луконькин

Варианты очистки базы данных

На дворе декабрь, и самое время продолжить новогоднюю тему перехода на новую базу данных.

На интернет-форумах участились вопросы примерно следующего содержания: «Как создать копию рабочей базы данных, чтобы в ней не было документов, но при этом сохранились бы все справочники?». То есть организации по разным причинам приходят к тому, чтобы удалить накопившиеся обороты за несколько лет и начать с нового года работу в новой чистой базе. Действительно, так ли это просто, удалить десятки тысяч документов?

Существует несколько способов, у каждого есть свои плюсы и минусы, выбор наиболее подходящего остается за администратором.

Рассмотрим пример базы данных «1С:Предприятия» платформы 7.7.

Первый способ

С помощью типового инструмента «Обработка документов» пометить на удаление все документы за период (например, за год). Затем опять же, с помощью встроенного механизма «Удаление помеченных объектов», удалить помеченные документы.

Обработка пометки на удаление документов

Обработка пометки на удаление документов

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

Второй способ

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

Примером может служить следующий код:

Процедура УдалитьДокументы()

Док = Создатьобъект("Документ.ПриказПоОтпуску");

Док.ВыбратьДокументы();

Пока Док.ПолучитьДокумент() = 1 Цикл

Док.Удалить(1);

КонецЦикла;

КонецПроцедуры

Обязательным условием будет являться проведение полного тестирования и исправления базы в режиме конфигуратора («Администрирование -> Тестирование и исправление ИБ»). Но даже после тестирования никто не может дать гарантии работоспособности базы. Я бы оценил этот способ как достаточно быстрый, но рискованный.

Третий способ

Физическое удаление файлов базы данных, отвечающих за хранение документов. Это файлы DBF, начинающиеся с DH (шапки документов) и DT (табличные части), например DH665.DBF или DT877.DBF.

Кроме того, следует удалить файл 1SCONST.DBF, хранящий в себе периодические значения и константы (потом установить нужные значения констант в новой базе не составит большого труда). Если оставить этот файл как есть, то база будет не пригодна к работе, у справочников останется история периодических реквизитов, но документов, установивших эти значения, уже не будет существовать.

В ходе тестирования таблицы базы данных будут созданы вновь

В ходе тестирования таблицы базы данных будут созданы вновь

Тестирование и исправление базы в этом случае будет просто необходимо. В ходе процесса исправления вновь будут созданы файлы DH*.DBF, DT*.DBF и 1SCONST.DBF, но уже пустые. При первом запуске в режиме «Предприятие» будет произведено первоначальное заполнение базы данных.

Четвертый способ

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

Создание пустой базы данных

Создание пустой базы данных

Затем нужно через пункт меню «Конфигурация -> Загрузить измененную конфигурацию» загрузить файл 1CV7.MD от текущей рабочей программы. Таким образом, получим абсолютно чистую базу со всеми нужными структурами метаданных, но без введенных данных (справочников, документов). А так как документы нам и не нужны, то задача сводится просто к переносу справочников между двумя идентичными конфигурациями! Для этого существует масса инструментов, начиная от типовых обработок (Import77.ert/Export771.ert, TRANREF.ERT) и заканчивая конфигурацией «Конвертация данных», в которой, опять же, можно использовать стандартные правила обмена, исключив лишь оттуда обмен документов. Для удобства можно также перенести сведения о пользователях, скопировав подкаталог usrdef в каталог вновь созданной базы данных.

Итог

Какой из способов наиболее предпочтителен? Я бы отметил первый и четвертый как самые корректные и безопасные. Но и другие варианты тоже имеют право на существование, и если выполнять их осторожно, перед началом работы пользователей проверить внимательно базу данных, то можно сэкономить массу времени. И не забывайте делать архивные копии, как гласит народная мудрость: «Архив лишним не бывает». Проверено, это каждый раз так!


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-41
Fax: (499) 277-12-45
E-mail: sa@samag.ru