方法二:滚动日志复制文件
| mysql> flush logs; #滚动日志 [root@stu18 data] # cp mysql-bin.000001 /zhao/mysql-bin.000001 #复制导出二进制文件 |
(3)二进制增备
首先添加数据信息
| mysql> use hellodb; mysql> INSERT INTO students(Name,Age,Gender,ClassID,TeacherID) values ('Yang kang',22,'M',3,3); |
然后二进制增备
| [root@stu18 data] # mysqlbinlog --start-position=14203 --stop-position=14527 mysql-bin.000001 > /zhao/binlog_`date +%F_%H`.sql |
解析:–start-position=14203是上次全备之后的二进制事件位置;–stop-position=14527最近一天的二进制事件位置。
2.4、模拟数据库损坏,实现恢复工作
| mysql> DROP DATABASE hellodb; #删除数据库 ############下面这些过程要在离线状态下执行############ mysql> SET sql_log_bin=0; #先关闭二进制日志 mysql> flush logs; #滚动日志 [root@stu18 ~] # mysql -uroot -pmypass < /zhao/database_2013-08-13.sql #导入数据库备份文件 [root@stu18 ~] # mysql -uroot -pmypass < /zhao/binlog_2013-08-13_19.sql #导入增量备份文件 [root@stu18 ~] # mysql -uroot –pmypass #登录查看,恢复完成 mysql> SET sql_log_bin=1; |
这种备份方式恢复简单,但是恢复还原之后索引会出现错误需要重建,而且备份结果会占据很大的空间,请酌情使用。
PS:mysqldump常用命令小结
备份MySQL数据库的命令
| mysqldump -hhostname -uusername -ppassword databasename > backupfile.sql |
备份MySQL数据库为带删除表的格式
备份MySQL数据库为带删除表的格式,能够让该备份覆盖已有数据库而不需要手动删除原有数据库。
| mysqldump -–add-drop-table -uusername -ppassword databasename > backupfile.sql |
直接将MySQL数据库压缩备份
| mysqldump -hhostname -uusername -ppassword databasename | gzip > backupfile.sql.gz |
备份MySQL数据库某个(些)表
| mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 > backupfile.sql |
同时备份多个MySQL数据库
| mysqldump -hhostname -uusername -ppassword –databases databasename1 databasename2 databasename3 > multibackupfile.sql |
仅仅备份数据库结构
| mysqldump –no-data –databases databasename1 databasename2 databasename3 > structurebackupfile.sql |
备份服务器上所有数据库
| mysqldump –all-databases > allbackupfile.sql |
还原MySQL数据库的命令










