MySQL运维:从全备sql文件中提取指定表的数据并恢复

这篇具有很好参考价值的文章主要介绍了MySQL运维:从全备sql文件中提取指定表的数据并恢复。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、运行环境

二、需求说明

三、思路分析

五、具体方案

六、恢复表数据

一、运行环境

系统:CentOS7.3

数据库:MySQL 8.0.21

二、需求说明

线上有个表的数据被误操作了很多,无法通过bin-log进行具体的恢复。所以当前我们需要从全库备份文件(mysqldump导出的64GB文件)中恢复指定表的数据。

三、思路分析

备份文件是整个数据库备份的,但是我只想要那一个表。最粗暴的办法,就是把这个sql文件,导入一个库,这样导就是把所有表都导进来,然后再对需要的表进行操作,但是费时费力。

我们现在想的就是从整个sql文件中只拿一个表,我们可以利用linux命令的优势对文件进行操作,然后生成一个新的文件(就是我们想要的)。

五、具体方案

​ 先定位到备份sql文件所在目录,用cat grep方法把指定表拿出来,然后写入一个本地文件中。 ​

cat MySQL-FULL-20230726.sql | grep userinfo > userinfo.sql

MySQL-FULL-20230726.sql 是数据库全备文件

userinfo 是指定的表名

> userinfo.sql 是查找处理后生成的新文件

MySQL运维:从全备sql文件中提取指定表的数据并恢复,Linux,MySQL,mysql,sql,数据库

打开新的sql文件,其实我们只需要INSERT INTO `userinfo` VALUES ( 这一行的语句就行,这行是插入全部数据到表(表需要存在)。

六、恢复表数据

1.先通过下面sql语句备份当前的表

create table  userinfo-bak select * from userinfo;

userinfo-bak是新表

userinfo是当前表(旧表)

2.清空当前表数据(注意该操作,删除后不可rollback)

truncate userinfo;

3.插入数据

复制刚刚的insert into语句,执行完成就可以了。

题外话:linux与windows:有时用linux来处理windows文件也是一种不错的选择,反之也一样。搞运维就要,灵活运用,提高效率。文章来源地址https://www.toymoban.com/news/detail-611203.html

到了这里,关于MySQL运维:从全备sql文件中提取指定表的数据并恢复的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • mySQL 用一个表的数据更新另一个表 的SQL语句

    概述:用一个表中的字段去更新另外一个表中的字段, MySQL 中有相应的 update 语句来支持,不过这个 update 语法有些特殊。看一个例子就明白了。 方法一: 结果: 结论: 1,代码对应的城市更新,对应错误的更正; 方法二: 结果: 结论:1,代码对应的城市更新,对应错误的更

    2024年02月12日
    浏览(29)
  • 开源数据库MYSQL DBA运维实战 第二章 SQL

    1.1定义库 创建业务数据库         语法:CREATE  DATABASE   数据库名;         数据库命名要求:                 区分大小写                 唯一性                 不能使用如create  select                 不能单独使用数字和特殊符号如-                

    2024年02月20日
    浏览(72)
  • [运维|数据库] PostgreSQL数据库对MySQL的 READS SQL DATA 修饰符处理

    在 PostgreSQL 中,访问权限通常是通过数据库角色和表级别的权限进行管理,而不需要类似 MySQL 中的 READS SQL DATA 修饰符。 要在 PostgreSQL 中管理数据库对象的访问权限,您可以使用以下 SQL 命令: GRANT :授予用户或角色对表、视图等对象的特定权限。 REVOKE :撤销用户或角色对

    2024年02月07日
    浏览(58)
  • mysql 正则表达式 提取 指定字符

    eg: 使用正则表达式来进行匹配替换: REGEXP_REPLACE(\\\'需要进行替换的字段‘, ‘被替换的’,‘替换的内容’) eg: 模式 说明 ^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的 Multiline 属性,^ 也匹配 ‘n’ 或 ‘r’ 之后的位置。 $ 匹配输入字符串的结束位置。

    2024年02月06日
    浏览(35)
  • mysql怎么查指定表的自增id?

    要查看MySQL表的自增ID(Auto Increment ID),你可以使用 SHOW TABLE STATUS 命令。以下是一个示例: 替换\\\'your_table_name\\\'为你想查询的表名。这条语句会返回表的一些基本信息,其中 Auto_increment 字段就表示下一次插入时的自增ID值。 请注意,此命令需要有对应数据库的 SELECT 权限才能执

    2024年02月10日
    浏览(28)
  • [运维] tcpdump 抓包到指定文件

    使用tcpdump命令抓包并将结果保存到指定文件,可以通过指定输出文件参数来实现。 下面是一个示例命令: 其中, interface 是要抓取数据包的网络接口,可以是网络接口名称(例如 eth0 )或者是\\\"any\\\"(表示所有接口)。 output_file.pcap 是要保存抓包结果的文件名,扩展名通常为

    2024年02月16日
    浏览(27)
  • Java实战:高效提取PDF文件指定坐标的文本内容

    临时接到一个紧急需要处理的事项。业务侧一个同事有几千个PDF文件需要整理:需要从文件中的指定位置获取对应的编号和地址。 要的急,工作量大。所以就问到技术部有没有好的解决方案。 问技术的话就只能写个demo跑下了。 PDF的文档看起来比较简单,因为只是需要读取两

    2024年02月13日
    浏览(45)
  • docker安裝mysql(8.0.20)并且指定配置文件和数据存放位置

    4、拷贝mysql的配置文件和数据

    2024年02月03日
    浏览(28)
  • 【MYSQL高级】Mysql 表的七种连接方式【附带练习sql】

    图形 连接方式 说明 SQL 内连接 共有部分 SELECT select_list FROM TableA A INNER JOIN TableB B ON A.Key = B.Key; 左连接 A表独有+共有部分 SELECT select_list FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key; 右连接 B表独有+共有部分 SELECT select_list FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key; A的独有 SELECT select_l

    2024年02月04日
    浏览(33)
  • Mysql 表的七种联接方式【附带练习sql】

    图形 连接方式 说明 SQL 内连接 共有部分 SELECT select_list FROM TableA A INNER JOIN TableB B ON A.Key = B.Key; 左连接 A表独有+共有部分 SELECT select_list FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key; 右连接 B表独有+共有部分 SELECT select_list FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key; A的独有 SELECT select_l

    2024年02月09日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包