备份内容:对MySQL服务器中的studydb,coursedb的数据库进行远程备份,要求每天

凌晨2:30执行。每个库备份为独立的.sql的文件,然后压缩为.tgz格式.文件名中嵌入

执行备份的日期和时刻。

1,备机和主机之间要连接畅通,不能有防火墙的阻拦。

2MySQL服务器必须允许从备份主机远程访问,并且得授权远程访问的用户能够查询

studydb,coursedb库。

operatorgrants--> select lock

MySQL-Master:

[root@localhost ~]# mysql -uroot -p123456

mysql> grant select,lock tables on studydb.* to 'operator'@'192.168.1.2' identified by 'pwd123';

Query OK, 0 rows affected (0.00 sec)

mysql> grant select,lock tables on coursedb.* to 'operator'@'192.168.1.2' identified by 'pwd123';

Query OK, 0 rows affected (0.00 sec)

MySQL-Backup:

创建用来存放备份文件的目录(如:/opt/mysql_dbbak

编写备份脚本:mysql_dbbak.sh

设定周期任务计划: crontab -e

[root@localhost ~]# vi /opt/mysql_dbbak.sh

#!/bin/bash

#This is a mysql backup scripts.

#-------------Define Mysql link and destination base informations---#

MY_USER="operator"

MY_PASS="pwd123"

MY_HOST="192.168.1.1"

MY_CONN="-u$MY_USER -p$MY_PASS -h$MY_HOST"

MY_DB1="studydb"

MY_DB2="coursedb"

#------------Define the Directory,tools,time,file name of backup---------#

[ -d /opt/mysql_dbbak ] || mkdir -p /opt/mysql_dbbak

BF_DIR="/opt/mysql_dbbak"

BF_CMD="/usr/bin/mysqldump"

BF_TIME=$(date +%Y%m%d-%H%M%S)

NAME_1="$MY_DB1-$BF_TIME"

NAME_2="$MY_DB2-$BF_TIME"

#----------export .sql scripts,then to compress(and remove source files)---#

cd $BF_DIR 

$BF_CMD $MY_CONN --databases $MY_DB1 > $NAME_1.sql

$BF_CMD $MY_CONN --databases $MY_DB2 > $NAME_2.sql

/bin/tar zcf $NAME_1.tgz $NAME_1.sql --remove &> /dev/null

/bin/tar zcf $NAME_2.tgz $NAME_2.sql --remove &> /dev/null 

[root@localhost ~]# crontab -e

*/2****/opt/mysql_dbbak.sh