·天新网首页·加入收藏·设为首页
首页|笔记本|手机|数码相机|摄像机|MP3/MP4|主板|内存|显示器|办公|打印机|下载|开发|汽车|学院|业界
硬件|台式机|数码|数字家庭|投影仪|GPS/CPU|显卡|硬盘|服务器|网络|一体机|驱动|源码|游戏|考试|报价
MySQL数据库本地备份和双机相互备份脚本
http://dev.21tx.com 2008年05月14日 赛迪网 Alice

  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数据库错误码的三个方法

Google
 
热点文章
关于我们 | 联系我们 | 广告服务 | 工作机会 | 版权声明 | 欢迎投稿 | 网站地图
Copyright © 2000-2008 , www.21tx.com , All Rights Reserved .
© 晨新科技 版权所有 Created by TXSite.net