首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash进程替换中连接mysqldumps?

在bash进程替换中连接mysqldumps?
EN

Stack Overflow用户
提问于 2016-08-11 13:47:13
回答 1查看 110关注 0票数 1

我有两个数据库,需要用不同的转储设置来转储。通常,我首先将它们转储到文件中,然后将它们连接起来,并在需要时通过ssh发送。

我不知道下面的方法是否也能工作,还是只会堵塞我的内存,因为服务器的RAM小于转储的大小。

代码语言:javascript
复制
# cat <(mysqldump ${OPTIONS_1}) <(mysqldump ${OPTIONS_2}) | ssh host mysql

代码语言:javascript
复制
# cat <(mysqldump ${OPTIONS_1}) <(mysqldump ${OPTIONS_2}) > >(ssh host mysql)

Bash手册页有一个警告:

当可用时,进程替换将同时执行.

因此,我假设它首先会尝试读取与内存平行的全部转储。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-11 13:55:22

进程替换本质上只是写到管道上的语法糖。每个mysqldump在阻塞之前只能向一个相对较小的缓冲区写入这么多信息,直到cat从缓冲区中读取一些数据为止。

但是,一个更简单的解决方案是只使用一个命令组来组合这两个转储;如果cat在完成第一个转储之前不从第二个转储读取转储,则并行运行转储是没有意义的。

代码语言:javascript
复制
{ mysqldump ${OPTIONS_1}; mysqldump ${OPTIONS_2}; } | ssh host mysql
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38898197

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档