IT猫扑网文章教程

分类分类

MySQL数据库本地备份和双机相互备份

2015-06-28 00:00作者:网管联盟

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=&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

展开全部

相关文章

说两句网友评论
    我要跟贴
    取消