mysql的本地备份和双机相互备份脚本
自己写的,大家多指教.
mysqldump_all.sh [first|local|help}
先修改脚本进行必要的配置,然后以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 walteyh@sohu.com";
fi
# Ended all backup opretion!
echo "";
echo "Note: if there is come wrong message white MySQL, you should check your configure first!";
exit
关键词:mysql,备份
相关阅读
- 04-04ubuntu下安装了mysql 5 server忘记root密码怎么办?
- 04-04权限问题导致的MYSQL无法正常启动问题的解决办法
- 04-04Win7系统安装MySQL5.5.21图解教程
- 10-21Win2008 r2 下修改mysql data目录的方法
- 10-21MySQL修改root密码的4种方法(以windows为例)
- 03-29微软补丁KB967723造成MySQL频繁无法连接,刷新即恢复正常的解决方法 (Can not connect to MySQL server)
- 03-29Can't connect to MySQL server on 'localhost'
- 04-08Win2003+IIS6.0+php5.2.2+MySQL 5.0.41+ZendOptimizer 3.2.8 +phpMyAdmin 2.10.1环境配置安装教程图文详解
- 04-04快速让MySQL数据库服务器支持远程连接
- 02-23MYSQL数据库实用学习资料之常用命令集合
阅读本文后您有什么感想? 已有 人给出评价!
用户评论
热门评论
最新评论
相关软件
热点图文
- 01-05mysql安装图解、mysql5.6.10安装详细图文教程
- 01-04Mysql 安装问题。提示MySQL Server 5.1 -- Error 1335.
- 11-22service mysql start出错,mysql不能启动,解决mysql: unrecognized service错误
- 01-11Can't connect to local MySQL server through socket '/tmp/mysql.sock'(2)
- 11-24wdcp修改mysql数据库root密码时提示原密码不对
- 05-13MySQL数据库INNODB 表损坏修复处理过程
- 07-18MySql5.0 Table错误:is marked as crashed and last (automatic?) repair failed
- 08-03如何查询mysql数据库中哪些表的数据量最大?
- 01-24MYSQL-Front中文版使用图文教程
- 04-04Win7系统安装MySQL5.5.21图解教程