今回は、テーブル名に特定のプレフィックスがついているテーブルのみのバックアップなど、テーブル名に特定の文字列が含まれているものをバックアップしたくなった時の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
※検索条件や日本語部分、出力先ファイル名などは適宜書き換えてください。
上記のようにすることで、ヘッダ部分を省いてデータ部分のみを取り出すことができます。
特定のプレフィックスのあるテーブルのみバックアップを行いたい際は、是非参考にしてみてください。