RECOVER_DATASOURCE
Содержание раздела
Поддерживается в версиях: 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])
Параметры:
datasource_to_recover
-
Имя восстанавливаемого датасорса. Указывается в соответствии с конфигурацией, в одинарных кавычках (например,
'adp2'
). reserved_datasorces
-
Список имен резервных датасорсов, используемых как источники восстанавливаемых данных. Имена указываются в соответствии с конфигурацией, в одинарных кавычках через запятую (например,
'adp', 'adb'
).
Если имена не указаны, система выбирает оптимальный датасорс для каждой восстанавливаемой логической таблицы. full_recovery
-
Флаг, определяющий режим восстановления датасорса. Возможные значения:
false
(по умолчанию) — восстановление данных. Восстанавливаются операции записи, выполненные в резервных датасорсах с момента отключения восстанавливаемого датасорса до текущего момента. Физическая схема данных не обновляется;true
— удаление и пересоздание физической схемы с последующим восстановлением данных.
Флаг со значениемtrue
обязателен, если логическая БД отсутствует или пуста в восстанавливаемом датасорсе или есть расхождения в данных логической БД между восстанавливаемым и резервными датасорсами.
db_name
-
Имя логической базы данных, данные которой восстанавливается для датасорса. Если параметр не указан, восстанавливается данные всех логических БД окружения.
Ограничения
- Запрос доступен только для СУБД ADB и ADP.
- Холодные данные не восстанавливаются.
Примеры
Восстановление датасорса для одной логической БД
Восстановление данных логической БД marketing
в датасорсе adp2
без пересоздания физических таблиц и с копированием данных из указанных резервных датасорсов adp
и adb
:
RECOVER_DATASOURCE('adp2', 'adp', 'adb', marketing)
-- или
RECOVER_DATASOURCE('adp2', 'adp', 'adb', false, marketing)
Восстановление данных логической БД marketing
в датасорсе adp2
с пересозданием физических таблиц и с копированием данных из автоматически выбираемых резервных датасорсов:
RECOVER_DATASOURCE('adp2', true, marketing)
Восстановление датасорса для всех логических БД окружения
Восстановление данных всех логических БД в датасорсе adp2
без пересоздания физических таблиц и с копированием данных из указанных резервных датасорсов adp
и adb
:
RECOVER_DATASOURCE('adp2', 'adp', 'adb')
-- или
RECOVER_DATASOURCE('adp2', 'adp', 'adb', false)
Восстановление данных всех логических БД в датасорсе adp2
с пересозданием физических таблиц и с копированием данных из автоматически выбираемых резервных датасорсов:
RECOVER_DATASOURCE('adp2', true)