MYSQL / MardiaDB 'корзина'

0

Я использую MardiaDB, и мне интересно, есть ли способ установки "корзины" на моем сервере, где, если кто-то удалил таблицу или что-то, что переместится в корзину и восстановить ее, просто.

Не говоря о установке вещей, чтобы восстановить его и все это, но мутно "сохранить место", где он хранится (у меня больше места достаточно), пока я не решит удалить его или просто держать его там в течение 24 часов.

Какие-нибудь мысли?

Теги:
mariadb
backup
restore

1 ответ

1
Лучший ответ

Такой функции нет. http://bugs.mysql.com принимает "запросы функций".

Такая функция обязательно будет включать MySQL; он не может быть полностью выполнен в файловой системе ОС. Это связано с тем, что запущенная mysql кэширует информацию в ОЗУ, о которой FS не знает. И поскольку информация о таблице /db/proc/trigger/etc не находится полностью в одном файле. Вместо этого дополнительная информация существует в других, более общих файлах.

С MyISAM ваша цель была частично возможной в fs. Таблица MyISAM состояла из 3 файлов: .frm, .MYD',.MYI'. Тем не менее, MySQL должен был бы сбросить что-то, чтобы забыть, что он знает о таблице, прежде чем fs может перемещать 3 файла где-то в другом месте. MyISAM уходит; поэтому даже не думайте об использовании этого "двигателя".

В InnoDB таблица состоит из файла .ibd (если используется file_per_table) плюс файл .frm, а также некоторая информация в ibdata1 файле ibdata1. Если таблица PARTITIONed, макет более сложный.

В версии 8.0 большая часть предыдущего абзаца станет неправильной - происходит существенное изменение.

"Транзакции" - это способ отмены записи в таблицу...

BEGIN;
INSERT/UPDATE/DELETE/etc...
if ( change-mind )
    then ROLLBACK;
    else COMMIT;

Эффективно, журнал отмены действует как корзина, но только на уровне записи, и только до тех пор, пока вы не выполните COMMIT.

MySQL 8.0 добавит возможность иметь инструкции DDL (например, DROP TABLE) в транзакции. Но, опять же, это только до COMMIT.

Подумайте о том, что COMMIT выполняет промывку корзины.

  • 0
    Возможно, вы знаете какое-нибудь расширение на основе Linux, которое может сделать такую вещь?
  • 0
    Не возможно в Linux. Смотрите мое дополнение.
Показать ещё 4 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню