mysql的本地备份和双机相互备份脚本

跟版网(www.genban.org)提供备份,脚本,相互,本地,echo,db,if,fi,then跟版网精品网站模板,跟版网模板,网站模板,等网页设计素材资源,提供相关网页设计资源的教程和免费下载。跟版网,专业织梦网页设计模板资源站。。

  先修改脚本进行必要的配置,然后以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
  
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

数据库查询哪个对像里面包含什么字段语句写法: select * from sysobjects o, syscomments s where o.id = s.id and text like %text% and o.xtype = P text 换成需要查的字段 数据库查询哪个对像里面包含表: select o.name from sys.all_sql_modules s,sys
一、 创建用户: 命令:CREATE USER username@host IDENTIFIED BY password; 说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该
在mysql中可以用group by对查询出的数据分组 select id,service,name FROM service GROUP BY name,service 如果要查看每组数据的总数,可以 select count(*) FROM service GROUP BY name,service 当要查询group by后的总数,可以这样 select count(*) from(s
mysql count group by统计条数方法 mysql 分组之后如何统计记录条数? gourp by 之后的 count,把group by查询结果当成一个表再count一次 select count(*) as count from(SELECT count(*) FROM 表名 WHERE 条件 GROUP BY id ) a; 实战例子: select count(*)
1.首先停止MySQL服务:service mysqld stop 2.加参数启动mysql:/usr/bin/mysqld_safe --skip-grant-tables 然后就可以无任何限制的访问mysql了 3.root用户登陆系统:mysql -u root -p mysql 4.切换数据库:use mysql 5.显示所有的表:show tables; 这里就可
摘要: SQL的WHERE子句中包含多个AND和OR 示例: SQL解析器在处理操作时会优先处理and操作: 假如有表product字段如下:id、product_id、product_price、product_name,现在要查找产品号为100或者101,并且价格大于200的商品,程序员可能会这样写: select * fr