它是逻辑备份,优点可以备份各种存储引擎1.备份所有的数据库#mysqldump-uroot-p--all-database>all.sql2.备份指定的数据库#mysqldump-uroot-ptest>test.sql3.备份指定数据库中的表#mysqldump-uroot-ptests>test_s.sql备份完全恢复实例(1)上午9点备份数据库#mysqldump-uroot-p-l-Fstudent>student.dmp-l给所有表加读锁-F生成一个新的日志文件此时s表数据如下:mysql>select*froms;+------+-------+------+-----------+|sno|sname|sex|address|+------+-------+------+-----------+|0901|Jim|1|shanghai||0902|helun|2|beijing||0903|sam|1|sichuan||0904|keke|1|xizang||0905|gugu|1|suzhou||0906|tang|2|guangdong|+------+-------+------+-----------+6rowsinset(0.00sec)备份完毕等到了student.dmp文件,还有mysql-bin.000012(2)9点半备份完毕,然后插入新的数据mysql>insertintosvalues('0907','liu','1','jiangxi');QueryOK,1rowaffected(0.00sec)mysql>insertintosvalues('0908','wang','2','wuxi');QueryOK,1rowaffected(0.00sec)(3)10点,数据库突然故障,数据无法访问.需要恢复备份:#mysql-uroot-pstudent<student.dmp恢复后的数据:mysql>select*froms;+------+-------+------+-----------+|sno|sname|sex|address|+------+-------+------+-----------+|0901|Jim|1|shanghai||0902|helun|2|beijing||0903|sam|1|sichuan||0904|keke|1|xizang||0905|gugu|1|suzhou||0906|tang|2|guangdong|+------+-------+------+-----------+6rowsinset(0.00sec)(4)使用mysqlbinlog恢复mysqldump备份以来的BINLOG#mysqlbinlogmysql-bin.000012|mysql-uroot-pstudent查询完全恢复后的数据:mysql>select*froms;+------+-------+------+-----------+|sno|sname|sex|address|+------+-------+------+-----------+|0901|Jim|1|shanghai||0902|helun|2|beijing||0903|sam|1|sichuan||0904|keke|1|xizang||0905|gugu|1|suzhou||0906|tang|2|guangdong||0907|liu|1|jiangxi||0908|wang|2|wuxi|+------+-------+------+-----------+8rowsinset(0.00sec)恢复完成!基于时间点的恢复(不完全恢复)由于误操作,比如删除了一张表,使用完全恢复是没有用的,我们需要的是恢复到误操作之前的状态,然后跳过误操作语句,再恢复后面执行的语句,完成恢复;例:(1)上午10点发生误操作,可以用如下语句备份和BINLOG将数据恢复到故障前#mysqlbinlog--stop-date="2010-10-319:59:59"/usr/local/mysql/var/mysql-bin.000013|mysql-uroot-p(2)跳过故障时间点,继续执行后面的BINLOG,完成恢复#mysqlbinlog--start-date="2010-10-3110:01:00"/usr/local/mysql/var/mysql-bin.000013|mysql-uroot-p基于位置恢复(不完全恢复)和基于时间点恢复类是,但是更加精确.因为同一时间点可能有多条SQL语句执行;例:#mysqlbinlog--start-date="2010-10-319:55:00"--stop-date="2010-10-3110:05:00"/usr/local/mysql/var/mysql-bin.000013>/tmp/mysql_restore.sql该命令将在/tmp/目录下创建小的文件,编辑它找到错误语句前后的位置号,例如前后位置号分别是368312和368315(2)恢复了以前的备份文件后,输入#mysqlbinlog--stop-position="368312"/usr/local/mysql/var/mysql-bin.000013|mysql-uroot-p#mysqlbinlog--start-position="368315"/usr/local/mysql/var/mysql-bin.000013|mysql-uroot-p
Copyright © 广州京杭网络科技有限公司 2005-2024 版权所有 粤ICP备16019765号
广州京杭网络科技有限公司 版权所有