猫型iPS細胞研究所

Windows、Linux、iOS、DB、Network

DataBase MySQL

mysqldumpでテーブル毎のダンプを圧縮して取得するスクリプト

投稿日:2012年12月13日 更新日:

mysqldumpではデータベースを指定して一括してダンプを取得できます。テーブル毎のダンプも取得できます。

しかし、一括して取得したダンプの1つのテーブルだけをインポートすることはできません。これは1つのテーブルだけをテスト環境で復元させるときにはとても不便です。

また、テーブル毎の取得をしていては、テーブルが変わったりするごとに、スクリプトを変更しなくてはいけません。

なかなかネットでみつからなかったので、作成することにいたしました。

#!/bin/sh
USER_="MySQLユーザー名"
PASS_="MySQLパスワード"
PATH_DUMP="/ダンプの保存場所"
PATH_LOG="/ログの保存場所/dump.log"
MYSQLDUMP="$(which mysqldump)"
MYSQL="$(which mysql)"
TARGET="'DATABASE1','DATABASE2','DATABASE3'" #ダンプを取得したいデータベースを指定
DATE_INF=$(date '+%Y/%m/%d %I:%M:%S ') #ログに出力する日時

res=`$MYSQL -u $USER_ -p$PASS_ -N -e "select concat('$MYSQLDUMP -u $USER_ -p$PASS_ --no-autocommit --database ',TABLE_SCHEMA,' --table ' ,TABLE_NAME ,' | gzip > $PATH_DUMP',TABLE_SCHEMA,'.',TABLE_NAME,'.dmp.gz 2>&1 \\n')  from  information_schema.TABLES WHERE TABLE_SCHEMA not in ('information_schema','mysql') and TABLE_SCHEMA in($TARGET)"`

echo -e $res > out.sh
sh out.sh

if test -s $PATH_DUMP$R.dmp.gz
MSG="$(sh out.sh)"
then
    echo $DATE_INF "Successful!!:Get Data Dump" >> $PATH_LOG 
else
    echo $DATE_INF "Error!!:Get Data Dump" >> $PATH_LOG 
fi

これをcronで起動させれば、指定したデータベースの全てのテーブルのダンプを取得できます。

Gooleアドセンス用336

Gooleアドセンス用336

-DataBase, MySQL

執筆者:

関連記事

mysql

ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.

ダンプをインポートしようとすると下記エラーが表示されてインポートできませんでした。 [root@centos]# mysql -u root -p reset master; するとインポートできまし …

sqlserver

application log ってどこ?

SQLSERVERのメンテナンスプランを使用してバックアップを取得していたのですが、取得できていませんでした。 SQL Serverログには下記メッセージが表示されていました。 BACKUP fail …

mysql

MySQLのwait_timeout

データベースやWebサーバーは、実際に稼働してから問題が多発します。 データ量が増えてきたり、アクセスが増えてきたらまずレスポンスの問題が発生するでしょう。 経験のあるエンジニアがいれば、十分なテスト …

mysql

MySQLのエラー、クエリ、スロークエリのログ

全て /etc/my.cnf の [mysqld] に追記してサーバーを再起動すれば出力されるようになります。 エラーログは開発時には警告も出力しておけばよいでしょう。 クエリログは全てのSELECT …

sqlserver

SQL Server Management Studio でテーブルが変更できない

私は以前はOracleをメインで使用し、そしてここ数年間はMySQLをメインで使用しています。SQL Serverは少しかじった程度といえるでしょう。 こんな私が選択したのはSQL Server Ma …