当前位置:操作系统 > Unix/Linux >>

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

  

上一个:MySQL管理员指南之--MySQL用户管理
下一个:Mysql数据库领域的中间派

更多Unix/Linux疑问解答:
路由原理介绍
子网掩码快速算法
改变网络接口的速度和协商方式的工具miitool和ethtool
Loopback口的作用汇总
OSPF的童话
增强的ACL修改功能
三层交换机和路由器的比较
用三层交换机组建校园网
4到7层交换识别内容
SPARC中如何安装Linux系统(2)
SPARC中如何安装Linux系统(1)
用Swatch做Linux日志分析
实战多种Linux操作系统共存
浅析Linux系统帐户的管理和审计
Linux2.6对新型CPU的支持(2)
电脑通通透
玩转网络
IE/注册表
DOS/Win9x
Windows Xp
Windows 2000
Windows 2003
Windows Vista
Windows 2008
Windows7
Unix/Linux
苹果机Mac OS
windows8
安卓/Android
Windows10
如果你遇到操作系统难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,