时间:2016-02-24 14:37 来源:
我爱IT技术网 作者:佚名
欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【mysql的本地备份和双机相互备份脚本】,下面是详细的分享!
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的本地备份和双机相互备份脚本,下面是编辑为你推荐的有价值的用户互动:
相关问题:mysql 自动备份脚本
答:dt=$(date +'%F') path=/var/backup dir=$path/$dt if [ ! -d "$dir" ]; then mkdir -p $dir fi #DATABASES=$(mysql -u $USER -p$PASS -h 192.168.45.250 -e "SHOW DATABASES;" | sed -e 1d -e "s/^| (.*) |$/\0/") #for db in $DATABASES #do #... >>详细
相关问题:本地备份mysql数据库
答:进入到mysql安装目录的bin目录下,例如:D:\Program Files\MySQL\MySQL Server 5.5\bin 执行如下命令:【marketing是你要导出的数据库名称,e:\marketing_20131120.sql是你要存放的备份文件路径及文件名称 】 mysqldump -h10.49.61.101 -uroot -... >>详细
相关问题:windows server2008系统实现mysql自动备份数据库脚本
答:路径有空格的话 需要添加引号 @echo offset "Ymd=%date:~,4%%date:~5,2%%date:~8,2%"C:\"Program Files"\MySQL\"MySQL Server 5.1"\bin\mysqldump.exe --opt -u root --password=root welfare > D:\data_back\welfare_%Ymd%.sql@echo on >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-