mysql本地備份和雙機相互備份指令碼

來源:互聯網
上載者:User

    先修改指令碼進行必要的配置,然後以root使用者執行.

1. 第一執行遠程備份時先用 first參數.

2. 本地備份用local參數

3. 遠程備份不用參數<注意1>

注意:需要在另一主機上的Mysql使用者用添加使用者..

需要配置的地方:

# define host and mysql password
   REMOTE_HOST="" #遠程主機名稱或IP
   REMOTE_PASSWORD="" #遠程主機的mysql中的root@本地主機 密碼.
   # define database path
   DB_PATH="/var/lib/mysql" #本地mysql資料庫路徑
   LOCAL_PASSWORD="" #本地mysql root使用者密碼
   DB_BACKUP_PATH="/root/db_bk" #本地備份時資料儲存的路徑
   NO_BACKUP_DB="" 設定本機資料庫中不想備份的資料庫名,用空格隔開

直接下載

#!/bin/sh
   # mysqldump_all.sh
   # this scripts is used to backup MySQL database bettwen tow MySQL SERVER!
   # define host and mysql password
   REMOTE_HOST=""
   REMOTE_PASSWORD=""
   # define database path
   DB_PATH="/var/lib/mysql"
   LOCAL_PASSWORD=""
   DB_BACKUP_PATH="/root/db_bk"
   # define which database no back up, write db anme escap whit space!
   # example;
   # NO_BACKUP_DB="yns test ps_note"
   # this said that if db name is "yns" or "test" or "ps_note", then not backup them!
   NO_BACKUP_DB=""
   # get the database name and process one by one
   echo "Start to Backup...";
   #ls /var/lib/mysql > /tmp/mydb.all
   if [ "$1" != "help" ]; then
   for db in `ls $DB_PATH`; do
   if_backup="1"
   if [ -d $DB_PATH/$db ] ; then
   for noBackDB in $NO_BACKUP_DB ; do
   if ( test "$db" = "$noBackDB" ); then
   #echo -n "...";
   if_backup="";
   fi
   done
   if [ $if_backup ]; then
   case "$1" in
   first)
   echo -n "Crate db [ $db ] on $REMOTE_HOST first!"
   result=`mysqladmin -h $REMOTE_HOST --password=$REMOTE_PASSWORD create $db`
   if [ ! $result ]; then
   echo "...Done!";
   else
   echo "...Fialed! check your configure plz!";
   echo "Remote host said: $result";
   exit
   fi
   ;;
   local)
   # back up to localhost dir.
   if [ ! -d $DB_BACKUP_PATH ]; then
   mkdir $DB_BACKUP_PATH
   fi
   echo -n "[ $db ]....Backup to local$DB_BACKUP_PATH with gzip";
   if [ -e "$DB_BACKUP_PATH/$db.gz" ]; then
   mv $DB_BACKUP_PATH/$db.gz $DB_BACKUP_PATH/$db.1.gz;
   fi
   mysqldump --password=Walte#Ming $db | gzip > $DB_BACKUP_PATH/$db.gz
   echo "...[OK]"
   ;;
   *)
   # Do common Backup!
   echo -n "[ $db ]...Do Backup! ====>> $REMOTE_HOST/$db";
   mysqldump --add-drop-table $db --password=$LOCAL_PASSWORD | mysql -h $REMOTE_HOST --password=$REMOTE_PASSWORD $db
   echo "....[OK]";
   esac
   else
   echo "[ $db ]";
   echo "***This database set to Not backup!...Operation CANCELED!";
   fi
   else
   echo "[ $db ]";
   echo "***Warning! Not a DataBbase. Backup Canceled***";
   fi
   done
   else
   echo "Usage: mysqldupm_all.sh [firs|local|help]";
   echo "Some question ask for href="mailto:walteyh@sohu.com";">walteyh@sohu.com";
   fi
   # Ended all backup opretion!
   echo "";
   echo "Note: if there is come wrong message white MySQL, you should check yourconfigure first!";
   exit

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.