Реструктуризация базы

Новый режим реструктуризации (обновление базы данных на сервере в режиме v2)

Реструктуризация базы

Дано:

Произвольная таблица (регистр, документ, справочник) в произвольной базе данных 1С, 100 млн строк, 60 Гб места на жестких дисках.

Требуется:

1. Добавить 1 произвольный реквизит (измерение).

2. Добавить индекс по уже существующему реквизиту (измерению).

3. Удалить 1 или несколько существующих реквизитов (измерений).

В режиме обычного обновления платформа по каждому из этих пунктов будет действовать следующим образом:

– создание копии исходной таблицы с новой структурой колонок;

– select из старой таблицы insert в новую;

– переименование новой таблицы, truncate старой таблицы.

И все это в транзакции.

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

Наш любимый вендор 1С наконец-таки пошел навстречу крупным компаниям, использующим платформу для промышленных решений и серьезной автоматизации. Начиная с версии 8.3.11 появился новый механизм реструктуризации, более “интеллектуальный”, чем описанный выше.

Как он отработает?

1. Для любой таблицы будет выполнена инструкция alter table. Выполняется мгновенно. Без копирования строк из старой таблицы в новую. Будет добавлена колонка в таблицу БД с указанным Вами типом. Если тип, к примеру, ссылочный – значение колонки во всех строках будет вида “ПустаяСсылка” (16-ричное число 0x00000000000000000000000000000000).

2. Для добавления индекса сразу будет запущена инструкция create index. Без копирования строк из старой таблицы в новую. Если индексов несколько – команды create выполняются параллельно. На таблице 100 млн строк индексы по 3 реквизитам добавились за 30 минут (реальный живой тест не на самом мощном ПК с обычным жестким диском, не SSD).

3. В случае с реквизитом будет также выполнена инструкция alter. А вот в случае с удалением измерения из регистра накопления (например) – все несколько сложнее. Платформе придется выполнить “свертку” (group by) по новому составу измерений и записать новые данные в новую таблицу. Также это вызовет и перезапись таблицы итогов. 

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

Проведенные тесты:

1. Таблица табличной части документа, 80 млн строк, добавлены индексы по 3-м реквизитам ТЧ. Отработало за 35 минут.

2. Таблица периодического регистра сведений (ЦеныНоменклатуры), у 3-х измерений установлено свойство “ведущее“. 100 млн. строк. Индексы построились за 1 час 20 минут.

При всех операциях лог-файл “распухал” вполне прогнозируемо относительно исходного размера таблицы в мегабайтах.

Как запустить обновление в новом режиме?

1. На сервере 1С обязательно должен быть установлен runtime Java 8. Разрядность Java обязательно должна совпадать с разрядностью сервер 1С. Для 32 бит качаем 32 бит, для 64 – 64. Скачать можно здесь: https://java.com/ru/download/

2. На сервере БД 1С, для службы агента sql обязательно должны быть разрешены подключения по TCP/IP (настраивается в диспетчере конфигурации SQL). Драйвер JDBC использует подключение tcp/ip для выполнения запросов t-sql.

3.1 Пакетный запуск

Текст скрипта для PowerShell (файлы .ps1)

Start-Sleep -Seconds 3 Get-WMIObject Win32_Process|where{$_.name -eq '1cv8.exe' -and $_.getowner().user -eq $env:UserName}|%{stop-process $_.ProcessId}Start-Sleep -Seconds 1
Start-Process -FilePath “C:\Program Files (x86)\1cv8\8.3.12.1529\bin\1cv8.exe” -ArgumentList ” CONFIG /S localhost\bd_test /N UpdateRobot /P 123456 /UC 123456789 /UpdateDBCfg -Server -v2 “

В БД 1С должен быть создан пользователь UpdateRobot, с одной единственной ролью, с одним единственным правом доступа “Обновление конфигурации базы данных”. Все остальные права доступа (администрирование, администрирование данных) – не нужны.

В таком режиме ход обновления можно отслеживать только через консоль администрирования кластера 1С и с помощью инструментов сервера БД (MS SQL Studio).

3.2 Настройка файла conf

Смотрим, что написано в файле conf

C:\Program Files (x86)\1cv8\8.3.12.1529\bin\conf

Ка правило, путь в нем указан так: ConfLocation=C:\Program Files (x86)\1cv8\conf

Правим указанный файл так, чтобы он содержал строку: UpdateDBCfg=v2

Пример:

SystemLanguage=System
UpdateDBCfg=v2

Далее, чтобы обновиться в режиме v2:

Конфигуратор – конфигурация БД – обновить конфигурацию БД на сервере.

Тесты проводились: платформа 8.3.12.1529 (клиент-сервер, 32 бит), сервер БД MS SQL 2012.

Буквально недавно в нашей организации таким образом было успешно обновлено 14 баз данных 1С размером от 500 Гб до 1 Тб.

ВАЖНО (выдержка с ИТС):

“2-я версия механизма реструктуризации работает только для клиент-серверного варианта работы информационной базы в том случае, если в качестве СУБД используется Microsoft SQL Server или PostgreSQL.

Если планируется использование 2-й версии механизма реструктуризации совместно с СУБД Microsoft SQL Server, то сервер «1С:Предприятия» для соединения с СУБД должен использовать сетевой протокол TCP/IP (в терминах СУБД).

Работа 2-й версии механизма реструктуризации не поддерживается в том случае, если сервер «1С:Предприятия» подключается к СУБД Microsoft SQL Server с использованием сетевых протоколов Разделяемая память или Именованные каналы.”

https://its.1c.ru/db/v8311doc#bookmark:adm:TI000000376

UPD 14.06.2019

ВАЖНО: Если обновление по v2 падает с ошибкой – одна из причин может быть в том, что в вашей БД есть индексы, отличные от стандартных платформенных (добавленные вручную) – их необходимо физически удалить (именно удалить, а не отключить) перед запуском обновления.

Источник: https://infostart.ru/1c/articles/934237/

Как ускорить работу 1С

Реструктуризация базы

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

Добавляются новые пользователи, компьютер со временем устаревает и перестает удовлетворять системным требованиям. Все эти факторы негативно влияют на быстродействие. В этой статье, на примере программы 1С:Бухгалтерия 3.

0, рассмотрим несколько способов ускорить работу программы.

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

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

Откройте перечень регламентных и фоновых заданий: раздел Администрирование –> Обслуживание –> Регламентные операции –> Регламентные и фоновые задания.

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

Рассмотрим, как отключить автоматическую загрузку курсов валют. Установим курсор на нужную строку и сделаем двойной щелчок мышью.

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

Рассмотрим, как настроить расписание загрузки курсов валют. Нужно установить курсор на нужную строку и сделать двойной щелчок мышкой. Галка включено должна быть установлена. Нажать на ссылку Расписание. В открывшемся окне перейти на нужную закладку, например, дневное, установить время начала (на скриншоте 12:00) и нажать Ок. При такой настройке курсы будут загружаться каждый день с 12:00.

На закладке Фоновые задания можно отменить уже выполняющееся фоновое задание нажав по соответствующей кнопке. Если появится сообщение, как на скриншоте, просто нажать ОК.

Войдите в конфигуратор. Откройте меню Администрирование –> тестирование и исправление. Установите необходимые флажки (можно установить все) и нажмите выполнить.

Некоторые варианты проверки будут понятны только техническим специалистам, но тем не менее рассмотрим их подробнее:

  • Реиндексация таблиц информационной базы – перестраивает индексы таблиц и повышает быстродействие работы программы;
  • Проверка логической целостности информационной базы –включает в себя ряд стандартных проверок целостности прикладных объектов, например, проверка того, что все объекты метаданных в пределах одной ветки имеют уникальные имена;
  • Проверка ссылочной целостности информационной базы – проверка целостности базы данных для обнаружения «битых» ссылок. Например, если какой-либо объект конфигурации ссылается на несуществующий объект. Если выбираем такой вариант, то дополнительно становятся доступны настройки:
    • При наличии ссылок на несуществующие объекты означает, что при обнаружении «битых» ссылок, алгоритм будет обрабатывать такие ссылки в соответствии с выбранным вариантом;
    • При частичной потере данных объектов означает, что остаток данных достаточен для восстановления данных какого-либо объекта.
  • Пересчет итогов – перерасчет итогов таблиц регистров накопления и регистров бухгалтерии. Этот вариант проверки так же может увеличить быстродействие программы;
  • Сжатие таблиц информационной базы – уменьшает размер базы данных. Сжатие происходит за счет удаления лишних данных внутри конфигурации. Ваши введенные данные не пострадают;
  • Реструктуризация таблиц информационной базы – оптимизирует структуру базы данных с целью повышения быстродействия.

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

Про назначение полнотекстового поиска ранее я уже снял видеоурок, рекомендую его посмотреть.

Если после просмотра видео вы решите, что он вам не требуется, просто отключите его. Для этого зайдите в раздел Администрирование –> Общие настройки –> Поиск данных и снимите флажок использования.

Если же хотите его использовать, тогда обновите индекс. Для этого нажмите на ссылку Настроить. В открывшимся окне нажмите на кнопку Обновить индекс.

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

  • 1С:Предприятие 8.3 (…) – версия платформы;
  • Бухгалтерия предприятия, редакция 3.0 (…) – версия релиза.

Проверить наличие обновлений и самостоятельно обновить программу можно из меню Администрирование –> интернет поддержка и сервисы –> обновление версии программы. При затруднениях рекомендуется обратиться в обслуживающую организацию.

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

Нужно зайти в папку с установленной платформой в конечную папку bin. Запустить файл chdbfl, прописать путь к базе, поставить галку исправлять обнаруженные ошибки и нажать выполнить.

После окончания тестирования окно закрыть и проверить базу на работоспособность.

Меню Администрирование –> Функциональность. Внимательно проверить все закладки и отключить неиспользуемые функции.

Например, если в организации нет экспорта или производства, эти настройки можно отключить. (включить можно в любой момент).

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

Данные рекомендации вполне можно сделать самостоятельно. В статье описано именно действия с программой. Помимо них для ускорения работы 1С можно настроить используемую антивирусную программу, проверить параметры компьютера и при необходимости увеличить его характеристики или заменить на новый, установить твердотельный жесткий диск SSD.

Источник: https://coderstar.ru/statyi/uskorenie-raboty

Тестирование и исправление базы 1С 8.3: какие галочки ставить

Реструктуризация базы

Иногда в работе с программой 1С 8.3 могут возникнуть какие-то непредвиденные ситуации — сбои в работе, программа выдает какие-то ошибки, не проводится документ или же просто некорректно отображаться информация. В таких случаях, первое что может помочь — это произвести тестирование и исправление информационной базы 1С 8.3.

Тестирование и исправление информационной базы 1С

Запускаем нашу информационную базу 1С в режиме Конфигуратор и заходим в пункт меню Администрирование — Тестирование и исправление.

Стоит помнить, что перед любыми действиями с информационной базой 1С необходимо выполнить ее резервное копирование.

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

Реиндексация таблиц информационной базы 1С: что это

При работе с программой 1С 8.3 вся информация (заполнение справочников, создание документов и т.п.) записывается в таблицы. Кроме основных таблиц существуют вспомогательные таблицы, в которых эти данные сортируются по заданным полям, для ускорения поиска, что увеличивает быстродействие программы 1С — это таблицы индексирования.

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

Для исправления такого рода ошибок в базе 1С устанавливаем галочку Реиндексация таблиц информационной базы.

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

Проверка логической целостности информационной базы 1С

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

При этом программа 1С может работать, но ошибка будет возникать при обращении к тому документу (или объекту) в момент создания которого произошел сбой.

При тестировании и исправлении и установке данной галочки будет произведена проверка логических ошибок в структурах таблиц информационной базы.

Проверка ссылочной целостности информационной базы 1С

В ходе работы с программой 1С могут возникнуть ссылки на  несуществующие или  разрушенные объекты, так называемые битые ссылки. Они могут в результате сбоя или непосредственного удаления объекта. В случае, если в ходе проверки будет такой объект найден, необходимо в настройке дополнительно галочками указать, какие действия с ним производить.

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

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

Пересчет итогов

Иногда в отчетах могут отражаться неверные данные. Мы исправляем, перепроводим документы, а они не меняются… Видим цифру, открываем карточку счета — документа нет. В чем может быть проблема? Все просто — сбились итоги.

Для удобства работы в программе 1С 8.3 существуют вспомогательные таблицы, которые хранят данные об уже просчитанных итогах. Они нужны, чтобы при обращении к необходимой информации она не выбиралась из общих таблиц, а получалась из таблицы итогов. Это значительно экономит время обработки информации.

Например, данные из таблицы итогов по регистру Остатки материалов, позволяют нам быстро определить их остатки на складах на определенную дату. Установив галочку при тестировании — Пересчет итогов, будут пересчитаны итоги во всей информационной базе 1С и заново занесены в таблицы итогов.

Сжатие таблиц информационной базы 1С

При удалении объектов в информационной базе 1С (документов, справочников и т.п.) они не удаляются физически, эти записи остаются в таблицах, но пользователь их не видит. В результате накопления таких объектов, увеличивается объем информационной базы 1С, что приводит к замедлению работы.

Сжатие таблиц в 1С 8.3 — это физическое удаление записей, которые ранее были помечены на удаление и удалены из программы, информация о них удаляется полностью из информационной базы, в результате таблицы базы становятся меньше. Такого же эффекта можно достичь путем выгрузки и загрузки файла информационной базы через Конфигуратор (*.dt).

Реструктуризация таблиц информационной базы 1С

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

Обращаем внимание на переключатель, который задает что делать при тестировании — выполнять Только тестирование (в этом случае будет выведена только информация об ошибках) или Тестирование и исправление ошибок.

После установки параметров тестирования, нажимаем кнопку Выполнить и ждем результат.

В строке состояния отображается информация о ходе тестирования.

По окончании тестирования 1С будет выведена информация об ошибках и их исправлении.

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

См. также:

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

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

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Источник: https://BuhExpert8.ru/obuchenie-1s/administrirovanie-1s/testirovanie-i-ispravlenie-bazy-1s-8-3-kakie-galochki-stavit.html

Быстрая реструктуризация базы данных

Реструктуризация базы

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

Начиная с платформы версии 8.3.11.2867 1С оптимизировала типовой алгоритм реструктуризации, поэтому разработка наиболее актуальна для более ранних версий 8.3 и 8.2.

О реструктуризации опубликовано достаточно много информации, но все же кратко опишу, что это и в чем проблема.  Реструктуризация в рамках 1С – это изменение структуры и состава таблиц базы данных и перенос имеющихся данных в изменённые таблицы. Обычно реструктуризация выполняется в тот момент, когда вы нажимаете “Обновить конфигурацию базы данных” в Конфигураторе.

 

Основная проблема заключается в том, что при типовой реструктуризации (в платформах до версии 8.3.11.2867) создается пустая таблица новой структуры, в которую копируются данные из исходной таблицы. В случае большого размера исходной таблицы реструктуризация может затянуться на несколько часов, а иногда и дней.

При этом БД остается недоступной и повышается риск порчи БД вследствие возможных системных сбоев.

  Одно из решений – подмена проблемной таблицы пустой копией, обновление базы и приведение структуры исходной таблицы в соответствие с новой структурой таблицы подмены  вручную.

Но этот способ связан с необходимостью выполнения ряда рутинных и достаточно нудных, на мой взгляд, действий: – анализ объектов реструктуризации в 1С;  – получение внутренних имен подменяемых таблиц в 1С; – генерация скриптов сознания копий подменяемых таблиц в ms management studio; – создание копий и подмена исходных таблиц в ms management studio; – обновление базы в 1С;  – анализ новой структуры таблиц подмены в ms management studio;  – подготовка скриптов корректировки структуры исходных таблиц, либо корректировка исходных таблиц в форме мастера в ms management studio; – подмена пустых копий исходными таблицами в ms management studio;

– удаление пустых копий ms management studio;

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

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

Порядок проведения быстрой реструктуризации с помощью обработки “БыстроеОбновлениеБД.epf”:

1. Заблокируйте доступ к обновляемой БД. 2. Выполните монопольный вход в программу и запустите обработку “БыстроеОбновлениеБД.epf”. 3. Убедитесь в наличии актуальной копии БД с помощью команды “Получить дату последней резервной копии”. 4. Выберите в списке объекты, которые необходимо обновить с подменой таблиц. 5.

Выполните команду “Подготовить базу к реструктуризации”. 6. Закройте монопольную сессию; 7. Выполните обновление БД в конфигураторе. 8. Выполните монопольный вход в программу и запустите обработку “БыстроеОбновлениеБД.epf”. 9. Выполните команду “Завершить реструктуризацию”.
10.

Разблокируйте доступ к обновляемой БД – база готова к работе.

Результаты выполнения всех команд отображаются в поле “Журнал выполнения”.

Дополнительные команды обработки:
Анализ выбранных/подмененных таблиц” – выводит в поле журнала информацию о размере выбранных объектов:

Показать скрипт подмены таблиц” – выводит в поле журнала текст скрипта SQL для подмены рабочих таблиц пустыми копиями:

Отмена: откат к исходному состоянию” – команда возвращает базу в состояние до подмены таблиц, пустые копии удаляются; 
Анализ изменения структуры таблиц после обновления базы” – выводит в поле журнала информацию о изменениях внутренней структуры выбранных объектов после обновления конфигурации БД:

 
Показать скрипт завершения реструктуризации” – выводит в поле журнала текст скрипта SQL для корректировки структуры исходных таблиц и обратной подмены:

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

Всем удачи!

Источник: http://obrabotki.vsepro1s.ru/public/1149698/

Поделиться:
Нет комментариев

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

    Ваш e-mail не будет опубликован. Все поля обязательны для заполнения.