博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
编写shell脚本计划备份mysql数据库
阅读量:5747 次
发布时间:2019-06-18

本文共 1676 字,大约阅读时间需要 5 分钟。

Shell脚本计划备份mysql数据库

实验准备:

两台linux5.5主机:

一台用作backup server主机,地址为192.168.10.1

一台用作mysql server主机,地址为192.168.10.2

实验步骤:

1.mysql主机上搭建yum源,挂载光盘

2.mysql主机上搭建mysql数据库并启动mysql

3.关闭两台主机的防火墙(可以清除规则也可以添加相应的3306端口允许)

我个人这里用iptables -F 清除规则

4.mysql主机上创建一个专用的数据库备份帐户operator,允许从备份主机192.168.10.1、连接到mysql数据库,并授权对studydbcoursedb库读取权限

[root@mysql ~]# mysql

mysql> create database studydb;

mysql> create database coursedb;

mysql> GRANT select,lock tables ON studydb.* TO 'operator'@'192.168.10.1' IDENTIFIED BY '123.asd';

mysql> GRANT select,lock tables ON coursedb.* TO 'operator'@'192.168.10.1' IDENTIFIED BY '123.asd';

5.从备份主机中安装mysqldump备份工具

并测试数据库访问,查询授权等是否有效

 

 

6.编写mysql备份脚本:在备份主机backup中创建用来存放备份文件的目录,并编写相应的备份脚本

红色下划线/usr/bin/mysqldump是因为不同的安装方式有不同的位置,根据实际环境填写

#!/bin/bash

#这是一个简化的mysql数据库逻辑备份脚本

#1.定义数据库连接、目标库信息

MY_USER="operator"

MY_PASS="123.asd"

MY_HOST="192.168.10.2"

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

MY_DB1="studydb"

MY_DB2="coursedb"

#2.定义备份目录、工具、时间、文件名主体

BF_DIR="/opt/qnzx_dbbak/"

BF_CMD="/usr/bin/mysqldump"

BF_TIME=`date +%Y%m%d-%H%M`#时间格式:YYYYmmdd-HHMM

NAME_1="$MY_DB1-$BF_TIME"

NAME_2="$MY_DB2-$BF_TIME"

# 3.先导出.sql脚本,然后再进行压缩(打包后删除原文件)

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.tar.gz $NAME_1.sql --remove &> /dev/null

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

date +%Y%m%d-%H%M`Y H M都是大写:Y是年份,m是月份,d是天,H是小时,M是分钟

7:为脚本添加执行权限,并手动执行备份脚本,确认备份结果

8.设置计划任务

截图如下:

 

内容如下:

mvqnzx_dbbak.sh/opt/qnzx_dbbak/         ——将脚本转移到备份目录

crontab -e                                                    ——在指定的时间执行脚本程序

915* * * /opt/qnzx_dbbak/qnzx_dbbak.sh

service crond status                                   ——确保crond服务已运行

【因生产所需而有所不同,具体设置还需根据生产环境而定,仅做参考,不足之处望谅解】

 

转载地址:http://hrqzx.baihongyu.com/

你可能感兴趣的文章
PostgreSQL Crosstab Query (交叉表)试用随记
查看>>
Ubuntu重启网络/etc/init.d/networking restart报错
查看>>
A1-2017级算法上机第一次练习赛 B ModricWang和数论
查看>>
iOS知识小总结
查看>>
检查进程是否存在
查看>>
作业一
查看>>
Java IO流文件复制/解压的几种方法总结
查看>>
WPF 冒泡路由事件
查看>>
hdu 1754 I Hate It
查看>>
通过Django Channels设计聊天机器人WEB框架
查看>>
Linux下使进程在后台运行
查看>>
并发编程 之 生产者消费者模型
查看>>
c 实现对文件操作:选择排序
查看>>
Random类
查看>>
记java一次尴尬的@Override
查看>>
Linux 终端命令格式
查看>>
结构型模式——代理模式(七)
查看>>
PostMan使用教程(1)
查看>>
jquery radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中
查看>>
Python数据分析Numpy库方法简介(四)
查看>>