虚拟主机,域名
IT资源网
热门关键字:  php  iebook  网页  pro e  powerpoint
当前位置 : 主页>数据库>MySQL>

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

作者:Alice 时间:05-19 07:44:05
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


上一篇:没有了
相关文章
本站推荐