当前位置: 首页 > news >正文

Mysql数据库的备份恢复

最近正在做一个异地数据的定期同步汇总工作,涉及到的数据库主要是Mysql数据库,用于存储现场的一些IOT采集的实时数据,所以做了以下备份恢复测试,现场和总部网络可定期联通,但速度有限,因此计划采用备份恢复增量文件方式,具体运行环境:Windows10 + mysql-8.0.19-winx64。

一、完全备份(数据库名称保持不变)

1.完全备份一个或多个完整的库 (包括其中所有的表)

    mysqldump -uroot -p123456 --databases test1 >D:\dev\mysql-8.0.19-winx64\backup\test1.sql ##备份一个test 库

2.完全备份 MySQL 服务器中所有的库

    mysqldump -uroot -p123456 --all-databases > D:\dev\mysql-8.0.19-winx64\backup\all.sql

3.完全备份指定库中的部分表

    mysqldump -uroot -p123456 test table1 > D:\dev\mysql-8.0.19-winx64\backup\test-table1.sql

4. 使用source恢复数据库的步骤

登录到mysql后,执行以下命令。

    source D:\dev\mysql-8.0.19-winx64\backup\test1.sql

5. 使用mysql命令恢复数据库,解决无须登录mysql数据库情况,使用-e删除数据表,执行mysql备份sql脚本的路径

    mysql -uroot -p -e 'drop table test.test;'

    mysql -uroot -p test1 < D:\dev\mysql-8.0.19-winx64\backup\test11.sq

    mysql -uroot -p -e 'show tables from test'

二、增量备份恢复

# 备份 生成新的二进制文件(例:mysql-bin.0000004,mysql-bin.0000005),这个脚本要求每天做,相当于增量的基础二进制文件,后续用这个恢复数据库。可参考附录的增量备份脚本(Increment_backup.bat)。

    mysqladmin -uroot -p123456 flush-logs

#使用64位编码机制去解码,按行读取详细内容,查看解析的内容,查看其他信息及配置详见附录。

    mysqlbinlog --no-defaults --base64-output=decode-rows -v D:\dev\mysql-8.0.19-winx64\data\mysql-bin.000001

#也可以将解析的内容输出到文件

    mysqlbinlog --no-defaults --base64-output=decode-rows -v D:\dev\mysql-8.0.19-winx64\data\mysql-bin.000014 >D:\dev\mysql-8.0.19-winx64\backup\outinfo.txt

# 1.一般恢复(用的最多)

    mysqlbinlog --no-defaults D:\dev\mysql-8.0.19-winx64\data\mysql-bin.000004 | mysql -u root -p 

# 2.基于位置点恢复,位置点可通过附录3的命令查询得到。

#仅恢复到操作 ID 为“1104242"之前的数据,即不恢复1104242位置点之后插入更新删除的数据 

mysqlbinlog --no-defaults --stop-position='1104242' D:\dev\mysql-8.0.19-winx64\data\mysql-bin.000008| mysql -uroot -p123456

# 3.基于时间点恢复

#仅恢复到16:40:00 之前的数据,即不恢复这个时间点之后的数据。

mysqlbinlog --no-defaults --stop-datetime="2023-04-24 16:40:00" --database=test1 D:\dev\mysql-8.0.19-winx64\data\mysql-bin.000009 | mysql -uroot -p

附录

1.查看 log_bin是否开启登录到mysql后,执行如下命令,见下图。

show variables like '%log_bin%';

如果log_bin为OFF,则需要在my.ini的配置文件中加入如下配置

l# 开启二进制日志功能
log-bin=mysql-bin
# 可选,指定二进制日志(binlog)的记录格式为MIXED(混合输入)
binlog_format = MIXED

2.查看当前使用的 logbin.000*** 日志文件,执行如下命令

show master status;

3.查看这个binlog的内容

show binlog events in 'mysql-bin.000014';

http://www.lryc.cn/news/63619.html

相关文章:

  • C++ 使用动态内存创建一个类
  • 2023年华中杯选题人数公布
  • 【黑马旅游案例记录(结合ES)】
  • 基于 A* 搜索算法来优化无线传感器节点网络的平均电池寿命(Matlab代码实现)
  • 三款自研AI应用引领未来,重塑行业新风尚
  • Kafka的命令行操作
  • 递归,回溯,分治(C++刷题笔记)
  • CentOS 7.6更改yum源
  • 三、进度管理
  • 基于LEACH和HEED的WSN路由协议研究与改进(Matlab代码实现)
  • ChatGPT镜像站收集【Free ChatGPT】(一)
  • PHP面试宝典之Mysql数据库基础篇
  • 4月记录总结
  • 每日学术速递4.29
  • 整数在内存中的存储:原码、反码、补码 大小端字节序
  • 【方法】 如何批量将RAR或其他压缩格式转换成ZIP?
  • 《道德经》
  • ABI Research产业研究:ZiFiSense如何革新物流货物及运输包装追踪
  • 家乡特色推荐系统~java~mysql
  • 二维码在设备点维一体化管理中的应用
  • 基于simulink使用混合波束成形对射频毫米波发射器进行建模
  • 面试官:v-model原理?
  • 兰林:科技赋能健康产业 助力乡村振兴建设
  • 小红书流量密码是什么,怎么掌握并运用
  • FL Studio 2023中文高级版水果编曲软件下载
  • 浅析如何写出高质量代码
  • 手把手教你 ,带你彻底掌握八大排序算法【数据结构】
  • 第十一章 Transform组件(上)
  • aac音频怎么转mp3,这几个方法很简便
  • 分屏视图上线,详情数据秒切换