RECOVER_DATASOURCE

Содержание раздела
  1. Восстанавливаемые сущности
  2. Действия перед запросом
  3. Результат выполнения
  4. Восстановление материализованных представлений
  5. Восстановление нескольких датасорсов
  6. Синтаксис
  7. Варианты ответа
    1. Параметры ответа
  8. Ограничения
  9. Примеры
    1. Восстановление датасорса для одной логической БД
    2. Восстановление датасорса для всех логических БД окружения

Поддерживается в версиях:  6.7 / 6.6 / 6.5.

Запрос восстанавливает датасорс, обновляя или воссоздавая в нем физическую схему и/или данные указанной или всех логических БД окружения.

Восстановление датасорса возможно на основе данных резервных датасорсов, указанных в запросе или автоматически выбранных системой.

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

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

Восстанавливаемые сущности

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

Поддерживается восстановление обычных логических таблиц и партиций; партиционированные таблицы не восстанавливаются.

Действия перед запросом

Перед восстановлением отключите датасорс командой DISABLE_DATASOURCE.

Результат выполнения

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

При наличии ошибок в процессе восстановления датасорс остается неактивным, а синхронизация материализованных представлений с этим источником и исполнение retention-правил — приостановленными.

Восстановление материализованных представлений

Если данные материализованных представлений, размещенные в датасорсе, были утеряны во время сбоя, пересоздайте эти представления после успешного восстановления датасорса.

Чтобы пересоздать представления, используйте комбинацию команд DROP MATERIALIZED VIEW и CREATE MATERIALIZED VIEW.

Восстановление нескольких датасорсов

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

Синтаксис

RECOVER_DATASOURCE(datasource_to_recover[, reserved_datasorces][, full_recovery][, db_name][, recover_batch_size])

Параметры:

datasource_to_recover

Имя восстанавливаемого датасорса. Указывается в соответствии с конфигурацией, в одинарных кавычках (например, 'adp2').

reserved_datasorces

Список имен резервных датасорсов, используемых как источники восстанавливаемых данных. Имена указываются в соответствии с конфигурацией, в одинарных кавычках через запятую (например, 'adp', 'adb').
Если имена не указаны, система выбирает оптимальный датасорс для каждой восстанавливаемой логической таблицы.

full_recovery

Флаг, определяющий режим восстановления датасорса. Возможные значения:

  • false (по умолчанию) — восстановление данных. Восстанавливаются операции записи, выполненные в резервных датасорсах с момента отключения восстанавливаемого датасорса до текущего момента. Физическая схема данных не обновляется;
  • true — удаление и пересоздание физической схемы с последующим восстановлением данных.
    Флаг со значением true обязателен, если логическая БД отсутствует или пуста в восстанавливаемом датасорсе или есть расхождения в данных логической БД между восстанавливаемым и резервными датасорсами.
db_name

Имя логической базы данных, данные которой восстанавливается для датасорса. Если параметр не указан, восстанавливается данные всех логических БД окружения.

recover_batch_size

Количество операций записи, восстанавливаемых за один проход. Если значение не указано, система восстанавливает операции записи пачками по 10 операций.

Варианты ответа

В ответе возвращается:

  • объект ResultSet с параметрами, описанными в секции Параметры ответа, при успешном выполнении запроса;
  • исключение при неуспешном выполнении запроса.

Параметры ответа

database

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

status

Текущий статус восстановления логической БД в датасорсе.
Возможные значения:

  • enabled — таблицы логической БД успешно восстановлены, датасорс активен;
  • disabled — некоторые или все таблицы логической БД не были восстановлены и требуют ручного разбора, датасорс неактивен.
details

Дополнительная информация о восстановлении логической БД в датасорсе.
Возможные значения поля:

  • Recovered from <cn_from> to <cn_to> — логическая БД успешно восстановлена, в нее добавлены операции записи с cn_from по cn_to;
  • <table_name>: <error_message> — не удалось восстановить логическую таблицу table_name и восстановление было прервано;
  • Error: database is enabled — логическая БД не может быть восстановлена для этого датасорса, так как он включен.

Ограничения

  • Запрос доступен только для СУБД ADB и ADP.
  • Запрос не исполняется, если в целевой логической БД есть открытая дельта или незавершенные операции записи, и ожидает закрытия дельты и завершения операций.
  • Холодные данные не восстанавливаются.

Примеры

Восстановление датасорса для одной логической БД

Восстановление данных логической БД marketing в датасорсе adp2 без пересоздания физических таблиц и с копированием данных из указанных резервных датасорсов adp и adb:

RECOVER_DATASOURCE('adp2', 'adp', 'adb', marketing)

-- или

RECOVER_DATASOURCE('adp2', 'adp', 'adb', false, marketing)

Восстановление данных логической БД marketing в датасорсе adp2 с пересозданием физических таблиц, копированием данных из автоматически выбираемых резервных датасорсов и восстановлением операций записи пачками по 20 штук:

RECOVER_DATASOURCE('adp2', true, marketing, 20)

Восстановление датасорса для всех логических БД окружения

Восстановление данных всех логических БД в датасорсе adp2 без пересоздания физических таблиц и с копированием данных из указанных резервных датасорсов adp и adb:

RECOVER_DATASOURCE('adp2', 'adp', 'adb')

-- или

RECOVER_DATASOURCE('adp2', 'adp', 'adb', false)

Восстановление данных всех логических БД в датасорсе adp2 с пересозданием физических таблиц, копированием данных из автоматически выбираемых резервных датасорсов и восстановлением операций записи пачками по 20 штук:

RECOVER_DATASOURCE('adp2', true, 20)