MySQL数据库本地备份和双机相互备份
时间:2008-05-27 12:25:00
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
0
投稿
猜你喜欢
一行Python3代码实现解析地址信息
2023-11-02 14:27:30
带你深入了解MySQL语句优化的基本原则
2008-11-27 17:00:00
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
2023-07-14 14:37:00
用Dreamweaver MX制作文字特效
2011-06-14 09:49:47
python计算方程式根的方法
2023-08-09 09:54:47
opencv resize图片为正方形尺寸的实现方法
2023-02-21 15:34:51
python中注释用法简单示例
2022-10-24 05:04:09
python学习笔记之列表(list)与元组(tuple)详解
2022-04-13 00:15:13
Anaconda+vscode+pytorch环境搭建过程详解
2022-04-06 01:37:19
纯CSS实现动态提示信息Tooltips
2008-05-22 11:56:00
vue+element项目中过滤输入框特殊字符小结
2024-04-28 10:53:44
python 公共方法汇总解析
2023-11-23 03:03:13
基于go手动写个转发代理服务的代码实现
2024-04-25 15:11:15
Go Grpc Gateway兼容HTTP协议文档自动生成网关
2024-05-21 10:27:16
巧妙的自关联运用
2012-10-07 10:55:58
Mysql的最大连接数怎样用java程序测试
2009-01-14 12:05:00
Python爬虫 bilibili视频弹幕提取过程详解
2023-07-05 06:41:25
CentOS 7.4下安装Oracle 11.2.0.4数据库的方法
2024-01-24 20:36:20
MySQL为什么临时表可以重名
2024-01-15 21:28:27
django框架用户权限中的session缓存到redis中的方法
2021-10-13 01:09:48