MySQL Database をバックアップするスクリプトの作成
MySQL Database のバックアップに使用するスクリプトを作成できます。バックアップを実行するためにデータベースを停止する必要はありません。MySQL Database をバックアップするには、以下の 2 つのスクリプトを作成します。
- pre-db-backup-mode.sh - このスクリプトは、開いているテーブルをすべて閉じます。次にグローバル読み取りロックを使用して、すべてのデータベースの全テーブルをロックします。
- post-db-backup-mode.sh - このスクリプトは、すべてのロックを解放します。
実行するスクリプトは、バックアップ ウィザードの[実行前/後スクリプトの設定]にある[MySQL Database]ノードで指定できます。
以下の手順に従います。
- root ユーザとしてバックアップ サーバにログインします。
- 以下のコードを使用して pre-db-backup-mode.sh スクリプトを作成します。
#!/bin/bash#
dbuser=root
dbpwd=rootpwd
lock_mysqldb(){
(
echo "flush tables with read lock;"
sleep 5
) | mysql -u$dbuser -p$dbpwd ${ARGUMENTS} }
}
lock_mysqldb &
PID="/tmp/mysql-plock.$!"
touch ${PID}
注: ご使用の MySQL Database で定義されている dbuser および dbpwd 変数の値を指定します。
- 以下のコードを使用して post-db-backup-mode.sh スクリプトを作成します。
#!/bin/bash
killcids(){
pid="$1"
cids=`ps -ef|grep ${pid}|awk '{if('$pid'==$3){print $2}}'`
for cid in ${cids}
do
echo ${cid}
kill -TERM ${cid}
done
echo -e "\n"
}
mysql_lock_pid=`ls /tmp/mysql-plock.* | awk -F . '{print $2}'`
[ "$mysql_lock_pid" != "" ] && killcids ${mysql_lock_pid}
rm -fr /tmp/mysql-plock.*
- 両方のスクリプトに実行権限を付与します。
- 両方のスクリプトを以下の場所に配置します。
/opt/Arcserve/d2dserver/usr/prepost/
- Arcserve Unified Data Protection Agent for Linux Web インターフェースにログインします。
- バックアップ ウィザードを開いて、[拡張]タブに移動します。
- [実行前/後スクリプトの設定]オプションで、[スナップショットの取得前]ドロップダウン リストから pre-db-backup-mode.sh スクリプト ファイルを選択します。
- [実行前/後スクリプトの設定]オプションで、[スナップショットの取得後]ドロップダウン リストから post-db-backup-mode.sh スクリプト ファイルを選択します。
- バックアップ ジョブをサブミットします。
バックアップ ジョブがサブミットされます。
MySQL Database をバックアップするスクリプトが作成されました。
注: Arcserve Unified Data Protection Agent for Linux はボリューム レベルのスナップショットをサポートしています。データの整合性を保証するには、データベースのすべてのデータ ファイルが 1 つのボリューム上に存在する必要があります。
このセクションには、以下のトピックが含まれます。