Previous Topic: Oracle Database をバックアップするスクリプトの作成Next Topic: ジョブ スケジュールのカスタマイズ


MySQL Database をバックアップするスクリプトの作成

MySQL Database のバックアップに使用するスクリプトを作成できます。バックアップを実行するためにデータベースを停止する必要はありません。MySQL Database をバックアップするには、以下の 2 つのスクリプトを作成します。

実行するスクリプトは、バックアップ ウィザードの[実行前/後スクリプトの設定]にある[MySQL Database]ノードで指定できます。

次の手順に従ってください:

  1. root ユーザとしてバックアップ サーバにログインします。
  2. 以下のコードを使用して 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 変数の値を指定します。

  3. 以下のコードを使用して 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.*
    
  4. 両方のスクリプトに実行権限を付与します。
  5. 両方のスクリプトを以下の場所に配置します。
    /opt/Arcserve/d2dserver/usr/prepost/
    
  6. Arcserve UDP Agent (Linux) Web インターフェースにログインします。
  7. バックアップ ウィザードを開いて、[拡張]タブに移動します。
  8. 実行前/後スクリプトの設定]オプションで、[スナップショットの取得前]ドロップダウン リストから pre-db-backup-mode.sh スクリプト ファイルを選択します。
  9. 実行前/後スクリプトの設定]オプションで、[スナップショットの取得後]ドロップダウン リストから post-db-backup-mode.sh スクリプト ファイルを選択します。
  10. バックアップ ジョブをサブミットします。

    バックアップ ジョブがサブミットされます。

MySQL Database をバックアップするスクリプトが作成されました。

注:Arcserve UDP Agent (Linux) はボリューム レベルのスナップショットをサポートしています。データの整合性を保証するには、データベースのすべてのデータ ファイルが 1 つのボリューム上に存在する必要があります。