我正在使用mardiadb,我想知道是否有一种方法可以在我的服务器上安装一个“回收站”,如果有人删除了一个表或任何东西,它会被转移到回收站,并很容易恢复。不是说安装东西来恢复它和所有的东西,而是一个“保存的地方”,在那里它得到存储(我有足够的空间),直到我决定删除它或只是保持24小时。有什么想法吗?
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中,上一段的大部分内容都将变得不正确——一个重大的变化正在发生。“事务”是一种撤消对表的写入的方法。。。
.frm
.MYD',
。mysql仍然需要刷新一些东西,以便在fs将这3个文件移到其他地方之前忘记它对表的了解。米桑要走了;所以别想用那个“引擎”。 在innodb中,表由
文件(如果使用每个表的文件)加上
文件,还有一些公共信息
文件。如果table是
BEGIN; INSERT/UPDATE/DELETE/etc... if ( change-mind ) then ROLLBACK; else COMMIT;
实际上,撤销日志就像一个回收站——但只在记录级别,而且只有在执行之前 COMMIT .MySQL8.0将增加ddl语句的功能(例如, DROP TABLE )在交易中。但是,再一次,直到 COMMIT .想想 COMMIT 就像冲洗回收站一样。
COMMIT
DROP TABLE
1条答案
按热度按时间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中,上一段的大部分内容都将变得不正确——一个重大的变化正在发生。
“事务”是一种撤消对表的写入的方法。。。
实际上,撤销日志就像一个回收站——但只在记录级别,而且只有在执行之前
COMMIT
.MySQL8.0将增加ddl语句的功能(例如,
DROP TABLE
)在交易中。但是,再一次,直到COMMIT
.想想
COMMIT
就像冲洗回收站一样。