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

Восстановление из корзины

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

При выполнении DROP DATABASE/TABLE/PARTITION без ключевого слова FORCE Doris не удаляет данные физически сразу, а перемещает базу данных, таблицу или раздел в корзину. Впоследствии с помощью команды RECOVER можно восстановить объект и снова сделать его видимым.

Примечание

При выполнении DROP ... FORCE данные немедленно удаляются физически, и восстановить их из корзины невозможно.

Сценарии использования​

СценарийМожно восстановитьРекомендуемое действие
Случайно выполнена команда DROP DATABASE example_dbДаRECOVER DATABASE example_db
Случайно выполнена команда DROP TABLE example_db.example_tblДаRECOVER TABLE example_db.example_tbl
Случайно выполнена команда ALTER TABLE ... DROP PARTITION p1ДаRECOVER PARTITION p1 FROM example_tbl
Случайно выполнена команда DROP ... FORCEНетВосстановить из резервной копии

Предварительные условия​

  • У текущего пользователя есть необходимые права, например ALTER_PRIV, на восстанавливаемый объект.
  • Команда DROP была выполнена без FORCE.
  • Объект не был окончательно удалён из корзины вручную (см. DROP-CATALOG-RECYCLE-BIN).

Обзор процесса восстановления​

  1. Выполните SHOW CATALOG RECYCLE BIN, чтобы запросить список объектов в корзине, доступных для восстановления.
  2. Выберите подходящую команду RECOVER в зависимости от типа объекта (DATABASE / TABLE / PARTITION).
  3. После восстановления убедитесь, что объект снова виден, а данные не повреждены.

Запрос содержимого корзины​

Перед восстановлением убедитесь, что нужный объект всё ещё находится в корзине.

SHOW CATALOG RECYCLE BIN [WHERE NAME [= "name" | LIKE "name_matcher"]];

Описание параметров:

ПараметрОписание
NAME = "name"Фильтрация объектов в корзине по точному имени
NAME LIKE "name_matcher"Фильтрация объектов в корзине по шаблону с подстановочными символами (поддерживаются % и _)

Подробное описание синтаксиса и рекомендации по использованию приведены в руководстве по команде SHOW-CATALOG-RECYCLE-BIN. Дополнительную справку также можно получить, выполнив HELP SHOW CATALOG RECYCLE BIN в командной строке клиента MySQL.

Восстановление данных​

Выберите одну из следующих команд в зависимости от типа восстанавливаемого объекта.

Восстановление базы данных​

Восстановите базу данных с именем example_db:

RECOVER DATABASE example_db;

Восстановление таблицы​

Восстановите таблицу с именем example_tbl в базе данных example_db:

RECOVER TABLE example_db.example_tbl;

Восстановление раздела​

Восстановите раздел p1 в таблице example_tbl:

RECOVER PARTITION p1 FROM example_tbl;

Подробное описание синтаксиса RECOVER и рекомендации по использованию приведены в руководстве по команде RECOVER. Дополнительную справку также можно получить, выполнив HELP RECOVER в командной строке клиента MySQL.

Часто задаваемые вопросы​

Вопрос: что делать, если RECOVER сообщает, что объект не существует?​

Объект был удалён с помощью DROP ... FORCE, поэтому он не попал в корзину и не может быть восстановлен из неё. Восстановите данные из резервной копии.

Вопрос: что делать, если SHOW CATALOG RECYCLE BIN не возвращает нужный объект?​

Объект уже был окончательно удалён командой DROP CATALOG RECYCLE BIN, и восстановить его невозможно. Восстановите данные из резервной копии.

Вопрос: что делать, если при восстановлении возникает ошибка доступа?​

У текущего пользователя нет необходимых прав. Попросите пользователя с соответствующими полномочиями предоставить вам права или выполнить восстановление за вас.

Вопрос: что делать, если после восстановления данные не возвращаются?​

Был создан новый объект с тем же именем, который перекрывает восстановленный объект. Сначала выполните RENAME для нового объекта или удалите его, затем повторите восстановление.