上一個主題: 建立指令碼來備份 Oracle 資料庫下一個主題: 自訂工作排程


建立指令碼來備份 MySQL 資料庫

您可以建立用來備份 MySQL 資料庫的指令碼。 您不需要停止資料庫就能執行備份。 建立下列兩份指令碼來備份 MySQL 資料庫:

您可以在 [備份精靈] 的 [前置/後置指令碼設定] 中,指定指令碼在 MySQL 資料庫節點上執行。

請依循下列步驟:

  1. 以根使用者身分登入備份伺服器。
  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 資料庫中的定義,指定 dbuserdbpwd 變數值。

  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/CA/d2dserver/usr/prepost/
    
  6. 登入 Arcserve UDP Agent (Linux) Web 介面。
  7. 開啟 [備份精靈],導覽至 [進階] 標籤。
  8. 在 [前置/後置指令碼設定] 選項中,從 [在取得快照之前] 下拉式清單中選取 [pre-db-backup-mode.sh] 指令碼檔案。
  9. 在 [前置/後置指令碼設定] 選項中,從 [在取得快照之後] 下拉式清單中選取 [post-db-backup-mode.sh] 指令碼檔案。
  10. 提交備份工作

    即會提交備份工作。

指令碼已建立成功,可用來備份 MySQL 資料庫。

附註:Arcserve UDP Agent (Linux) 支援磁碟區層級的快照。 為確保資料一致,資料庫的所有資料檔案必須位在同一個磁碟區上。