因为云平台的备份是把库中所有的表都打包成一个 .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;
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有