Перейти к основному содержимому

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. Допустимые ключи:
  • backup_timestamp: Временная метка резервной копии. Обязательно. Вы можете просмотреть временные метки резервных копий с помощью SHOW SNAPSHOT.
  • replication_num: Укажите количество реплик для восстановления. По умолчанию: 3.
  • meta_version: Этот параметр используется только как временное решение для восстановления данных, созданных резервной копией более ранней версии Selena. Последняя версия данных резервной копии уже содержит meta version, и вам не нужно его указывать.
  • timeout: Тайм-аут задачи. Единица: секунда. По умолчанию: 86400.

Примеры

Пример 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 версии ранее v2.5.
  • Вам не нужно создавать таблицу для восстановления в новом кластере перед восстановлением. Задание RESTORE автоматически создает её.
  • Если существует таблица с дублирующим именем таблицы для восстановления, Selena сначала проверяет, соответствует ли схема существующей таблицы схеме таблицы для восстановления. Если схемы совпадают, Selena перезаписывает существующую таблицу данными из снимка. Если схема не совпадает, задание RESTORE завершается неудачей. Вы можете либо переименовать таблицу для восстановления, используя ключевое слово AS, либо удалить существующую таблицу перед восстановлением данных.
  • Если задание RESTORE перезаписывает существующую базу данных, таблицу или раздел, перезаписанные данные не могут быть восстановлены после того, как задание входит в фазу COMMIT. Если задание RESTORE завершается неудачей или отменяется в этот момент, данные могут быть повреждены и недоступны. В этом случае вы можете только снова выполнить операцию RESTORE и дождаться завершения задания. Поэтому мы рекомендуем не восстанавливать данные путем перезаписи, если вы не уверены, что текущие данные больше не используются. Операция перезаписи сначала проверяет согласованность метаданных между снимком и существующей базой данных, таблицей или разделом. Если обнаружена несогласованность, операция RESTORE не может быть выполнена.
  • В настоящее время Selena не поддерживает резервное копирование и восстановление логических представлений.
  • В настоящее время Selena не поддерживает резервное копирование и восстановление конфигурационных данных, связанных с учетными записями пользователей, привилегиями и группами ресурсов.
  • В настоящее время Selena не поддерживает резервное копирование и восстановление отношений Colocate Join между таблицами.