MySQL解决 恢复从备份点到灾难点之间数据(不收藏找不到了)

CSDN 成就一亿技术人!

今天分享一期 mysql中 备份之后发生灾难造成数据丢失 那么如何恢复中间的数据呢?

数据库数据高于一切(任何数据是不能丢失的)

CSDN 成就一亿技术人!


目录

1.准备测试数据库

2.备份数据库

观察备份细节

3.(模拟备份点到灾难点的数据)

4.恢复测试

1.拷贝所有二进制文件

2.停止数据库

3.清理环境(模拟丢失)

4.还原备份前的数据

5.恢复第3(模拟的数据)

6.测试查看


MySQL 数据库高于一切,是信息时代不可或缺的数据管理利器,为业务的成功和创新提供了坚实的基础。

普遍所使用的工具来备份mysql 但是都只能恢复备份之前数据

本期试验所使用的工具和文件:mysqldump+binlog 二进制文件

1.准备测试数据库

mysql> create database test;            创建库
Query OK, 1 row affected (0.00 sec)mysql> create table t1(id int);        创建表
Query OK, 0 rows affected (0.01 sec)mysql> insert into t1 values(1),(2);        写入数据
Query OK, 2 rows affected (0.01 sec)
Records: 2  Duplicates: 0  Warnings: 0mysql> select * from t1;        查看表
+------+
| id   |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

2.备份数据库

备份所有的数据库
[root@192 ~]# mysqldump -uroot -p" " --all-databases --single-transaction --master-data=2 --flush-logs > /backup/mysql-all.sql-p'输入你的密码'
--all-databases
all所有数据库--single-transaction
保证数据的可用性 就是指不关机的备份(备份的时候数据库还是正常使用的)--master-data=2		
以注释的方式记录日志
参数有两个(1,2)2的话就是注释日志 日志里边都会加上#  1就是开启
二进制日志非常的重要 很强大 可以还原备份文件里没有备份上的数据(所以二进制日志一定要记录下来)--flush-logs
切断日志 也就是日志轮转

观察备份细节

vim/backup/备份的sql文件你会发现里边很多   LOCK TABLES `test` WRITE	LOCK TABLES 是 MySQL 中的一个语句,用于锁定一个或多个表,
以确保在执行特定操作时其他会话不能修改这些表。在 mysqldump 中,默认情况下,
备份操作会使用 --lock-tables 选项,这会导致在备份的整个过程中锁定要备份的表
。WRITE 关键字表示写锁,即其他会话不能写入被锁定的表。这个锁机制确保了备份的一致性,因为在备份期间,数据库表的状态保持不变。
但是,这也意味着在备份过程中,其他会话可能会被阻塞,直到备份完成。
这可能对具有高并发的生产环境造成一些影响。

3.(模拟备份点到灾难点的数据)

进入测试数据库
我进入test数据库 创建一个t2表
mysql> create table t2;
ERROR 1113 (42000): A table must have at least 1 column
mysql> create table t2(id int);
Query OK, 0 rows affected (0.00 sec)mysql> insert into t2 values(1),(2),(3);
Query OK, 3 rows affected (0.00 sec)
Records: 3  Duplicates: 0  Warnings: 0mysql> select * from t2;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.00 sec)

4.恢复测试

1.拷贝所有二进制文件

[root@192 ~]# cp /var/lib/mysql/*bin* ~
[root@192 ~]# ls
192-bin.000001  192-bin.index    initial-setup-ks.cfg  模板  图片  下载  桌面
192-bin.000002  anaconda-ks.cfg  公共                  视频  文档  音乐

2.停止数据库

systemctl stop mysqld

3.清理环境(模拟丢失)

mysql> drop table t1;			删除表
Query OK, 0 rows affected (0.00 sec)mysql> drop database test;			删除整个数据库test
Query OK, 1 row affected (0.00 sec)
mysql> show databases;		查看一下确实删掉了
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.00 sec)

4.还原备份前的数据

[root@192 ~]# mysql -uroot -p' ' < /backup/mysql-all.sql
查看test 中t1表		(数据都还原回来了)
mysql> select * from test.t1;
+------+
| id   |
+------+
|    1 |
|    2 |
+------+
2 rows in set (0.00 sec)

做到这里我们使用mysqldump还原数据库已经成功!!!!但是仅仅还原的是备份前的所有数据
 

第3.(模拟备份点到灾难点的数据)这些数据如何恢复?

我们在备份之后在test数据库创建了一个t2的表 里边插入了 1 2 3三条数据

此刻我们查看test数据库
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
+----------------+
1 row in set (0.00 sec)
因为备份之前test数据库中只有t1 表单

5.恢复第3(模拟的数据)

我们需要用到二进制文件来进行恢复

[root@192 ~]# mysqlbinlog 192-bin.000002 --start-position=154 | mysql -uroot -p" "
192-bin.000002还原备份之后的二进制 有多少个二进制跟多少个二进制(只要是备份后的二进制都行) --start-position=154开始还原 从154这一行开始| mysql -uroot -p" "还原的数据给mysql	-p后边跟上你的密码

6.测试查看

数据恢复成功
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1             |
| t2             |
+----------------+
mysql> select * from t2;
+------+
| id   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.01 sec)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/439926.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue 使用 v-viewer 用于图片浏览的Vue组件,支持旋转、缩放、翻转等操作,基于viewer.js。

作者连接 npm&#xff1a; npm install v-viewerlegacy viewerjs main.js 引入&#xff1a; // 引入Viewer插件 import VueViewer, { directive as viewerDirective } from v-viewer; // 引入Viewer插件的图片预览器的样式 import viewerjs/dist/viewer.css; // 使用Viewer图片…

动手学RAG:汽车知识问答

原文&#xff1a;动手学RAG&#xff1a;汽车知识问答 - 知乎 Part1 内容介绍 在自然语言处理领域&#xff0c;大型语言模型&#xff08;LLM&#xff09;如GPT-3、BERT等已经取得了显著的进展&#xff0c;它们能够生成连贯、自然的文本&#xff0c;回答问题&#xff0c;并执行…

SSE长连接( SpringBoot整合SSE(Server-Sent Events)可以实现后端主动向前端推送数据)

Demo代码分享 依赖 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.or…

记录一次腾讯云服务器部署宝塔

一、查看是否安装 宝塔面板 bt 14 1 已安装会列出宝塔登录地址&#xff1b; 否则-bash: bt: command not found&#xff1b; 下载及安装命令&#xff08;这条是目前最新的宝塔安装命令&#xff09; yum install -y wget && wget -O install.sh http://download.bt.cn/…

常见的网络安全威胁和防护方法

随着数字化转型和新兴技术在各行业广泛应用&#xff0c;网络安全威胁对现代企业的业务运营和生产活动也产生了日益深远的影响。常见的网络安全威胁通常有以下几种&#xff1a; 1. 钓鱼攻击 攻击者伪装成合法的实体&#xff08;如银行、电子邮件提供商、社交媒体平台等&#xf…

ASPICE--汽车行业过程评估/参考模型

近几年&#xff0c;汽车行业飞速发展&#xff0c;尤其是是新能源汽车&#xff0c;试图完全颠覆传统汽车行业的风格&#xff0c;多家企业喊出“软件定义汽车”“软件智能一体化”等类似的口号。由此可见&#xff0c;软件在新类型的汽车设计中占有独一无二的领导地位&#xff0c;…

【webrtc】‘ninja.exe‘ 不是内部或外部命令,也不是可运行的程序及vs2019 重新构建m98

werbtc 就是用ninja.exe 来构建找到了自己以前构建的webrtc 原版 m98 【m98 】webrtc ninja 构建 、example、tests 及OWT- P2P 项目P2PMFC-E2E-m98G:\CDN\rtcCli\webrtc-checkout\src找到了自己的deptools的路径 deptools里确实没有ninja.exe D:\SOFT\depot_tools\third_party…

【Django开发】前后端分离美多商城项目:项目准备和搭建(附代码,文档)

本系列文章md笔记&#xff08;已分享&#xff09;主要讨论django商城项目开发相关知识。本项目利用Django框架开发一套前后端不分离的商城项目&#xff08;4.0版本&#xff09;含代码和文档。功能包括前后端不分离&#xff0c;方便SEO。采用Django Jinja2模板引擎 Vue.js实现…

考研经验总结——英语篇

文章目录 一、前言二、刷题情况三、关于背诵四、建议五、大作文模板作文词汇一、图画类作文1.1 para.1 description 远景近景&#xff08;倒装分词结构&#xff09;1.2 para.2 interpretation (两正一反或一正一反)1.3 para.3 comment 二、柱线饼表2.1 line chart 双柱对比图线…

课时8:shell基础_shell实践

1.3.2 shell实践 学习目标 这一节&#xff0c;我们从 shell分类、shell实践、小结 三个方面来学习。 shell分类 简介 在不同的操作系统上&#xff0c;shell的表现样式是不一样的&#xff0c;按照我的角度&#xff0c;它主要分为两类 图形界面shell图形界面shell就是我们常…

element -table,多行或列合并

需求:后端返回的表格数据,如果某列值一样,前端表格样式需要合并他们,需要合并的列的行数未知(所以需要有数据后遍历后端数据对需要合并的属性进行计数)即动态遍历表格合并 效果 - 重点方法;table自带的:span-method="objectSpanMethod"方法 代码环境:vue2 ,…

山海鲸智慧医疗解决方案:让医疗数据说话

在医疗领域&#xff0c;数据可视化对于提高诊疗效率、辅助医学研究和提升患者就医体验具有重要意义。作为山海鲸可视化软件的开发者&#xff0c;我们致力于利用先进的数据可视化技术&#xff0c;为医疗行业提供高效、智能的解决方案&#xff0c;本篇文章就带大家一起了解一下这…