RESTORE
Восстанавливает данные в указанную базу данных, таблицу или раздел. В настоящее время Selena поддерживает только восстановление данных в OLAP таблицы.
Для обзора резервного копирования и восстановления см. руководство по резервному копированию и восстановлению.
RESTORE — это асинхронная операция. Вы можете проверить статус задания RESTORE с помощью SHOW RESTORE или отменить задание RESTORE с помощью CANCEL RESTORE.
ВНИМАНИЕ
- Только пользователи с привилегией ADMIN могут восстанавливать данные.
- В каждой базе данных одноврем енно разрешено только одно выполняющееся задание BACKUP или RESTORE. В противном случае Selena возвращает ошибку.
Синтаксис
RESTORE SNAPSHOT <db_name>.<snapshot_name>
FROM <repository_name>
[ ON ( <table_name> [ PARTITION ( <partition_name> [, ...] ) ]
[ AS <table_alias>] [, ...] ) ]
PROPERTIES ("key"="value", ...)
Параметры
| Параметр | Описание |
|---|---|
| db_name | Имя базы данных, в которую восстанавливаются данные. |
| snapshot_name | Имя снимка данных. |
| repository_name | Имя репозитория. |
| ON | Имя таблиц для восстановления. Если этот параметр не указан, восстанавливается вся база данных. |
| PARTITION | Имя разделов для восстановления. Если этот параметр не указан, восстанавливается вся таблица. Вы можете просмотреть имя раздела с помощью SHOW PARTITIONS. |
| PROPERTIES | Свойства операции RESTORE. Допустимые ключи:
|
Примеры
Пример 1: Восстанавливает таблицу backup_tbl в снимке snapshot_label1 из репозитория example_repo в базу данных example_db, временная метка резервной копии — 2018-05-04-16-45-08. Восстанавливает одну реплику.
RESTORE SNAPSHOT example_db.snapshot_label1
FROM example_repo
ON ( backup_tbl )
PROPERTIES
(
"backup_timestamp"="2018-05-04-16-45-08",
"replication_num" = "1"
);
Пример 2: Восстанавливает разделы p1 и p2 таблицы backup_tbl в snapshot_label2 и таблицу backup_tbl2 из example_repo в базу данных example_db, переименовывая backup_tbl2 в new_tbl. Временная метка резервной копии — 2018-05-04-17-11-01. По умолчанию восстанавливает три реплики.
RESTORE SNAPSHOT example_db.snapshot_label2
FROM example_repo
ON(
backup_tbl PARTITION (p1, p2),
backup_tbl2 AS new_tbl
)
PROPERTIES
(
"backup_timestamp"="2018-05-04-17-11-01"
);
Примечания по использованию
- Выполнение операций резервного копирования и восстановления на глобальном уровне, уровне базы данных, таблицы и раздела требует различных привилегий.
- В каждой базе данных одновременно разрешено только одно выполняющееся задание BACKUP или RESTORE. В противном случае Selena возвращает ошибку.
- Поскольку задания BACKUP и RESTORE занимают много ресурсов вашего кластера Selena, вы можете выполнять резервное копирование и восстановление данных, когда ваш кластер Selena не сильно загружен.
- Selena не поддерживает указание алгоритмов сжатия данных для резервного копирования данных.
- Поскольку данные резервируются как снимки, данные, загруженные после создания снимка, не включаются в снимок. Поэтому, если вы загружаете данные в старый кластер после создания снимка и до завершения задания RESTORE, вам также необходимо загрузить данные в кластер, в который восстанавливаются данные. Рекомендуется загружать данные в оба кластера параллельно в течение некоторого времени после завершения миграции данных, а затем перенести ваше приложение в новый кластер после проверки корректности данных и сервисов.
- До завершения задания RESTORE вы не можете выполнять операции с таблицей, которая восстанавливается.
- Primary Key таблицы не могут быть восстановлены в кластер Selena версии ранее v1.5.2.
- Вам не нужно создавать таблицу для восстановления в новом кластере перед восстановлением. Задание RESTORE автоматически создает её.
- Если существует таблица с дублирующим именем таблицы для восстановления, Selena сначала проверяет, соответствует ли схема существующей таблицы схеме таблицы для восстановления. Если схемы совпадают, Selena перезаписывает существующую таблицу данными из снимка. Если схема не совпадает, задание RESTORE завершается неудачей. Вы можете либо переименовать таблицу для восстановления, используя ключевое слово
AS, либо удалить существующую таблицу перед восстановлением данных. - Если задание RESTORE перезаписывает существующую базу данных, таблицу или раздел, перезаписанные данные не могут быть восстановлены после того, как задание входит в фазу COMMIT. Если задание RESTORE завершается неудачей или отменяется в этот момент, данные могут быть повреждены и недоступны. В этом случае вы можете только снова выполнить операцию RESTORE и дождаться завершения задания. Поэтому мы рекомендуем не восстанавливать данные путем перезаписи, если вы не уверены, что текущие данные больше не используются. Операция перезаписи сначала проверяет согласованность метаданных между снимком и существующей базой данных, таблицей или разделом. Если обнаружена несогласованность, операция RESTORE не может быть выполнена.
- В настоящее время Selena не поддерживает резервное копирование и восстановление логических представлений.
- В настоящее время Selena не поддерживает резервное копирование и восстановление конфигурационных данных, связанных с учетными записями пользователей, привилегиями и группами ресурсов.
- В настоящее время Selena не поддерживает резервное копирование и восстановление отношений Colocate Join между таблицами.