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
  • asp之家 网络编程 m.aspxhome.com