mysql数据库有什么好的备份还原工具?
数据备份是数据容灾的最后一道防线,即便有着两地三中心的架构,备份也依然重要。如果备份出问题,备份时影响了交易业务,备份数据无法恢复,这些也是企业难以承受的。所以选择合适的备份工具尤为重要。
每个企业级数据库都会有配套的备份工具,MEB(MySQL Enterprise Backup)就是MySQL企业版中非常重要的工具之一,是为企业级客户提供的数据备份方案。
Xtrabackup一直作为MEB 开源版备胎而存在,从MySQL 8.0开始情况可能会变得有所不同。
图片来源:网络
在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB备份/恢复体验会更好,目前xtrabackup还不支持这些特性。
mysql中drop的表能恢复吗?
情况1、如果你有该库的整体备份或对这个表的单独备份,那么也许可以恢复。可以将最新的备份恢复到一个备用的服务器上,导出那表的内容,完成恢复情况2、如果没有任何备份,那就基本没戏了。一般删除表的操作是drop table,日志中不会记录删除具体行数的记录。表所对应目录下的文件已经被删除(innodb独立表空间,单表归为一文件)。
同样的情况适用于myisam数据库引擎,对应的myd/myi/frm文件均被删除。
这不像windows还有垃圾箱,是不可逆的操作此外,对数据库最危险的操作就是对表进行删除行、删除表或删库的操作了,所以任何对数据库有高危风险的操作前最重要的就是备份!备份!再备份!
MySQL的数据如何恢复到任意时间点?
恢复数据库到之前的某个时间点,必须要有日志备份。下面是一个使用日志的示例: create database db1 go alter database db1 set recovery full go backup database db1 to disk='db1.bak' with init--首先要对数据库进行全备份,否则checkpoint会阶段inactive的日志(类似于simple recovery) go use db1 go create table t(col int) go ---一些数据库操作 ---一些数据库操作 ---一些数据库操作 --假设你在15点15分以后删除了这个表 drop table t --如果想恢复这个表,需要对数据库进行日志备份 use master go backup log db1 to disk='db1.trn' with norecovery go ---然后执行以下操作 use master go restore database db1 from disk='db1.bak' with norecovery go restore log db1 from disk='db1.trn' with recovery,stopat='2009-03-08 15:15:00'--这时,数据库恢复到15:15的状态。