专栏首页运维技术迷从Mysql备份中恢复单个表

从Mysql备份中恢复单个表

因为云平台的备份是把库中所有的表都打包成一个 .sql文件,然而这一个.sql文件大约有20G,现阶段的方法是把.sql文件source到数据库数据处理机器上,然后再根据需求提出需要的表。每次这个操作都需要大约2个多小时,太耗时。闲暇时间,Google到了一个大神写的几行代码,经过实验确实很好用。下面就分享出来,仅供参考。

思路(原谅我也理解了好一会儿):

主要使用sed命令来实现,加上-n,-e参数把打印的结果追加到一个文件中,就得到了想要的表的内容。

一般情况下我们使用sed打印指定行的内容是:

[root@bj ~]# cat -n sed.txt 
     1    aaa
     2    bbb
     3    ccc
     4    ddd
     5    eee
     6    fff
     7    ggg
     8

-n:只打印符合条件的行 -n:使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。

不加-n的话,不仅打印结果行,也打印整个文本的内容。

[root@bj ~]# sed -n '1,5p' sed.txt 
aaa  
bbb  
ccc  
ddd  
eee  

原始导出的lianst.sql文件内容:

我们使用如下sed命令从原始sql中导出wp_comments表:

意思是:打印DROP TABLE.*wp_comments行到UNLOCK TABLES的内容,并以追加重定向的方式追加到lianst.wp_comments.sql文件中 DROP TABLE.*wp_comments中间的.*是正则所有的意思

sed -n -e '/DROP TABLE.*wp_comments/,/UNLOCK TABLES/p' lianst.sql >> lianst.wp_comments.sql  

结果如下:

此时,lianst.wp_comments.sql 就是我们从原始备份sql(lianst.sql)中导出的wp_comments表的sql语句。接下来我们就可以针对这一个表来进行恢复了。

#登陆Mysql服务器
[root@bj ~]# mysql -uroot -p
Enter password:  
mysql> source lianst.wp_comments.sql;  

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Nginx配置SSL证书

    前段时间根据老谢写的博文,自己也搞了一个SSL证书,由于虚拟主机权限不够我折腾的,所以就入手了一台新加坡的VPS开始折腾。由于SSL证书是要求独立IP的,所以我...

    行 者
  • [ Django ] Nginx+uWSGI+Django方法部署Django程序

    就我个人而言,我对uwsgi的理解是:uwsgi相当于php中的php-fpm,是负责处理php脚本的网关。同样,uwsgi就是用来处理Python脚本的网关。

    行 者
  • LNMP无法删除.user.ini文件的解决方法

    问题 [root@tokyo wwwroot]# rm -rf dl.lianst.com/ rm: cannot remove `dl.lianst.com/...

    行 者
  • 解Bug之路-中间件"SQL重复执行"

    我们的分库分表中间件在线上运行了两年多,到目前为止还算稳定。在笔者将精力放在处理各种灾难性事件(例如中间件物理机宕机/数据库宕机/网络隔离等突发事件)时。竟然发...

    无毁的湖光-Al
  • 初级.NET程序员,你必须知道的EF知识和经验

    注意:以下内容如果没有特别申明,默认使用的EF6.0版本,code first模式。 推荐MiniProfiler插件 工欲善其事,必先利其器。 我们使用EF和...

    逸鹏
  • 记一次详细的的SQL查询经历,group by慢查询优化

    现网出现慢查询,在500万数量级的情况下,单表查询速度在30多秒,需要对sql进行优化,sql如下:

    数据和云
  • 一次神奇的 SQL 查询经历

    现网出现慢查询,在500万数量级的情况下,单表查询速度在30多秒,需要对sql进行优化,sql如下:

    用户1516716
  • 记一次神奇的SQL查询经历,group by慢查询优化

    简单来说,就是查询一定条件下,都有哪些用户的。很简单的sql,可以看到,查询耗时为37秒。

    数据和云
  • [python] mysql安装使用

    下载地址:http://pypi.python.org/simple/MySQL-python/

    py3study
  • Flink使用Broadcast State实现流处理配置实时更新

    Broadcast State是Flink支持的一种Operator State。使用Broadcast State,可以在Flink程序的一个Stream中输...

    王知无

扫码关注云+社区

领取腾讯云代金券