MySQL备份与恢复之逻辑备份

【MySQL8入门到精通】备份恢复-物理&逻辑备份 备份的理由千千万,预防故障,安全需求,回滚,审计,删了又改的需求等等,备份的重要性不言而喻 阅读详情

逻辑备份Mysqldump

mysqldump为了保障备份点的数据一致,性,默认对所有表加上只读锁

基于时间点“不完全”恢复(point-to-time recovery)

T0:查看数据库的logs
注意数据库logs的变化
root@(none) 03:22:05>show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |   1036642 |
| mysql-bin.000002 |       143 |
| mysql-bin.000003 |     53376 |
| mysql-bin.000004 |       120 |
+------------------+-----------+
4 rows in set (0.00 sec) 
目前的log位置是000004
T1:备份数据库
root@cluster4 ~]# mysqldump -uroot --all-databases -F>all.db.T1.sql
T2:准备需要恢复的数据
执行SQL操作数据库
root@(none) 03:22:57>show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |   1036642 |
| mysql-bin.000002 |       143 |
| mysql-bin.000003 |     53376 |
| mysql-bin.000004 |       167 |
| mysql-bin.000005 |       167 |
| mysql-bin.000006 |       167 |
| mysql-bin.000007 |       120 |
+------------------+-----------+
7 rows in set (0.00 sec)

000005 000006 000007是在mysqldump备份时指定-F切换日志产生的。

root@(none) 03:23:20>use test;
Database changed
root@test 03:23:31>create table t2(id int(10));
Query OK, 0 rows affected (0.12 sec)
root@test 03:23:44>insert into t2 values(1);
Query OK, 1 row affected (0.04 sec)
root@test 03:23:57>flush logs;
Query OK, 0 rows affected (0.05 sec)

以上SQL日志在000007中,再切换一次日志。
root@test 03:24:05>show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |   1036642 |
| mysql-bin.000002 |       143 |
| mysql-bin.000003 |     53376 |
| mysql-bin.000004 |       167 |
| mysql-bin.000005 |       167 |
| mysql-bin.000006 |       167 |
| mysql-bin.000007 |       476 |
| mysql-bin.000008 |       120 |
+------------------+-----------+
8 rows in set (0.00 sec)
root@test 03:24:10>insert into t2 values(2);
Query OK, 1 row affected (0.00 sec)

这条ID=2的记录写在000008日志中。
root@test 03:24:18>show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |   1036642 |
| mysql-bin.000002 |       143 |
| mysql-bin.000003 |     53376 |
| mysql-bin.000004 |       167 |
| mysql-bin.000005 |       167 |
| mysql-bin.000006 |       167 |
| mysql-bin.000007 |       476 |
| mysql-bin.000008 |       328 |
+------------------+-----------+
8 rows in set (0.00 sec)
T3:破坏数据库
root@test 03:24:23>drop table t2;
Query OK, 0 rows affected (0.03 sec)

这个时间点数据库遭到破坏!

T4:恢复数据库
[root@cluster4 ~]# mysql -uroot <all.db.T1.sql 
这时候恢复的库里面没有t2这张表。只恢复到T1时间点。

使用binlog 000007做不完全恢复,恢复的时间点是 T3
[root@cluster4 mysql_3306]# mysqlbinlog --stop-datetime='2014-8-4 15:24:23' mysql-bin.000007 |mysql -uroot
第一条数据恢复
[root@cluster4 mysql_3306]# mysqlbinlog --stop-datetime='2014-8-4 15:24:23' mysql-bin.000008 |mysql -uroot
第二条数据也恢复了。

基于位置的“不完全”恢复

和point-to-time recovery原理一样。只是在redo binlog的时候,查看一下position

[root@cluster4 mysql_3306]# mysqlbinlog mysql-bin.000008 |more
。。。省略。。。
# at 199
#140804 15:24:18 server id 1  end_log_pos 297 CRC32 0x3bf9e3b6  Query   thread_id=21    exec_time=0     error_code=0
use `test`/*!*/;
SET TIMESTAMP=1407137058/*!*/;
insert into t2 values(2)
/*!*/;
# at 297
#140804 15:24:18 server id 1 <strong> end_log_pos 328</strong> CRC32 0x4ca081d0  Xid = 883
COMMIT/*!*/;
# at 328
at后的数字就是要用来基于位置恢复的点。

[root@cluster4 mysql_3306]# mysqlbinlog --stop-position="328" mysql-bin.000008 |mysql -uroot
恢复完成!

完全恢复

T0:查看数据库LOG
root@(none) 05:02:49>show binary logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |   1036642 |
| mysql-bin.000002 |       143 |
| mysql-bin.000003 |     53376 |
| mysql-bin.000004 |       167 |
| mysql-bin.000005 |       167 |
| mysql-bin.000006 |       167 |
| mysql-bin.000007 |       476 |
| mysql-bin.000008 |   3255287 |
+------------------+-----------+
8 rows in set (0.00 sec)
T1:备份
[root@cluster4 ~]# mysqldump -uroot --all-databases -F --all-databases>all.db.T2.sql
T2:写数据
root@test 05:09:18>select * from tfull;
+------+
| id   |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

root@test 05:09:31>insert into tfull select * from tfull;
Query OK, 2 rows affected (0.03 sec)
Records: 2  Duplicates: 0  Warnings: 0

root@test 05:09:47>select * from tfull;
+------+
| id   |
+------+
|    1 |
|    2 |
|    1 |
|    2 |
+------+
4 rows in set (0.00 sec)
备份当前binlog
T3:恢复
[root@cluster4 ~]# mysql -uroot <all.db.T2.sql 
[root@cluster4 mysql_3306]# mysqlbinlog mysql-bin.XXXXXX |mysql -uroot

恢复完成!

重点

mysqldump备份恢复的时候,想要实现不完全恢复和完全恢复,必须记录下备份时刻的binlog是哪个?

避开这些坑,你的Python爬虫才能稳定爬取IEEE Xplore(含反爬策略与MongoDB存储实战) 本文详细介绍了如何构建稳定的Python爬虫系统以爬取IEEE Xplore学术论文,包括反爬策略、MongoDB存储优化和断点续传机制。通过动态等待时间算法、请求头指纹管理和会话保持策略,有效应对IEEE的反爬机制。同时,优化MongoDB数据结构和索引,提升存储效率。最后,强调法律合规与伦理考量,确保爬虫合法合规运行。 阅读详情

相关推荐

CentOS7下Node.js v20+安装与常见依赖库问题解决指南

本文详细介绍了在CentOS7系统下安装Node.js v20+的完整流程及常见依赖库问题的解决方案。通过升级glibc到2.28+、配置环境变量以及处理libstdc++版本问题,帮助开发者顺利在老旧系统上部署最新版Node.js,提升开发效率。

weixin_30689307的博客 157

mysql数据库--逻辑备份

语法:mysqldump -u root -p1 -B db1 db2 db3 > /db123.bak。语法:mysqldump -u root -p1 db1 t1 t2 > /db1.t1_t2.bak。mysqldump -uroot -p123456 -d 数据库名 表名 > 备份的文件路径。语法:mysqldump -u root -p1 db1 t1 > /db1.t1.bak。语法: mysqldump -u root -p1 -A > /alldb.bak。

新人,分享学习笔记,有问题的地方还请多多指教 562

雷达气象学(8)——反射率因子图实战(强对流预警篇)

本文聚焦雷达反射率因子图在强对流预警中的实战应用,深入解析了柱状回波、有界弱回波区(BWER)、三体散射(TBSS)等关键回波结构特征,这些是识别超级单体风暴和大冰雹的核心“身份证”。文章强调从静态识别转向动态追踪与多源数据综合研判的思维转变,并提供了系统的实战分析流程与常见误区避坑指南,旨在提升对强对流天气的短临预警能力。

weixin_29213827的博客 486

Mysql数据库逻辑备份-mysqldump参数

上面只是展示了对不同引擎来讲加的参数只是为了让数据保持一致性,但在备份中业务并没有停止,时刻可能有新的数据进行写入,为了让我们知道备份时是备份了哪些数据,或者截止到那个指针(二进制日志),我们可以再加入 --master-data参数,备份好的sql文件就会记录从备份截至到哪个指针,指针之后的数据更新我们可以通过二进制日志进行恢复。②、导出单个库:加--lock-tables参数,这会在备份开始的时候锁该库的所有表,其他session可以读但不能更新该库的所有表,该库的数据一致;

oradbm的博客 9530

版电力系统故障录波_故障录波识图与典型故障波形分析

1、设置故障录波的目的故障录波装置是对电力系统运行状况进行监控的一种自动化设备。系统正常运行时,录波装置不启动录波,当系统发生故障时,通过启动录波装置迅速启动录波器录波,直接记录反应故障装置安装处系统故障的电气量。2、故障录波的作用(1)正确评价继电保护和自动装置的工作。(2)正确分析事故的原因并研究防止对侧。(3)发现继电保护和自动装置缺陷。(4)发现一次设备缺陷,及时消除隐患。(5)帮助寻找故...

weixin_42495661的博客 1万+

从淬火实验到仿真验证:用ANSYS APDL复现钢球冷却温度变化(含动画生成教程)

本文详细介绍了如何利用ANSYS APDL进行淬火过程的瞬态热分析仿真,以复现钢球冷却温度变化。内容涵盖从实验数据校准材料参数、构建高保真模型、设置非线性瞬态求解,到提取节点温度曲线和生成温度云图动画的全流程。通过APDL命令流实现自动化,为工程研发和学术研究提供高效、可靠的仿真验证方法。

pz8901234的博客 791

MySQL逻辑备份mysqldump

MySQL逻辑备份mysqldump 一、mysqldump 简介 mysqldump 是 MySQL 自带的逻辑备份工具。可以保证数据的一致性和服务的可用性。 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数据查询出来,将查询出的数据转 换成对应的 insert 语句,当我们需要还原这些数据时,只要执行这些 insert 语句,即可将对应的 数据还原。 二、备份命令 1、命令格式 mysqldump [选项] 数据库名 [表名] > 脚本名 或 mysqldump [选项] --数

TriAngel_的博客 978

博途PLC S7-1200/1500 ModbusTcp通信SCL代码篇(轮询)

博途PLC MODBUS TCP的详细讲解和注意事项,可以参看下面这篇博文,这里不在赘述。这篇作为SCL代码篇主要给出SCL语言下的轮训写法和注意事项。博途PLC1200/1500PLC ModbusTcp通信(轮询处理)_RXXW_Dor的博客-优快云博客。............

RXXW_Dor的博客 8425

MySQL逻辑备份

MySQL 的逻辑备份指的是使用 SQL 语句备份数据库的结构和数据,而不是直接备份数据库文件。通常使用mysqldump工具进行逻辑备份。mysqldump是最常用的逻辑备份工具,能够生成SQL脚本文件,这些文件可以用来重建数据库结构和数据。

Lzcsfg的博客 1567

零基础做完YOLOv8船只检测系统:HRSC2016数据集 + 完整UI,稳过答辩

亲爱的同学,通过这篇教程,你已经掌握了“基于YOLOv8的HRSC2016微小船只检测系统”从数据集处理、模型训练到Tkinter界面开发的全流程。这个课题既贴合“海事智能化”的产业战略,又涵盖了“目标检测、深度学习、界面开发”等多个毕设评分点,非常适合作为计算机或海事工程专业的毕业设计。在实践中,你可能会遇到“海面背景复杂导致船只漏检”“微小船只识别精度不足”“UI与模型推理同步卡顿”等挑战——别担心,这些都是技术成长的必经之路。

FJN110的博客 108

ADAMS软件二次开发:ADAMS软件API接口详解

API(Application Programming Interface,应用程序编程接口)是一种允许不同软件应用程序之间进行交互的接口。在ADAMS软件中,API提供了与软件内部功能直接交互的能力,使用户能够通过编写自定义代码来扩展软件的功能,实现自动化操作或集成到其他系统中。ADAMS软件的API主要基于C++和Python,允许用户通过这些编程语言来访问和控制ADAMS的模型、仿真和分析功能。API接口的使用,需要对编程语言有一定的了解,同时也需要熟悉ADAMS软件的基本操作和模型结构。

kkchenjj的博客 1864

Mysql--运维篇--备份和恢复(逻辑备份,mysqldump,物理备份,热备份,温备份,冷备份,二进制文件备份和恢复等)

二进制日志是MySQL中的一种日志文件,记录了所有对数据库的更改操作。它以二进制格式存储,因此不能直接阅读,但可以通过工具解析。主从复制:主库将二进制日志发送给从库,从库根据日志重放这些操作,保持与主库同步。增量备份:在全量备份的基础上,使用二进制日志进行增量备份,减少备份时间和存储空间。时间点恢复:通过二进制日志,可以在某个特定的时间点恢复数据,避免不必要的数据丢失。

weisian的博客 3万+

[Python + UG NX 二次开发新手教程] 第五课 采用Python / UF 开发模式

在 NX 二次开发里看到的“UF”是的缩写,它是 Siemens 提供的集合,也是整个 NX Open 体系里最贴近内核、历史最悠久的一套接口。相当于 NX 的“系统调用”——只要 NX 能做的事,UF 几乎都能调得动。Siemens 从 NX 12 开始把原来的 C 接口(UF)全部打包进了官方 Python 模块,命名空间为 NXOpen.UF.*,所以只要 NX 安装目录里带了 NXOpen\UF 子模块,就能在 Python 里直接调用 UF 函数。

温良 1005

MySQL逻辑备份和恢复

MySQL逻辑备份和恢复 一、备份 1、 mysqldump mysqldump --help #备份 -F 表示生产一个新的日志文件 mysqldump -uroot -p -S /home/mysql/mysql.sock --single-transaction -F test > test.dmp ​ 注意:为了保证数据备份的一致性,MyIAM 存储引擎在备份时需要加上 -l 参数,表示将所有表加上读锁; ​ 对于事务存储引擎(InnoDB)可以采用 --single-transaction

ggz 的博客 638

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MySQL数据库的备份与恢复(物理备份/逻辑备份)

MySQL数据库的备份流程

qq_53815498的博客 2352

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

MySQL利用逻辑备份恢复误删的数据库

本篇文章介绍了MySQL数据库中误删库后,使用逻辑备份完全恢复方法的一种方法。

qq_34595089的博客 1256

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Linux中MySQL的逻辑备份与恢复

数据库是一堆物理文件的集合,主要包括:数据文件 /var/lib/mysql配置文件 => /etc/my.cnf日志文件(主要是二进制日志文件)

yyz13862243的博客 1010

Linux中的mysql逻辑备份与恢复

数据库是一堆物理文件的集合,主要包括:数据文件 /var/lib/mysql配置文件 => /etc/my.cnf日志文件(主要是二进制日志文件)

lsh0411的博客 925

MySQL数据库的物理备份、逻辑备份和恢复

MySQL数据库的备份和恢复一、数据备份数据备份的类别MySQL日志日志类型和作用配置文件 前言:为了数据库中数据的安全,对数据备份是非常重要的,而当数据有丢失时,就得知道如何恢复数据 一、数据备份 在生产环境中,数据的安全是最为重要的,程序的错误、人为操作错误、运算错误、磁盘故障、盗窃等都能造成数据的丢失,任何数据的丢失都可能造成严重的后果,因此需要对数据进行备份来增加其安全性 数据备份的类别 物理备份:对数据库操作系统的物理文件(如数据文件、日志文件等)的备份 方法: (1)冷备份:在关闭数据

weixin_55496718的博客 2321

MySQL mysqldump逻辑备份 恢复数据 解析

文章目录mysqldump逻辑备份与数据恢复mysqldump介绍如何保证数据一致?远程备份语句本地备份语法常用备份数据选项备份注意避免锁库逻辑备份数据1,备份表备份单个表语法备份多个表语法2,备份库备份单个库语法备份多个库语法备份所有的库语法3,查看存放备份的目录恢复数据库和表恢复库删除数据库里备份过的数据创建一个库恢复数据恢复表删除数据库里备份过的表数据恢复表数据停止bin log 日志恢复表数据方式一恢复数据方式二通过bin log 日志恢复数据开启bin log 日志创建目录、修改权限并重启服务器刷

鑫磊的日常 1389

MySQL 备份与恢复【逻辑备份、恢复】

01. 逻辑备份、恢复 逻辑备份的最大优点是对于各种存储引擎都可以用同样的方法来备份。而物理备份则不同,不同的存储引擎有着不同的备份方法。因此,对于不同存储引擎混合的数据库,用逻辑备份会更简单一些。 01. 查看当前提供的有哪些存储引擎类型 mysql> show engines; +------------+---------+------------------------------------------------------------+--------------+------+----

qq_42226855的博客 501

MySQL之逻辑备份与恢复

导出的是SQL语句文件不论是什么存储引擎,都可以用mysqldump备成SQL语句速度较慢,导入时可能会出现格式不兼容的突发情况,无法做增量备份和累计增量备份。提供三种级别的备份,表级,库级和全库级数据一致,服务可用。:如何保证数据一致,在备份的时候进行锁表会自动锁表。锁住之后在备份本身为客户端工具:MYSQL逻辑备份。

花海~ 266

使用mysqlpump进行MySQL数据库的逻辑备份与恢复

因为数据库时常需要进行备份,而每次备份都需要对每个数据库进行相应的操作,耗费很多的时间和精力,后来偶然发现可以使用MySQL数据库提供的逻辑备份工具mysqlpump进行数据库的备份,这可以省去很多的时间。

qq_44667259的博客 2049

MySQL 中的备份和恢复策略是什么?包括物理备份和逻辑备份

MySQL数据库备份策略需根据业务需求选择物理或逻辑备份方法。物理备份通过复制数据库文件实现快速恢复,适合大型数据库,包括冷备份(停机操作)和热备份(在线工具如XtraBackup)。逻辑备份以SQL语句形式导出数据,便于细粒度恢复,常用工具有mysqldump和mysqlpump。关键考量因素包括:备份频率(根据数据重要性)、恢复时间目标(RTO)和数据丢失容忍度(RPO)。最佳实践建议结合两种方式,并采用异地存储保障数据安全,确保在各类故障场景下可靠恢复。不同规模企业可根据停机容忍度和成本选择冷/热备份

weixin_45422672的博客 946

MySQL逻辑备份恢复实战之mysqldump与mysqlpump

mysql 5.7之前主用,mysql 5.7之后也用的特别多,特别是互联网的业务,很多都是几个G,几十个G的数据量存储过程触发器函数调度事件#备份#恢复#先不创建数据库直接恢复单个数据库会报错,提示数据库不存在#全库恢复是不需要创建数据库的,恢复单独的数据库是需要先创建数据库(空库,数据还需要从备份文件恢复)-- 相关信息可以去备份的文件里找mysql -uroot -proot -o testdb < db_fullbackup.sql #-o 表示只有某个数据库。

weixin_tank88921的博客 1952

mysql数据库逻辑备份与恢复_MYSQL的备份与恢复--逻辑备份mysqldump

我叫张贺,贪财好色。一名合格的LINUX运维工程师,专注于LINUX的学习和研究,曾负责某中型企业的网站运维工作,爱好佛学和跑步。个人博客:传送阵笔者微信:zhanghe150690288070、备份与恢复概述系统版本mysql版本安装方式centos75.7.28二进制安装数据库要备份的内容:dababase数据文件binlog日志文件my.cnf配置文件注:1、所有的数据库备份文件都应当放在非...

weixin_39942492的博客 219
上一篇: Oracle Database升级10.2.0.5 to 11.2.0.3
下一篇: Mysql数据库修改大小写敏感性问题
海点
博客等级 码龄13年 9粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值