やりたいこと/背景
PRDのデータを、STGに反映させたい。
解決策
terminal
#欲しいデータがあるDB(今回はPRD)にssh接続
$ ssh PRD_IP_address
#dumpファイルを取得(ファイル名は、dump時の日付で、home/に作成)
$ mysqldump -u {usr_name} -p{password} --single-transaction --default-character-set=utf8 --routines DB_name > ./`date +%Y%m%d_%H%M`- dump.sql
#dumpファイルを、scpでデータを挿入したいDB(今回はSTG)のhome/にコピーして送信
#idを求められる場合、以下のようにiオプションを使用して、秘密鍵を指定してあげます
$ scp -i ~/.ssh/id_rsa.pub user@PRD_IP:~/20180613_0101-dump.sql user@STG_IP:~/
#ここで一旦exitしてPRDから出ます
$ exit
#dumpデータを流し込みたいDB(今回はSTG)に移動
$ ssh STG_IP
#STGにて、データの反映実行
$ mysql -u{user_name} -p{password} DB_name < ./20180613_0101-dump.sql
最後に
dumpファイル生成時には、1レコードずつ取得し、取得するタイミングでDBにきたリクエストなどを遮断するらしい。DBがアクティブ状態の時にユーザーに迷惑をかける場合があるので、注意をした方がいいです。