程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL數據庫本地備份和雙機相互備份腳本_MySQL教程

MySQL數據庫本地備份和雙機相互備份腳本_MySQL教程

編輯:關於MYSQL數據庫

 MySQL的本地備份和雙機相互備份腳本:
首先,我們需要修改腳本進行必要的配置,然後以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="[email protected]'>mailto:[email protected]";">[email protected]";


fi


# Ended all backup opretion!


echo "";


echo "Note: if there is come wrong message white MySQL, you should check yourconfigure first!";

exit


 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved