当前位置:数据库 > 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=>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数据库领域的中间派

更多MySQL疑问解答:
如何将SQL 2005中的数据实时同步到MYSQL中
java对mysql数据库备份后,它的备份记录怎么显示查出来啊。 求告诉、
如何查询mysql表中的相似度。
mysql 查看表有没有被锁
mysql front 和mysql
mysql 建表 问题 求解答 为什么不能创建表
mysql查询问题
mysql中怎么让union all不打乱顺序
mysql中修改表字段
mysql用户操作表权限的问题(java)
mysql 如何在查询时防止插入
mysql中的 insert into select 问题,想在同个服务器下复制不同数据库的表的内容,在线求方法,谢谢
mysql中的concat用法!
使用mysql中,我想把表product的数据备份到同个服务器创建一个新表出来,刚学习mysql,用SELECT INTO 出错
mysql delete语句删除指定列的指定关键字的所以数据
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,