Платформа "1С:Предприятие" 8.3.14
15.11.2018
В составе платформы "1С:Предприятие" версии 8.3.14 доступны два новых механизма для работы с данными:
Совместное использование этих механизмов позволяет:
Технология Дата акселератора реализована в виде сервиса кластера серверов "1С" и обладает рядом специфических особенностей:
Сервис недоступен при использовании режима совместимости 8.3.13 и ниже.
Минимальные системные требования:
За стратегию управления выделением памяти отвечает параметр overcommit_memory. Значение по умолчанию – 0.
Необходимо установить значение 1 (всегда выделять столько памяти, сколько просит приложение). Устанавливается с помощью команды sudo sysctl -w vm.overcommit_memory=1. Проверить можно с помощью команды sudo cat /proc/sys/vm/overcommit_memory.
Для того чтобы политика выделения памяти оставалась такой же и после перезагрузки сервера необходимо сделать следующее:
Управление файлом подкачки осуществляется через дополнительные параметры системы в свойствах компьютера. Нажимаем кнопку Параметры в секции Быстродействие.
В открывшемся окне на вкладке Дополнительно находим секцию Виртуальная память и нажимаем кнопку Изменить.
Выбираем диск для размещения файла подкачки. Выбираем переключатель Указать размер. Указываем размер файла подкачки (и минимальный, и максимальный). Нажимаем кнопку Задать, затем ОК. Выполняем перезагрузку компьютера.
Возможны два основных варианта развертывания сервиса Дата акселератора:
Рекомендуемые настройки требований назначения функциональности для кластера из двух серверов следующие:
Рабочий сервер, выделенный под Дата акселератор:
Центральный сервер кластера:
Для управления копиями баз данных необходимо через меню Все функции вызвать соответствующую стандартную обработку.
В открывшемся окне можно управлять копиями баз данных и составом метаданных, хранящихся в них.
Важно обратить внимание на следующие параметры:
Справа, в дереве метаданных, необходимо указать те объекты метаданных, для которых будет создана копия.
При нажатии на кнопку Обновить копию начнется обновление текущей выделенной копии базы данных. Обновление копии выполняется в синхронном вызове, т.е. клиентское приложение после нажатия кнопки не будет отвечать, пока не будет полностью выполнен перенос данных. По окончании переноса клиентское приложение снова станет доступно.
Параллельное обновление копий баз данных невозможно. При попытке выполнения одновременного обновления будет возвращена ошибка "Параллельное обновление копии невозможно".
Для управления копиями баз данных из встроенного языка необходимо использовать менеджер "КопииБазыДанных".
Использование возможностей Дата акселератора доступно только:
Разработчик или пользователь указывает требования к запрашиваемым данным через свойства запроса или отчета. Требования задаются через свойства Требуемая актуальность данных и Требуемое время актуальности данных. Сервис копий баз данных решает, на какой базе будет выполняться запрос. Перед выполнением запроса проверяются следующие условия возможности его выполнения на копии базы данных:
В схеме компоновки данных за использование копии базы данных отвечают параметры Требуемая актуальность данных и Требуемое время актуальности данных на закладке Дополнительные настройки. Параметры Выводить актуальность данных и Выводить копию базы данных позволяют увидеть, где фактически выполнился запрос. Информация выводится в шапке отчета.
В запросе за использование копии баз данных отвечают свойства:
В результате запроса есть свойство КопияБазыДанных, в котором указывается имя копии, на которой выполнен запрос.
Определить, что запрос или отчет выполнялся Дата акселератором можно с помощью технологического журнала по событию "DBDA". Если копия базы данных расположена не в Дата акселераторе, то имя события в технологическом журнале будет соответствовать типу СУБД.
Для того чтобы отчет мог выполниться на копии, необходимо чтобы все таблицы, используемые при формировании отчета, были расположены в копии базы данных. Отчеты могут обращаться к множеству объектов метаданных. В некоторых случаях эти объекты метаданных могут явно не встречаться в тексте запроса на языке "1С", поэтому настройка списка объектов метаданных для размещения в копии может вызывать трудности.
Для упрощения этой процедуры можно воспользоваться обработкой Подбор таблиц для Дата акселератора. Она позволяет настроить копию несколькими способами:
По полученным данным обработка выбирает для копирования в копию необходимые объекты метаданных и запускает процесс обновления данных в копии так, чтобы она была готова к выполнению запроса.
Ниже приводится инструкция для сбора данных и использования этой обработки.
Необходимо узнать тип СУБД, на котором размещена база данных. Для этого можно воспользоваться консолью администрирования, посмотрев свойства информационной базы.
Далее потребуется понять, к каким таблицам идет обращение на СУБД при выполнении отчета. Сделать это можно с помощью технологического журнала. Ознакомиться с тем, что такое технологический журнал можно по ссылке https://its.1c.ru/db/v83doc#bookmark:adm:TI000000446
Настройки технологического журнала (logcfg.xml):
Копировать в буфер обмена<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log history="48" location="[ПутьКТехнологическомуЖурналу]">
<event>
<eq property="Name" value="[ИмяСобытия]"/>
<like property="Context" value="%[ИмяОтчета]%"/>
</event>
<property name="all"/>
</log>
</config>
В конфигурационном файле необходимо указать следующие параметры:
Если база продуктивная (параллельно работают другие пользователи) или в кластере зарегистрировано несколько информационных баз, то необходимо установить дополнительные отборы для свойств "processName" или "Usr" - например, добавив следующую строку в секцию event:
Копировать в буфер обмена<eq property="USR" value="[ИмяВашегоПользователя]"/>Выполняем отчет один раз. Убеждаемся, что в каталоге технологического журнала появился каталог рабочего процесса (rphost), содержащий не пустой файл логов.
Найдите нужный текст запроса в конфигурации. Получите его текст запроса и скопируйте в буфер обмена.
Определите имя отчета в терминах метаданных конфигурации.
Необходимо воспользоваться обработкой Подбор таблиц для Дата акселератора.
В поле Имя базы в Дата акселераторе необходимо указать имя копии базы данных. Можно указать как имя существующей копии, так и имя новой копии – при необходимости обработка создаст новую копию. Существующую копию можно выбрать по кнопке выбора.
В зависимости от выбранного способа получения информации о запросах в п 5.1. выполняем следующие действия:
Нажимаем кнопку Добавить таблицы и обновить копию. Обработка выполнит анализ текстов запросов, затем найдет соответствующие имена объектов метаданных, выполнит поиск копии базы данных по указанному ранее имени (в случае отсутствия создаст копию), добавит таблицы в копию и вызовет перенос данных.
По окончании работы в нижней табличной части будет указан список метаданных в терминах "1С" и СУБД, а также выдана информация о произведённых действиях или сообщение об ошибке в случае ее возникновения.
Убедитесь, что в дополнительных настройках СКД указаны параметры Требуемая актуальность данных, Требуемое время актуальности данных, Выводить актуальность данных и Выводить копию базы данных.
Запустите выполнение отчета.
По окончании его формирования в заголовке табличного документа будет указана копия базы данных, из которой получены данные и дата актуальности данных.
Если в заголовке указано "Копия базы данных: не используется", значит, отчет был выполнен в основной базе. В таком случае проверьте настройки СКД на закладке Дополнительные настройки.
Данные о конфигурации кластера:
Настраиваем требования назначения функциональности (см. раздел 2):
Применяем настроенные требования.
<?xml version="1.0"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<log history="48" location="C:\techlogs\Report">
<event>
<eq property="Name" value="DBMSSQL"/>
<like property="Context" value="%Отчет.ВедомостьПоТоварамНаСкладах%"/>
</event>
<property name="all"/>
</log>
</config>
- Требуемая актуальность данных = Любые;
- Требуемое время актуальности данных = 86400;
- Выводить актуальность данных = Выводить;
- Выводить копию базы данных = Выводить
Ошибка возникает, потому что для выполнения операции не хватило виртуальной памяти. Проблема решается в зависимости от используемой операционной системы:
- Операционная система семейства Windows:
- Если ошибка возникает при выполнении запроса или отчета, попробуйте удалить из копии баз данных неиспользуемые таблицы.
- Попробуйте увеличить размер файла подкачки.
- Попробуйте увеличить объем оперативной памяти.
- Операционная система семейства Linux:
- Проверьте значение параметра overcommit_memory с помощью команды sudo cat /proc/sys/vm/overcommit_memory, если значение отличается от 1, установите его с помощью команды sudo sysctl -w vm.overcommit_memory=1.
- Попробуйте увеличить объем оперативной памяти.
Такая проблема может возникнуть, потому что нет ни одной копии, в которой бы располагались все таблицы, необходимые для выполнения запроса, либо данные в копиях устарели. Способы решения проблемы:
- Увеличьте значение параметра Требуемое время актуальности данных.
- Проверьте, все ли таблицы есть в копии. Это можно сделать, например, выполнив поочередное обращение к таблицам с помощью запросов. В свойстве КопияБазыДанных объекта РезультатЗапроса будет указано, на какой копии выполнился запрос.
- Проверьте текст запроса на языке "1С" и состав объектов метаданных в копии. В некоторых случаях необходимо вручную добавить используемые перечисления и константы.
В случае, если настройки выполнены корректно, а устранить проблему своими силами не получается, необходимо отправить информацию в техническую поддержку.
Для этого необходимо предоставить следующую информацию:
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">
<dump create="true" location="[КаталогДампов]" type="0" prntscrn="false" externaldump="1"/>
<log location="[КаталогЛогов]" history="24">
<event>
<ne value="" property="Name"/>
</event>
<property name="all"/>
</log>
<plansql/>
</config>
Собранный технологический журнал может быть большого размера, поэтому не рекомендуется собирать его дольше 15 минут либо более того времени, которого достаточно для воспроизведения проблемы.
Отправлять собранные данные необходимо на электронный адрес betaplatform@1c.ru с отметкой "DBDA" в теме письма.
ВЫ МОЖЕТЕ ПРЯМО СЕЙЧАС СКАЧАТЬ ОБРАБОТКУ "Подбор таблиц для Дата акселератора"
НА ЖЕСТКИЙ ДИСК ВАШЕГО КОМПЬЮТЕРА