设置 MySQLDump 以在会话超时后继续在后台运行

IGG*_*GGt 8 mysql mysqldump linux

我试图通过复制另一个从数据库来设置一个新的从数据库。通常我会简单地使用MySQLDump转储 Slave 并创建一个.sql文件,然后将其导入到新数据库中。

但是,由于我们的新服务器是 Linux (Debian 7) 服务器(我正在复制的从属服务器在 Windows 服务器上),我想我会尝试将转储直接通过管道传输到新数据库中。这似乎进行得很顺利,直到我的腻子会话到期,一切都停止了。

我再次尝试,这次使用nohup .... &. 但是一旦我的会话到期,转储仍然停止。

有没有办法使这项工作?我的完整转储命令是:

nohup mysqldump -hxxx -P3306 -uxxx -pxxx --dump-slave --databases a b c d --ignore-table=a.xxx -F | mysql -h127.0.0.1 -P3306 -uxxx -pxxx &

所有数据库都是 MySQL 5.5。

IGG*_*GGt 4

我想我发现了问题。显然nohup,命令在 符号处结束|,因此当会话过期时,命令的第二部分随会话一起停止。

为了解决这个问题,我跑了:

nohup sh -c 'mysqldump -hxxx -P3306 -uxxx -pxxx --dump-slave --databases a b c d --ignore-table=a.xxx -F | mysql -h127.0.0.1 -P3306 -uxxx -pxxx' &

我检查了它正在运行,然后EXIT编辑了 shell,到目前为止,它仍然在运行。

  • 或者使用“屏幕”:) (3认同)