mysql数据库的全量与增量的备份以及恢复方式

 更新时间:2024年09月14日 10:17:02   作者:Computer Virus  
在数据库管理中,全量备份与恢复是将整个数据库的数据导出并在需要时完整地恢复,这通常使用mysqldump工具完成,增量备份则是在全量备份的基础上,只备份那些自上次全量备份后发生变化的数据,这需要数据库的二进制日志(binlog)开启

一、全量备份与恢复

1.全量备份

mysqldump -uroot -proot --databases -default-character-set=utf8mb4 > backup.sql

2.删掉某个数据库

drop database sys;

3.全量恢复数据库

mysql -uroot -proot < backup.sql;

二、增量备份与恢复

1.查看增量是否开启,我们发现log_bin开启证明开启了

show varibles like '%bin%';

2.创建一个数据库并创建表中信息

create table stu_info(

stu_nu int primary key auto_increment,

stu_name varchar(30) not null

) auto_increment=1001;

3.插入数据

insert into stu_info values(null,'张三'),(null,'李四'),(null,'王五');
select * from stu_info;

4.进行一次全量的备份

mysqldump -uroot -proot --all-databases --default-character-set=utf8mb4 > backup1.sql

5.做完备份刷新一下数据库,重新进行写入数据

mysqladmin -uroot -proot flush-logs

6.在数据库中增加一条新的数据,删除原来的一条数据

insert into stu_info values (null,'李丽');
delete from stu_info where stu_nu=1002;
select * from stu_info;

7.删掉其中一个数据库

drop databases mydb;

三、全量、增量的数据库恢复

1.先刷新一下数据库

flush logs;

2.查看数据库之前的所有的数据

show master logs;

3.查看当前使用的数据库

show master status;

4.查看之前数据的操作,确定在哪里被删除的,我们发现在926时候删除的

show binlog events in 'binlog.000009';

5.先进行一个全量恢复

mysql -uroot -proot < backup1.sql

6.查看数据库信息

show databases;

7.我们看mydb数据发现虽然是进行了全量恢复,但是我们没恢复删除前的数据。

select * from stu_info;

8.将删除数据前的数据记录设置为增量数据

mysqlbinglog binlog.000009 > increment.sql

9.进行增量恢复的操作

mysqlbinlog -uroot -proot binlog.000009 --start-position=4 --stop-position=822 -r result.sql

mysql -uroot -proot < result.sql

10.查看数据是否恢复

select * from stu_info;

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 解决Mysql5.7.17在windows下安装启动时提示不成功问题

    解决Mysql5.7.17在windows下安装启动时提示不成功问题

    这篇文章主要介绍了解决Mysql5.7.17在windows下安装启动时提示不成功问题,需要的朋友可以参考下
    2017-03-03
  • MYSQL批量UPDATE的两种方式小结

    MYSQL批量UPDATE的两种方式小结

    本文主要介绍了两种MySQL批量UPDATE的方式,SQL的foreach循环和使用INSERT...ON DUPLICATE KEY UPDATE,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-11-11
  • MySQL之解决字符串数字的排序失效问题

    MySQL之解决字符串数字的排序失效问题

    这篇文章主要介绍了MySQL之解决字符串数字的排序失效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 解决MySQL报错Error 3948 (42000): Loading local data is disabled问题

    解决MySQL报错Error 3948 (42000): Loading loc

    在执行MySQL项目过程中意外出现的报错,之前也没有遇到过,报错信息如下,Error 3948 (42000): Loading local data is disabled; this must be enabled on both the client an,本文小编就给大家介绍一下解决报错的方法,需要的朋友可以参考下
    2023-09-09
  • MySQL索引总结(Index Type)

    MySQL索引总结(Index Type)

    本文主要介绍了MySQL索引总结(Index Type),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Mysql数据库错误代码中文详细说明

    Mysql数据库错误代码中文详细说明

    在mysql开发中出现错误代码各种各样,下面我来给大家收集常用见的mysql使用过程中出错代码的中文说明,希望些文章对各位朋友有所帮助了
    2013-08-08
  • 一句命令完成MySQL的数据迁移(轻量级数据)

    一句命令完成MySQL的数据迁移(轻量级数据)

    有时候我们需要将数据库迁移的本地,对于数据量不大的数据完全可以采用下面的命令实现,如果数据量比较大,建议使用专业的工具,例如帝国备份王等
    2013-08-08
  • 详解MySQL中的事务与ACID特性

    详解MySQL中的事务与ACID特性

    这篇文章主要为大家介绍了Mysql 中的事务,包括事务的基本概念和 ACID 特性、事务的隔离级别和具体实现方法等,并提供相应的代码示例,希望对大家有所帮助
    2023-05-05
  • MySQL数据表字段操作指南之添加、修改与删除方法

    MySQL数据表字段操作指南之添加、修改与删除方法

    这篇文章主要介绍了MySQL中使用ALTER TABLE语句修改数据表结构的方法,包括添加、修改和删除字段,通过实例演示了如何高效地管理数据表结构,需要的朋友可以参考下
    2024-12-12
  • mysql支持跨表delete删除多表记录

    mysql支持跨表delete删除多表记录

    Mysql可以在一个sql语句中同时删除多表记录,也可以根据多个表之间的关系来删除某一个表中的记录
    2012-12-12

最新评论