RECOVER_DATASOURCE

Содержание раздела
  1. Параметры ответа
  2. Синтаксис
  3. Ограничения
  4. Примеры
    1. Восстановление датасорса для одной логической БД
    2. Восстановление датасорса для всех логических БД окружения

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

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

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

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

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

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

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

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

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

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

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

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

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 — логическая БД не может быть восстановлена для этого датасорса, так как он включен.

Синтаксис

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 операций.

Ограничения

  • Запрос доступен только для СУБД 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)