我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql数据库定时分库备份(本地+异地)

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql数据库定时分库备份(本地+异地)

简介-邱月涛
公司新项目上线,今天建立全网备份,现在这记录的是mysql部分
备份方式:全备+binlog
备份地点:本地+异地
备份时间:每日0点,切割binlog日志

1,环境介绍:

[root@jm1j-node1 scripts]# cat /etc/redhat-release 
CentOS release 6.8 (Final)
[root@jm1j-node1 scripts]# mysql -V
mysql  Ver 14.14 Distrib 5.6.35, for linux-glibc2.5 (x86_64) using  EditLine wrapper

2,规范脚本存放目录

 mkdir -p /server/scripts

3,编写脚本内容如下

#!/bin/bash
#---------------------------------------------------------
# $Name:         mysqlbackup.sh
# $Version:      v1.0
# $Author:       qiuyuetao
# $organization: https://blog.51cto.com/qiuyt
# $Create Date:  2017-12-13
# $Description:  Mysql backup script
#---------------------------------------------------------

#source /etc/init.d/functions
DAY=`date +%Y-%m-%d\-%H-%M`
BACK_DIR="/data/backup/mysql/dump"
DBUSER="root"   #数据用户
DBPASSWD="***数据库密码"  
BIN_PATH="/application/mysql/bin" #全局变量,可以使用which获取
LOG="/var/log/mysqlback.log" #备份日志
CKLOG="/var/log/bkmd5-"$DAY".log" #md5加密日志,后期发送邮件

## Close all tables and refresh log ####
"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "flush logs"

#"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "flush tables with read lock"

echo "mysqldump start `date +%F\ %H\:%M\:%S`" >> "$LOG"

## Each backup database to the target location ####
for i in `"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "show databases" |grep -vE "Database|information_schema|performance_schema"`
  do
        if [ ! -d "$BACK_DIR"/"$i" ]; then
                mkdir -p  "$BACK_DIR"/"$i"
           fi
"$BIN_PATH"/mysqldump -u "$DBUSER" -p"$DBPASSWD" --default-character-set=utf8  --events --master-data=2 --lock-all-tables -f --log-error="$LOG" -B "$i"|gzip > "$BACK_DIR"/"$i"/"$DAY".sql.gz
md5sum "$BACK_DIR"/"$i"/"$(date +%F --date='0 days ago')"-*.sql.gz  >>$CKLOG
   done

echo "mysqldump stop `date +%F\ %H\:%M\:%S`" >> "$LOG"
echo "" >>"$LOG"

## Delete old 10day backup files 保留最近10天的数据####
for RM in `"$BIN_PATH"/mysql -u "$DBUSER" -p"$DBPASSWD" -e "show databases" |grep -vE "Database|information_schema|performance_schema"`
   do

rm -rf "$BACK_DIR"/"$RM"/$(date +%F --date='10 days ago')*.sql.gz
    done

echo 生产数据库备份完整性MD5初始值 |mail -s 备份校验 -a  "$CKLOG"  qiuyt@*****.com  ##自己的邮箱

4,添加执行权限

[root@jm1j-node1 scripts]# chmod +x mysqlbackup.sh `

5,在命令行手动测试

查看备份结果,
mysql数据库定时分库备份(本地+异地)

#如果没有发送邮件,请检查服务是否安装,启动,25端口是否启用等等,然后手动发送邮件测试
6,配置邮箱
1)查看是否安装mailx

[root@jm1j-node1 scripts]# rpm -qa|grep mailx
mailx-12.4-8.el6_6.x86_64

2)修改mail配置

[root@yilonghc-m01 ~]# tail /etc/mail.rc   ##t添加如下内容
set bsdcompat
set from=outlokk@163.com
set smtp=smtp.163.com
set smtp-auth-user=*****@163.com  #自己的邮箱
set smtp-auth-password=***** ##授权码
set smtp-auth=login

6,定时备份 (正常可以加入crontab定时任务,每天0点执行)

mysql数据库定时分库备份(本地+异地)
上面没有找到,下面命令安装

yum install -y vixie-cron

添加定时任务

crontab -e
#mysqlbackup by qyt at 2017-12-13
00 00 * * * /bin/sh  /server/scripts/mysqlbackup.sh >/dev/null 2>&1

##异地备份,有多重方式,为了减少服务器压力,我使用rsync 客户端拉取方式

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql数据库定时分库备份(本地+异地)

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

Mysql数据库定时备份脚本分享

BackUpMysql.sh脚本#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATH#数据库ip DBHOST='
2022-05-31

阿里云备份本地数据库吗?

阿里云备份本地数据库吗?这是一个经常被问到的问题。答案是肯定的,阿里云提供了多种方式来备份本地数据库。本文将详细介绍阿里云备份本地数据库的步骤和方法,帮助您更好地管理和保护本地数据库。正文:阿里云备份本地数据库主要有两种方式:一是使用阿里云的RDS服务,二是使用阿里云的OSS服务。下面我们将分别介绍这两种方式的备
阿里云备份本地数据库吗?
2023-10-31

navicat怎么备份数据库到本地

使用 navicat 备份数据库到本地:选择数据库;2. 导出到 "本地备份";3. 指定表、路径和文件名;4. 配置导出选项;5. 启动导出;6. 验证备份。如何使用 Navicat 将数据库备份到本地Navicat 是一个数据库管理工
navicat怎么备份数据库到本地
2024-04-24

定时任务备份mysql数据库,同时备份多个数据库

编写备份数据库的shell脚本创建脚本mkdir -p /root/mysql_dump/datacd /root/mysql_dumpvim mysql_back.sh脚本内容如下#!/bin/sh# File: /root/mysql_dump/mysql
2018-09-25

如何将本地数据库备份到阿里云实现数据迁移和异地灾备

在现代信息技术时代,数据安全和备份是企业的重要需求之一。本文将介绍如何将本地数据库备份到阿里云,以实现数据迁移和异地灾备。我们将探讨备份过程中的步骤和技术,并提供一些实际案例来帮助读者更好地理解和应用。详细说明:1.准备工作在将本地数据库备份到阿里云之前,我们需要进行一些准备工作。首先,确保你已经在阿里云上创建了
如何将本地数据库备份到阿里云实现数据迁移和异地灾备
2024-01-18

云服务器数据库备份到本地

云服务器数据库备份到本地通常是将数据备份到云服务器的本地磁盘或者网络磁盘上。备份的方式取决于云服务器的不同配置。对于使用集群模式的云服务器,通常会将多个物理服务器组成一个虚拟服务器集群,每个服务器可以包含多个应用程序或数据。这些应用程序和数据可以被部署在同一个本地磁盘上的多个虚拟机上。这种方法需要将数据备份到多个磁盘上,并且在备份之后需要将其恢复到备份的磁盘上。对于使用分布式模式的云服务器,
2023-10-26

mysqldump使用rsync异地全量备份数据库

Mysql 做了本机,同机房全量备份后,想同时做一份异地备份,考虑异地机房的网络不稳定性,使用 rsync 来同步备份的文件;同机房异机备份,内网速度快可以使用scp,或者mysqldump备份脚本放在非mysql机器上;服务器环境: CentOS Linux
mysqldump使用rsync异地全量备份数据库
2016-12-11

编程热搜

目录