Linux下实现MySQL数据备份和恢复的命令使用全攻略

2019-01-04 20:03:28刘景俊

方法二:滚动日志复制文件

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数据库的命令

mysql -hhostname -uusername -ppassword databasename < backupfile.sql