MySQLダンプでignoreを使った同期ジョブ
ignoreTableのテキストファイルにテーブル名を記載して管理することを想定したスクリプト。
あまり良い出来栄えとはいかないがとりあえず動くものを作成したので備忘録。
今後構成含めて見直していきたい。
#!/bin/bash
# テーブル一覧取得
mysql --defaults-extra-file=dbaccess.cnf --port <port> <db_name> -N -s -e 'select table_name from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA="<db_name>";' > tebleList.txt
# ダンプファイルの取得
while read line
do
echo $line
if ! grep -q $line ignoreTable.txt && ! grep -q $line ignoreTable2.txt; then
mysqldump --defaults-extra-file=dbaccess.cnf --port <port> <db_name> $line > ./sql/$line.sql
fi
done < ./tebleList.txt
# ダンプファイルのインポート
while read line
do
echo $line
if ! grep -q $line ignoreTable.txt && ! grep -q $line ignoreTable2.txt; then
mysql --defaults-extra-file=dbaccess.cnf --port <port> <db_name> < ./sql/$line.sql
fi
done < ./tebleList.txt