1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

指定日時よりも後で追加されたり更新があったテーブルだけをmysqldumpする

Posted at

タイトルから少し闇を感じますが、こういった機会もあるかと思います。

方針

show table status で Create_timeとUpdate_timeを指定して一覧を取得
awk で良い感じにファイル出力

方法

以下のような形で一括で。

create_migration_mysqldump.sh
TARGETHOST=(MySQLのホスト)
TARGETUSER=(MySQL接続ユーザー名)
TARGETDATABASE=(DB名を指定する必要あり)
TARGETPW=(パスワードを直接書くのはよくないです。一連の作業が終わったらすべてファイルごと消しましょう。)
TARGETDATETIME="2017-03-01 00:00:00"
EXECUTEEDDATE=`date +"%Y%m%d"`

mysql -u${TARGETUSER} -p${TARGETPW} -h ${TARGETHOST} --execute="show table status from ${TARGETDATABASE} where Create_time >='${TARGETDATETIME}' or Update_time >='${TARGETDATETIME}';" -N | awk  'BEGIN { FS="\t"; } { print "mysqldump -u'"${TARGETUSER}"' -p'"${TARGETPW}"' -h'"${TARGETHOST}"' '"${TARGETDATABASE}"' "$1" > "$1"."'"${EXECUTEEDDATE}"'".dump #-- created_"$12 " updated_" $13  }'

実行結果

mysqldump -uUSERNAME -pPASSWORD -hTARGETHOST TARGETDATABASE TABLENAME1  > TABLENAME1.20170412.dump #-- created_2017-03-28 21:04:43 updated_2017-03-28 21:24:00
mysqldump -uUSERNAME -pPASSWORD -hTARGETHOST TARGETDATABASE TABLENAME2  > TABLENAME2.20170412.dump #-- created_2017-03-28 21:05:21 updated_NULL
mysqldump -uUSERNAME -pPASSWORD -hTARGETHOST TARGETDATABASE TABLENAME3  > TABLENAME3.20170412.dump #-- created_2017-03-28 21:08:27 updated_NULL
mysqldump -uUSERNAME -pPASSWORD -hTARGETHOST TARGETDATABASE TABLENAME4  > TABLENAME4.20170412.dump #-- created_2017-03-28 21:06:26 updated_NULL
mysqldump -uUSERNAME -pPASSWORD -hTARGETHOST TARGETDATABASE TABLENAME5  > TABLENAME5.20170412.dump #-- created_2017-03-29 18:40:49 updated_NULL

※誤解を招く部分があったため、再投稿しております。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?