MySQL数据库本地备份和双机相互备份
发布时间:2008-05-27 12:25:00
标签:备份,数据库,mysql
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
0
投稿
猜你喜欢
- 在设计网页时,经常遇到某些页面需限权访问的情况。比如,一个公司的某些产品只让某一或某些供应商或客户浏览。那么,我们如何实现这一功能呢?本文,
- 用Python实现出来的机器学习算法都是什么样子呢? 前两期线性回归及逻辑回归项目已发布(见文末链接),今天来讲讲BP神经网络。BP神经网络
- python np.dot(a,b)运算规则解析首先我们知道dot运算时不满 * 换律的,np.dot(a, b)与np.dot(b, a)是
- 安装python虚拟环境核心目的就是为了复制一个python环境,这样新项目下载的所有包,都会存放在虚拟环境下的python site-pa
- 前言除了数字,Python中最常见的数据类型就是字符串,无论那种编程语言,字符串无处不在。例如,从用户哪里读取字符串,并将字符串打印到屏幕显
- 假设有表tb_sku,其表结构如下:表中大约有200w条记录,执行如下的sql 语句大约 4.36s 返回数据select count(*)
- 在这篇文章(不敢妄称教程,最多称之为学习笔记)里,我会从头开始实现客户端模板的效果。不过你不要期望能够在这里找到可以直接拿去使用直接复用灵活
- 前言之前搭建了一个ExtJS + spring + Oracle 的这样一个报表系统的框架。 因为其他部门的要求, 也需要这个Framewo
- 用了两种方式解决该问题,都是网上现有的解决方案。场景说明:有一个数据文件,以文本方式保存,现在有三列user_id,plan_id,mobi
- 介绍Python常见的字符串处理方式字符串截取 >>>s = 'hello'>>>s[0
- 前言最近在学习python,发现一个微信自动发消息的小demo感觉很有意思,试了一下,不成功,因为demo中用的是itchat这个库来操作微
- 第一种:获取不带后缀的文件名,直接上代码:就是直接用basename()函数就可以返回路径中的文件名部分,其语法是“basename(pat
- 本文针对MySQL数据库基本操作进行学习研究,需要了解的朋友不要错过这篇文章。以下均是在Windows 64位操作系统下的命令行使用。学习之
- 前言昨天,因为项目需求要添加表的更新接口,来存储预测模型训练的数据,所以自己写了一段代码实现了该功能,在开始之前,给大家分享python 操
- 本文实例讲述了python实现unicode转中文及转换默认编码的方法。分享给大家供大家参考,具体如下:一、在爬虫抓取网页信息时常需要将类似
- 前言Reids 在 Web 应用的开发中使用非常广泛,几乎所有的后端技术都会有涉及到 Redis 的使用。Redis 种除了常见的字符串 S
- 本文实例讲述了php文件缓存类用法。分享给大家供大家参考。具体如下:<?php/** * 简单的文件缓存类 * */class XZC
- 一、前言听说python很流行,因为有很多模块资源,而且导入模块,操作和理解起来很简单。所以在这里记录一下学习python的过程,我相信最重
- 需求说明:在开发 vue 项目的过程中遇到的需求是要把 api 接口前缀暴露在命令行,通过 npm run build apiUrl 即可修
- 之前的博客里使用tf读取数据都是每次fetch一条记录,实际上大部分时候需要fetch到一个batch的小批量数据,在tf中这一操作的明显变