广告
返回顶部
首页 > 资讯 > 数据库 >MySQL备份脚本的写法
  • 898
分享到

MySQL备份脚本的写法

MySQL备份MySQL备份脚本 2022-05-23 04:05:31 898人浏览 安东尼
摘要

前言: 数据库备份的重要性不言而喻,特别是在生产环境,任何数据的丢失都可能产生严重的后果。所以,无论什么环境,我们都应该有相应的备份策略来定时备份数据库。在 Mysql 中,比较常用的逻辑备份工具是 mysqldum

前言:

数据库备份的重要性不言而喻,特别是在生产环境,任何数据的丢失都可能产生严重的后果。所以,无论什么环境,我们都应该有相应的备份策略来定时备份数据库。在 Mysql 中,比较常用的逻辑备份工具mysqldump,本篇文章将介绍 Mysql 定时备份的方法。

1.制定合适的备份策略

对于不同的数据库环境,我们应该考虑不同的备份策略。制定备份策略时,应考虑以下几点因素:

  • 物理备份还是逻辑备份。这个可以由数据库大小决定,比如说小于100G用逻辑备份,大于100G用物理备份。
  • 备份文件保留时间。这个可以由磁盘大小决定,一般至少保留7天。
  • 备份执行时间。一般放在业务低峰期,比如凌晨执行备份操作。
  • 备份间隔时间。一般推荐一天一备,如果系统不太重要,备份间隔也可以延长。
  • 是否有从库。有从库的话,推荐放在从库上备份,减小对主库的压力。

2.Linux系统备份脚本

linux 系统下,我们可以利用 crontab 定时任务来执行备份脚本,如果你你对 crontab 还不了解,可以参考以下介绍快速学习下。

crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。

格式:

* * * * * command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令

crontab -e 编辑该用户下的定时任务设置
crontab -l 列出该用户下的所有定时任务

下面我们来正式书写备份脚本,废话不多说,先给出脚本模板:


#!/bin/bash
# -------------------------------------------------------------------------------
# FileName:  mysql_backup.sh 
# Describe:  Used for database backup
# Revision:  1.0
# Date:    2020/08/11
# Author:   wang

# 设置mysql的登录用户名和密码(根据实际情况填写)
mysql_user = "root"
mysql_passWord = "yourpassword"
mysql_host = "localhost"
mysql_port = "3306"
backup_dir = /data/mysql_backup

dt=date +'%Y%m%d_%H%M'
echo "Backup Begin Date:" $(date +"%Y-%m-%d %H:%M:%S")

# 备份全部数据库
mysqldump -h$mysql_host -P$mysql_port -u$mysql_user -p$mysql_password -R -E --all-databases --single-transaction > $backup_dir/mysql_backup_$dt.sql

find $backup_dir -mtime +7 -type f -name '*.sql' -exec rm -rf {} \;
echo "Backup Succeed Date:" $(date +"%Y-%m-%d %H:%M:%S")

以上脚本可根据实际情况修改,比如备份某一个库、保留时间变更等等。脚本写完后要注意调试,调试完成后就可以部署了,比如我们打算每天凌晨2点进行备份,则可以这样设置定时任务。


# 注意脚本执行权限及修改脚本路径
00 02 * * * sh /root/scripts/mysql_backup.sh > /root/scripts/mysql_backup.log 2>&1

 3.Windows系统备份脚本

windows 系统备份脚本也是类似的,只不过变成了bat脚本,需要设置计划任务来定时执行。比如我们可以在E盘下创建一个 MySQLdata_Bak 目录,此目录下创建 mysql_backup 目录存放备份文件,mysql_bak.bat 是备份脚本,脚本内容如下(自动删除7天前的备份文件):


rem auther:wang
rem date:20200811
rem ******MySQL backup start********
@echo off
forfiles /p "E:\MySQLdata_Bak\mysql_backup" /m backup_*.sql -d -7 /c "cmd /c del /f @path"
set "Ymd=%date:~0,4%%date:~5,2%%date:~8,2%0%time:~1,1%%time:~3,2%%time:~6,2%"
"E:\mysql5.7.23\bin\mysqldump" -uroot -p123456 -P3306 --default-character-set=utf8 -R -E --single-transaction --all-databases > "E:\MySQLdata_Bak\mysql_backup\backup_%Ymd%.sql"
@echo on
rem ******MySQL backup end********

以上脚本仅供参考,可以根据自己的环境稍加改动。同样的,脚本调试完成后就可以加入计划任务了,如果你对 Windows 计划任务还不了解,可以百度下,也是比较方便简单的。

4.备份可用性校验

除了备份,非常重要的一件事情就是验证备份数据的可用性。想象一下,当你需要进行数据恢复的时候,忽然发现过去的备份数据都是无效的,那得有多难受。很多朋友在写好备份脚本加到定时任务后,只是检查下定时任务有执行,备份目录有文件就不再关注了,往往到了需要使用备份文件的时候才发现备份数据有问题。

目前对于备份文件的数据校验没有非常方便的办法,用的比较多的还是定时把备份文件拉出来做备份恢复演练,例如一个月做一次备份恢复演练就可以有效提高备份文件可用性,心里也踏实。

所以,千万不要以为有了备份就万无一失了,平时也要多检查备份脚本执行是否正确,生产的备份脚本内容是否可用,最好可以定期做恢复演练。

总结:

本篇文章主要分享了 Linux 系统及 Windows 系统下的 MySQL 定时备份脚本,脚本内容比较简单明了,功能并不复杂,如果你有其他备份需求,可以在此基础上修改完善。如果这篇文章对你有所帮助的话,请多多分享转发。

以上就是MySQL备份脚本的写法的详细内容,更多关于MySQL备份脚本的资料请关注自学编程网其它相关文章!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL备份脚本的写法

本文链接: https://www.lsjlt.com/news/9741.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • MySQL备份脚本的写法
    前言: 数据库备份的重要性不言而喻,特别是在生产环境,任何数据的丢失都可能产生严重的后果。所以,无论什么环境,我们都应该有相应的备份策略来定时备份数据库。在 MySQL 中,比较常用的逻辑备份工具是 mysqldum...
    99+
    2022-05-23
    MySQL 备份 MySQL 备份脚本
  • MySQL备份脚本的写法是什么
    这篇文章将为大家详细讲解有关MySQL备份脚本的写法是什么,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。前言:数据库备份的重要性不言而喻,特别是在生产环境,任何数据的丢失...
    99+
    2022-10-18
  • mysql备份脚本
    在网上看了几个脚本根据网上的稍微修改了下,稍微更准确了点,就是缺少记录日志的功能,还没想好怎么写,后续添加 #!/bin/bash#做大备份数量Backup_Max_Files=20#数据库备份目录WORK...
    99+
    2022-10-18
  • MySQL中binlog备份脚本的方法
    关于mysql的二进制日志(binlog),我们都知道二进制日志(binlog)非常重要,尤其当你需要point to point灾难恢复的时侯,所以我们要对其进行备份。关于二进制日志(binlog)的备份,可以基于fl...
    99+
    2023-04-20
    MySQL中binlog备份脚本 MySQL binlog备份
  • python备份mysql脚本
    今天简单的写了个python的mysql备份脚本,其实也不是很难呀。比shell简洁了很多!  开整:  注释都用英文写了,有些英语基础的朋友应该都可以看得懂了!#!/usr/bin/env python #backup the gtsho...
    99+
    2023-01-31
    脚本 备份 python
  • mysql mysqldum备份脚本
    本篇文章主要讲如何使用shell实现mysql全量,增量备份。增量备份在周一-周六凌晨3点,会复制mysql-bin.00000*到指定目录;而全量备份则使用mysqldump将所有的数据库导出,每周日凌晨...
    99+
    2022-10-18
  • Linux中mysql定时备份的脚本怎么写
    这篇“Linux中mysql定时备份的脚本怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Linux中mysql定时备份...
    99+
    2023-06-27
  • mysql的备份脚本分享
    本篇内容介绍了“mysql的备份脚本分享”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!#!/bin/bas...
    99+
    2022-10-18
  • mysql 分库备份脚本
    #!/bin/bash #Author:heyic.m@gmail.com #按数据库分库备份,可排除指定库 #2016-06-08 create. #2017-02-21 add&nb...
    99+
    2022-10-18
  • MySQL分库备份脚本
    vim /data/mysqlback.sh#! /bin/bashBAKPATH=/data/mysql-backMYUSER=rootMYPASS="123456"SOCKET=/var/lib/mys...
    99+
    2022-10-18
  • mysql全库备份/增量备份脚本
    http://hongge.blog.51cto.com/ 生产环境中Mysql数据库的备份是周期性重复的操作,所以通常是要编写脚本实现,通过crond计划任务周期性执行备份脚本 mysqldump备份...
    99+
    2022-10-18
  • MySQL 数据库备份脚本
    MySQL 数据库备份脚本 #!/bin/bash # 数据库连接信息 DB_HOST="127.0.0.1" DB_PORT="3306" DB_USER="root" DB_PASSWD="root" # 时间格式化,如 20...
    99+
    2015-10-18
    MySQL 数据库备份脚本
  • mysql或者mariadb备份脚本
    #!/bin/bash BACK_DIR=/data/mysql_backup HOST=192.168.10.100 USER=node PASSWORD=a12gd DATABASES=(       ...
    99+
    2022-10-18
  • linux 服务器自动备份脚本的方法(mysql、附件备份)
    一、创建backup.sh脚本文件 #!/bin/sh SOURCE_FOLDER=/data DB_FOLDER=/data/db BACKUP_FOLDER=/data/backup TM=`date +%Y%m...
    99+
    2022-06-04
    linux 服务器自动备份脚本 linux 备份脚本 linux 自动备份
  • python10.4备份脚本的代码怎么写
    python10.4备份脚本的代码怎么写,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。版本四的代码是相当长的,所以很多人对其有束手无策之感,但是你通过以下的代码对其,有更好...
    99+
    2023-06-17
  • MySQL增量备份的脚本代码
    这篇文章主要讲解了“MySQL增量备份的脚本代码”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL增量备份的脚本代码”吧!#!/bin/sh #aut...
    99+
    2022-10-18
  • mysql数据备份的脚本分享
    本篇内容主要讲解“mysql数据备份的脚本分享”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql数据备份的脚本分享”吧!  #!/usr/bin...
    99+
    2022-10-18
  • Shell 脚本备份MySQL数据库
    (1)思路  <1>安装MySQL数据库  <2>创建数据库,表,插入数据   <3>授权一个用于备份数据库的用户名和密码&nbs...
    99+
    2022-10-18
  • MySQL数据库备份Shell脚本
    此脚本将远程主机或者本地主机上的数据库的数据备份到本地。备份MySQL数据库除了information_schema、performance_schema、mysql自带库的其他生产库。备份时将MySQL数...
    99+
    2022-10-18
  • 【MySQL】Xtrabackup备份及恢复脚本
    简介: 此备份脚本的策略是每周日和周三进去全备 其余每天增量备份。 # 备份脚本XtraBackup.sh: #!/bin/bash # filename : XtraBackup.sh # ...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作