mysql的逻辑备份和恢复
备份指定的数据库或此数据库中的某些表
mysqldump [options] db_name [tables] >backup.sql
备份指定的一个或多个数据库
mysqldump --databases 数据库1 [数据库2 数据库3]>backup.sql
备份所有的数据库
mysqldump --all-databases >backup.sql
恢复
完全恢复
mysql -uroot -p dbname <bakfile
备份恢复后数据并不完整,还需要将备份后执行的日志进行重放,语法如下:
mysqlbinlog binlog-file |mysql -uroot -p
mysqldump -uroot -p -l -F test >test.dmp -l参数表示给所有表加读锁,-F表示声称一个新的日志文件,
基于时间点的恢复:
假设12点发生了误操作:
mysqlbinlog --stop-date="2014-08-25 11:59:59" binlog |mysql -uroot -p
mysqlbinlog --start-date="2014-08-25 12:01:00" binlog |mysql -uroot -p
基于位置恢复
mysqlbinlog --stop-position="3648" binlog |mysql -uroot -p
mysqlbinlog --start-position="3670" binlog |mysql -uroot -p