Команда POPULATE_CHANGELOG

Содержание раздела
  1. Порядок работы команды
  2. Заполнение журнала
  3. Синтаксис
    1. Параметры
    2. Ключевые слова
      1. --connect
      2. --clear
  4. Ограничения
  5. Примеры
    1. Создание и заполнение нового журнала
    2. Перезапись существующего журнала
  6. Варианты вывода команды
    1. Вывод при успешном восстановлении журнала
    2. Вывод при неуспешном восстановлении журнала

Команда POPULATE_CHANGELOG заполняет (воссоздает) журнал логической базы данных, если он отсутствует или заполнен частично.

Команду нужно выполнить перед выгрузкой бэкапа логической БД, если БД была создана в Prostore версии 5.3 или ниже или текущий журнал поврежден или недоступен. При штатной работе система, начиная с версии 5.4, автоматически заполняет журнал, и выполнение команды POPULATE_CHANGELOG не требуется.

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

Порядок работы команды

Команда заполняет журнал так:

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

Операции по созданию внешних таблиц в журнал не включаются.

Заполнение журнала

Чтобы заполнить журнал:

  1. Если в системе включена аутентификация запросов, отключите ее на время выполнения команды.
  2. Выполните команду:
    • (для Prostore версии 5.3 и ниже) перед любой выгрузкой бэкапа, если состав сущностей в исходной логической БД изменился по сравнению с предыдущей выгрузкой;
    • (для остальных версий) перед первой выгрузкой бэкапа логической БД, если эта БД была создана в Prostore версии 5.3 или ниже, или перед любой выгрузкой бэкапа, если текущий журнал недоступен/поврежден.
  3. Если вы отключали аутентификацию запросов на шаге 1, включите ее.

Синтаксис

java -jar <dtm_tools_file_name>.jar --connect <prostore_host:prostore_port/db_name> populate_changelog --clear

Параметры

dtm_tools_file_name

Имя jar-файла утилиты DTM Tools.

Ключевые слова

--connect

Задает строку подключения к ноде Prostore. Значение состоит из элементов:

  1. prostore_host — IP-адрес или доменное имя ноды Prostore;
  2. db_name — номер порта для подключения к ноде Prostore, равный значению параметра конфигурации DTM_CORE_HTTP_PORT;
  3. db_name — имя логической БД, для которой заполняется журнал.

--clear

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

Если ключевое слово не указано, команда создает и заполняет журнал, если он отсутствует, или заполняет журнал, если он пуст, а иначе возвращает ошибку.

Ограничения

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

Примеры

Создание и заполнение нового журнала

java -jar dtm-tools-1.19.jar --connect 10.92.3.86:9090/marketing populate_changelog

Перезапись существующего журнала

java -jar dtm-tools-1.19.jar --connect 10.92.3.86:9090/marketing populate_changelog --clear

Варианты вывода команды

Вывод при успешном восстановлении журнала

При успешном восстановлении журнала команда выводит сообщение POPULATE_CHANGELOG is done.

Ниже показан примерный вид вывода команды при успешном восстановлении журнала после его перезаписи (набор сообщений и их текст могут изменяться от версии к версии):

Started POPULATE_CHANGELOG process with params ...
Changelog history will be lost. Are you sure? Y / N
y
Got changes for datamart ...
Deny changes in datamart [...] with code [populate_...]
Successfully deleted /adtm/dtm/.../changelog
Allow changes in datamart ...
Connection is closed
POPULATE_CHANGELOG is done

Вывод при неуспешном восстановлении журнала

При неуспешном восстановлении журнала команда выводит текст ошибки.