300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > mysql5.7脚本代码例子 Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本

mysql5.7脚本代码例子 Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本

时间:2019-10-29 11:14:54

相关推荐

mysql5.7脚本代码例子 Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本

Shell脚本使用汇总整理——mysql数据库5.7.8以后备份脚本

Shell脚本使用的基本知识点汇总详情见连接:

脚本分为三部分配置信息、脚本文件、定时任务;

1、配置信息:

username=root

password=123456

backupsFileStr=/dataBack/mysql

backupsFileDay=7

threadCounts=6

mysqldumpStr=/usr/local/mysql/bin/mysqlpump

copydb=hebei,countryJgPrep

参数说明:

username:用户名

password:密码

backupsFileStr:保留备份数据文件绝对路径

backupsFileDay:保留备份数据文件天数

threadCounts:备份开启多少个线程,偶数个线程

mysqldumpStr:导出工具mysqlpump绝对路径,mysqlpump是mysql数据库5.7.8以后版本一种高效的导出方式

copydb:备份的数据库名称,多个数据库用逗号分隔

2、脚本文件:

#!/bin/sh

#db_backups_conf.txt文件路径

db_backups_conf="/wocloud/shell/db_backups_conf.txt"

#判断文件是否存在

if [ -f "${db_backups_conf}" ];then

echo $(date +'%Y-%m-%d %H:%M:%S')" 数据库配置信息文件存在,开始进行数据备份"

#获取等号前内容,作为map中的Key值

dbArrOne=($(awk -F'[=]' '{print $1}' ${db_backups_conf} ))

#获取等号后内容,作为map中的value值

dbArrTwo=($(awk -F'[=]' '{print $2}' ${db_backups_conf}))

#创建一个空map

declare -A map=()

#通过循环,将db_backups_conf配置文件中的信息存储在map中

for((i=0;i

do

map[${dbArrOne[i]}]=${dbArrTwo[i]}

done

#获取备份数据库的字符串

copyDb=${map["copydb"]}

#获取默认的字符串分隔符

old_ifs="$IFS"

#设置字符串分隔符为逗号

IFS=","

#将备份数据库value值的字符串进行分隔,获取一个数组

dbArr=($copyDb)

#将字符串的分隔符重新设置为默认的分隔符

IFS="$old_ifs"

#获取当前年月日

saveday=$(date +%Y%m%d)

#获取超出备份天数的年月日

delday=$(date -d ${map["backupsFileDay"]}' days ago' +%Y%m%d)

#遍历要备份的数据库,删除两天前备份的数据文件

for delDb in ${dbArr[@]};

do

echo $(date +'%Y-%m-%d %H:%M:%S')" 删除文件:"${map["backupsFileStr"]}/${delDb}_database_${delday}.sql

rm -f ${map["backupsFileStr"]}/${delDb}_database_${delday}.sql

done

#遍历要备份的数据库,备份数据文件

for saveDb in ${dbArr[@]};

do

echo $(date +'%Y-%m-%d %H:%M:%S')" 备份数据库:"${saveDb}

${map["mysqldumpStr"]} -u${map["username"]} -p${map["password"]} --default-parallelism=${map["threadCounts"]} -B ${saveDb} > ${map["backupsFileStr"]}/${saveDb}_database_${saveday}.sql

done

echo $(date +'%Y-%m-%d %H:%M:%S')" 数据备份完毕,脚本执行完毕"

else

echo "文件不存在"

fi

注意:注意代码开头中读取配置文件的路径,这个位置可能不一样,需要进行适当修改。

3、定时任务:

Linux中的sh脚本定时任务,可以通过crontab进行管理,如果linux中没有安装crontab,需要进行安装:

安装命令:

yum -y install vixie-cron

yum -y install crontabs

服务管理

service crond start //启动服务

service crond stop //关闭服务

service crond restart //重启服务

service crond reload //重新载入配置

service crond status //查看crontab服务状态

加入开机自启

chkconfig crond on

(1)设定定时任务:

crontab -e 编写定时任务表达式

例如:

1 */3 * * * /wocloud/shell/fileBackupsScript.sh &>/wocloud/shell/fileBackupsLogs/fileBackupsEcho_`date +\%Y-\%m-\%d-\%H-\%M-\%S`.txt 2>&1

定时表达式+脚本绝对路径+脚本打印信息日志输出绝对路径(一定要有日志输出记录,方便以后进行查看)

(2)重新启动crond

service crond restart;

Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本

Shell脚本使用汇总整理——mysql数据库5.7.8以前备份脚本 Shell脚本使用的基本知识点汇总详情见连接: /lsy-blogs/p/92234 ...

Shell脚本使用汇总整理——达梦数据库备份脚本

Shell脚本使用汇总整理——达梦数据库备份脚本 Shell脚本使用的基本知识点汇总详情见连接: /lsy-blogs/p/9223477.html 脚本 ...

Shell脚本使用汇总整理

Shell脚本使用汇总整理 一.Shell脚本常用的头部格式: 头部的作用就是告知linux此脚本的类型: 常用的头部格式如下:(/bin/bash,是bash的路径,如果不知道路径可以通过which ...

Shell脚本使用汇总整理——文件夹及子文件备份脚本

Shell脚本使用汇总整理——文件夹及子文件备份脚本 Shell脚本使用的基本知识点汇总详情见连接: /lsy-blogs/p/9223477.html ...

配合crond服务实现自定义周期备份MySQL数据库(使用innobackupex进行备份)

备份 新建一个脚本/root/backup.py,内容如下: #!/usr/bin/env python# -*- coding: utf-8 -*- ''' 脚本作者:昨夜星辰 脚本作用:配合cro ...

实现对MySQL数据库进行分库/分表备份(shell脚本)

工作中,往往数据库备份是件非常重要的事情,毕竟数据就是金钱,就是生命!废话不多,下面介绍一下:如何实现对MySQL数据库进行分库备份(shell脚本) Mysq数据库dump备份/还原语法: mysq ...

Navicat工具导出mySQL数据库某个视图结构的.sql脚本

用Navicat工具怎么都导不出来mySQL数据库的某个视图.sql脚本,即使导出来也只是包含视图记录,不包含视图结构.经过一番研究,终于克服,操作如下: 1.在某个数据库中,新建备份,如下图 2.选 ...

收集整理mysql数据库设计规范与原则

1.数据库命名规范 采用26个英文字母(区分大小写)和0-9的自然数(经常不需要)加上下划线'_'组成;命名简洁明确(长度不能超过30个字符);例如:user, stat, log, 也可以wifi ...

mysql数据库binlog日志的异地备份

MySQL数据库的二进制日志binlog记录了对数据库的全量DDL和DML操作,对数据库的point to point灾难恢复起着无法替代的关键作用.因此,基于此类考虑,需要对生产环境产生的binlo ...

随机推荐

STL标准模板库(简介)

标准模板库(STL,Standard Template Library)是C++标准库的重要组成部分,包含了诸多在计算机科学领域里所常见的基本数据结构和基本算法,为广大C++程序员提供了一个可扩展的应 ...

bzoj 4557: [JLoi]侦察守卫 树归

bzoj 4557: [JLoi]侦察守卫 设f[x][j]表示覆盖以x为根的子树的所有应该被覆盖的节点,并且以x为根的子树向下j层全部被覆盖的最小代价. 设g[x][j]表示与x距离大于j全 ...

IOS----友盟推送详解

这两天好好的研究了下推送这功能,关于它我将分成两部分来讲,一.IOS手机端,二.Servlet服务端,今天先讲下IOS端 一.感受 下面讲下我对推送这个功能在IOS下的感受,这个算是我做了服务端的功能 ...

Add And Reset a Federation Server to a Federation Server Farm adfs ad

Applies To: Active Directory Federation Services (AD FS) 2.0 After you install the Active Directory ...

windows 安装paramiko模块

首先需要安装pycrypto这个模块,这个下源码编译安装的不能用报错warning: GMP or MPIR library not found; Not building这个用编译好的模块安装已编译 ...

ARM裸机开发中内存管理库RT_HEAP的使用

在使用arm芯片进行裸机开发的时候,很多时候都需要内存管理的功能,我们可以使用自己写的内存管理程序,也可以直接使用标准库,不过我一般比较喜欢标准库,速度快,今天就来说说在C语言环境下怎么样进行内存的动 ...

day3 自定义指令详解

在angular中,Directive,自定义指令的学习,可以更好的理解angular指令的原理,当angular的指令不能满足你的需求的时候,嘿嘿,你就可以来看看这篇文章,自定义自己的指令,可以满足 ...

OpenMVG学习笔记

OpenMVG 是一个不错的SFM开源算法库,可以实现基于多视图像的稀疏重建. OpenMVG SfM pipelines run as a 4 step process:包含四个基本过程 1. Im ...

vue select中的option循环的时候,要使用 :value,不能使用 v-model

ngx_lua_API 指令详解(二)ngx.re.match/find/gmatch/sub/gsub指令集合

1.先来个官方的ngx.re.match location /ngx_re_match { default_type text/html; content_by_lua_block { local m ...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。