【mysqldump】バックアップ対象のテーブルをワイルドカードで指定する方法

  • 2021年11月11日
  • 2021年11月11日
  • SQL

今回は、テーブル名に特定のプレフィックスがついているテーブルのみのバックアップなど、テーブル名に特定の文字列が含まれているものをバックアップしたくなった時のTipsをご紹介します。

自分も先日、同様のケースにあったため、方法を調べていたところ、次の記事が見つかりました。

Mysqlワイルドカードを用いて指定したテーブルのみdumpする方法Tomorrow’s Chance

こちらの記事を参考にバックアップを取得してみました。

例)

mysql -N -u[ユーザー名] -p [DB名] -e"show tables like 'hoge_%';" | xargs mysqldump -u{ユーザー名} -p -d {DB名}> ~/hogedump.sql

なお、自分の場合はMySQL8系で試したのですが、結果にヘッダ部分が含まれてしまうため、上記のコマンドだとエラーになってしまうケースがありました。そこで、次のようにしてみました。

例)

mysql -N -u[ユーザー名] -p [DB名] -e"show tables like 'hoge_%';" |
grep -v 'Tables_in_DB名 | xargs mysqldump -u{ユーザー名} -p -d {DB名}> ~/hogedump.sql

※検索条件や日本語部分、出力先ファイル名などは適宜書き換えてください。

上記のようにすることで、ヘッダ部分を省いてデータ部分のみを取り出すことができます。

特定のプレフィックスのあるテーブルのみバックアップを行いたい際は、是非参考にしてみてください。

>株式会社シーポイントラボ

株式会社シーポイントラボ

TEL:053-543-9889
営業時間:9:00~18:00(月〜金)
住所:〒432-8003
   静岡県浜松市中央区和地山3-1-7
   浜松イノベーションキューブ 315
※ご来社の際はインターホンで「316」をお呼びください

CTR IMG