私がここで何を間違っているのか?
パテを使用して最初のサーバーにログインし、次のクエリを実行しました。
sh -c 'nohup mysqldump -hxxx -Pxxx -uxxx -pxxx --dump-slave --include-master-host-port --apply-slave-statements -f -q -A -E -R | mysql -hxxxx -Pxxxx -uxxxx -pxxxx' &
両方のデータベースを見ると、MySQLDumpが最初のデータベースで実行され、2番目のデータベースからインポートされていることがわかります。
ただし、Puttyセッション(またはタイムアウト)を閉じると、mysqldumpの実行が停止します。私はnohup
実行し続けるべきだと思いましたか?
実行には8時間かかりますので、タイムアウトを防ぐためにそこに座って8時間の間Puttyを見守ることはできません。
ベストアンサー1
なしでシェルを実行しているため、セッションを閉じるとシグナルを受信してnohup
パイプラインのすべてのプロセスに送信します。SIGHUP
2番目のmysql
コマンドは、なしで再実行されるため、終了してnohup
転送され、SIGPIPE
終了nohup mysqldump
します。
努力する
nohup sh -c 'mysqldump -hxxx -Pxxx -uxxx -pxxx --dump-slave --include-master-host-port --apply-slave-statements -f -q -A -E -R | mysql -hxxxx -Pxxxx -uxxxx -pxxxx' &