Восстановление из корзины
Чтобы предотвратить потерю данных из-за ошибочных действий, 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).
Обзор процесса восстановления
- Выполните
SHOW CATALOG RECYCLE BIN, чтобы запросить список объектов в корзине, доступных для восстановления. - Выберите подходящую команду
RECOVERв зависимости от типа объекта (DATABASE / TABLE / PARTITION). - После восстановления убедитесь, что объект снова виден, а данные не повреждены.
Запрос содержимого корзины
Перед восстановлением убедитесь, что нужный объект всё ещё находится в корзине.
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 для нового объекта или удалите его, затем повторите восстановление.