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

posted on 2014-08-26 10:46  zitong  阅读(194)  评论(0编辑  收藏  举报