mysql/mardiadb“回收站”

utugiqy6  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(461)

我正在使用mardiadb,我想知道是否有一种方法可以在我的服务器上安装一个“回收站”,如果有人删除了一个表或任何东西,它会被转移到回收站,并很容易恢复。
不是说安装东西来恢复它和所有的东西,而是一个“保存的地方”,在那里它得到存储(我有足够的空间),直到我决定删除它或只是保持24小时。
有什么想法吗?

bvn4nwqk

bvn4nwqk1#

不存在这样的功能。http://bugs.mysql.com takes “功能请求”。
这种特性必然涉及mysql;它不能完全在操作系统的文件系统中完成。这是因为正在运行的mysql在ram中缓存fs不知道的信息。因为表/db/proc/trigger/etc的信息并不完全位于一个文件中。相反,额外的信息存在于其他更一般的文件中。
有了myisam,你的目标在fs中部分是可能的。myisam表由3个文件组成: .frm , .MYD', .myi。mysql仍然需要刷新一些东西,以便在fs将这3个文件移到其他地方之前忘记它对表的了解。米桑要走了;所以别想用那个“引擎”。 在innodb中,表由.ibd文件(如果使用每个表的文件)加上.frm文件,还有一些公共信息ibdata1文件。如果table是PARTITIONed` ,布局更为复杂。
在版本8.0中,上一段的大部分内容都将变得不正确——一个重大的变化正在发生。
“事务”是一种撤消对表的写入的方法。。。

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

实际上,撤销日志就像一个回收站——但只在记录级别,而且只有在执行之前 COMMIT .
MySQL8.0将增加ddl语句的功能(例如, DROP TABLE )在交易中。但是,再一次,直到 COMMIT .
想想 COMMIT 就像冲洗回收站一样。

相关问题