我创建了一个脚本来将 MongoDB 数据库复制到我的机器上。我正在创建一个 SSH 隧道(ssh -L ...
),然后我使用 连接到隧道端口,mongodump
然后将其输出通过管道传输到mongorestore
:
mongodump --host=127.0.0.1:##### --db=***** --archive | mongorestore --host={mongo_dest} --drop --archive
我想加快复制速度。--gzip
在这种情况下使用没有意义——因为和使用相同的机器和内存mongodump
。mongorestore
数据通过 SSH 套接字解压缩。
有没有办法mongodump
在 SSHed 机器上运行并将其输出传送到我的机器上的进程?
当然我可以转储数据库、存档、通过 SSH 复制并恢复它。但我不想占用临时空间。
答案1
不知道为什么我没有想到这一点:
ssh *** ". /etc/profile; mongodump --host=127.0.0.1:27017 --db=**** --archive --gzip" | mongorestore --host=127.0.0.1:27017 --drop --archive --gzip
曾是1603.96 real 45.24 user 43.57 sys
。
现在209.52 real 7.25 user 6.03 sys
。