`
jinwanmeng
  • 浏览: 7471 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类
最新评论

MySQL自动备份并清理多少天前的备份文件

阅读更多
自动备份
一、利用mysql提供的mysqldump工具进行数据库的导入导出

二、使用shell命令执行mysqldump
/usr/local/mysql/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /usr/local/sql/back/mcpsms_titan_`date +%F`.sql
注解:
1、执行/usr/local/mysql/bin/mysqldump  mysql安装目录bin目录下的可执行文件;
2、--opt是quick,add-drop-table,add-locks,extended-insert,lock-tables几个参数的名称,一般都要使用,具体意思自行搜索;
3、-u数据库用户名 -p数据库密码 -h数据库地址 数据库名 > 导出的文件路径
4、`date+%F`是shell中生成当前日期,格式如2018-05-30,所以成功导出的文件名为mcpsms_titan_2015-05-30.sql;
5、检查生成的sql文件是否有问题

三、整理shell脚本,方便重用
#!/bin/sh

# tabase info
DB_USER="root"
DB_PASS="root"
DB_HOST="localhost"
DB_NAME="mcpsms-titan"

# Others vars
BIN_DIR="/usr/local/mysql/bin"            #the mysql bin path
BCK_DIR="/usr/local/sql/back"    #the backup file directory
DATE=`date +%F`

# TODO
# /usr/local/mysql/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /usr/local/sql/back/mcpsms_titan_`date +%F`.sql
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -h$DB_HOST $DB_NAME  > $BCK_DIR/mcpsms_titan_$DATE.sql

四、测试shell脚本
1、进入脚本文件目录chmod +x sqlAutoBak.sh添加执行权限
2、./sqlAutoBak.sh
如果mysql包含多个实例,需要指定sock文件,修改脚本为:
#!/bin/sh

# tabase info
DB_USER="root"
DB_PASS="root"
DB_HOST="localhost"
DB_NAME="mcpsms-titan"

# Others vars
BIN_DIR="/usr/local/mysql/bin"            #the mysql bin path
BCK_DIR="/usr/local/sql/back"    #the backup file directory
DATE=`date +%F`

# TODO
# /usr/local/mysql/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /usr/local/sql/back/mcpsms_titan_`date +%F`.sql
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -S /data/3306/mysql.sock  -h$DB_HOST $DB_NAME > $BCK_DIR/mcpsms_titan_$DATE.sql

五、压缩mysql备份数据
sqlAutoBak.sh修改如下:
#!/bin/sh

# tabase info
DB_USER="root"
DB_PASS="root"
DB_HOST="localhost"
DB_NAME="mcpsms-titan"

# Others vars
BIN_DIR="/usr/local/mysql/bin"            #the mysql bin path
BCK_DIR="/usr/local/sql/back"    #the backup file directory
DATE=`date +%F`

# TODO
# /usr/local/mysql/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /usr/local/sql/back/mcpsms_titan_`date +%F`.sql
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -S /data/3306/mysql.sock  -h$DB_HOST $DB_NAME | gzip > $BCK_DIR/mcpsms_titan_$DATE.sql.gz
压缩一定要写在后面,不然会报错

如果该数据库的用户没有分配锁表的权限,则备份会报错when using LOCK TABLES。那是因为mysqldump命令默认在导出时是要锁定表的,所以解决方式有两个。一个是给用户开放锁表的权限;另一个是在命令中加上--skip-lock-tables这个参数。即是:
#!/bin/sh

# tabase info
DB_USER="root"
DB_PASS="root"
DB_HOST="localhost"
DB_NAME="mcpsms-titan"

# Others vars
BIN_DIR="/usr/local/mysql/bin"            #the mysql bin path
BCK_DIR="/usr/local/sql/back"    #the backup file directory
DATE=`date +%F`

# TODO
# /usr/local/mysql/bin/mysqldump --opt -ubatsing -pbatsingpw -hlocalhost timepusher > /usr/local/sql/back/mcpsms_titan_`date +%F`.sql
$BIN_DIR/mysqldump --opt -u$DB_USER -p$DB_PASS -S /data/3306/mysql.sock  -h$DB_HOST $DB_NAME --skip-lock-tables | gzip > $BCK_DIR/mcpsms_titan_$DATE.sql.gz

六、设置linux定时任务执行脚本
1、编辑定时任务列表
crontab -e
2、插入下面这一行
00 05 * * * /bin/sh /usr/local/sql/sqlAutoBak.sh
#每天早上5:00执行
3、查看任务是否创建成功
crontab -l

七、第二天检查自动生成的sql文件是否符合要求

自动删除N天前备份的数据文件
一、删除文件命令
find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;

二、计划任务
1、创建shell脚本
touch /usr/local/sql/sqlAutoDel.sh
chmod +x sqlAutoDel.sh
新建一个执行文件,并且分配权限
2、编辑shell脚本
#!/bin/sh
find /usr/local/sql/back/ -mtime +2 -name '*.gz' -exec rm -rf {} \;
保存退出
3、计划任务
crontab -e
将sqlAutoDel.sh加入到计划任务中
10 05 * * * /bin/sh /usr/local/sql/sqlAutoDel.sh >/dev/null 2>&1
#每天早上5:10执行清理任务
分享到:
评论

相关推荐

    Windows下MySql自动备份脚本(有备份日志,且可以删除历史备份).zip

    "Windows下MySql自动备份脚本(有备份日志,且可以删除历史备份)"的资源提供了一个解决方案,它是一个批处理脚本(MysqlAutoBackup.bat),能够自动化执行MySQL的备份过程,同时生成备份日志并清理历史备份。...

    python自动备份mysql数据库,并删除七天前文件

    本示例涉及的主题是使用Python来自动备份MySQL数据库,并且定期清理过期的备份文件,以保持存储空间的有效利用。下面将详细介绍这个过程以及相关的知识点。 首先,我们需要了解Python在数据库操作中的角色。Python...

    MYSQL数据库自动备份及清理备份文件脚本

    1、设置备份文件存放目录 2、备份MYSQL数据库,自动排除系统库。...3、设置备份文件保留天数,例-15表示保留15天的备份,即清理15天以前的备份文件。 4、扫描备份目录下的文件,文件修改时间超过保留期的自动删除。

    mysql自动实现备份脚本

    在这个场景下,Bash脚本用于自动化MySQL数据库的备份流程,包括连接数据库、创建备份、压缩备份文件和清理旧备份。 2. **MySQL自动备份的重要性** - 数据安全:定期备份能防止因硬件故障、软件错误或恶意攻击导致...

    MySQL数据库自动备份与清理脚本

    1、mysql数据库自动备份与清理2、支持mysql 5.7与mysql 8.03、基于mysql enterprise backup备份4、支持备份数据通过ftp上传或通过rsync上传5、支持自定义备份数据定期清理

    MySQL自动备份

    实现备份文件自动清理 为了节省磁盘空间并保持备份文件的有序性,我们需要定期清理过期的备份文件。在上面的Shell脚本中,我们已经通过`find`命令结合`-mtime`选项实现了这一功能。 ```bash find ./ -name "mysql...

    mysql 自动备份数据库脚本

    MySQL数据库在日常运营中起着至关重要的作用,因此定期备份是...以上就是关于"mysql 自动备份数据库脚本"的相关知识点,通过理解并正确运用这些概念,可以构建一个稳定、高效的数据库自动备份系统,确保数据的安全。

    mysql批处理 备份数据库-压缩文件

    总之,MySQL批处理备份结合了`mysqldump`的数据库导出功能和压缩工具的文件压缩能力,实现了数据库备份的自动化和高效化。通过编写和配置批处理脚本,我们可以确保在出现故障时迅速恢复数据,保障业务的正常运行。

    自动备份mysql数据库的批处理文件

    本篇文章将详细介绍如何利用Windows任务计划程序和批处理文件实现MySQL数据库的自动化备份。 首先,让我们了解什么是批处理文件。批处理文件是一种包含一系列命令的文本文件,通常以`.bat`或`.cmd`为扩展名。在...

    linux下 MYSQL 自动备份工具

    在MySQL备份场景中,`tar`常用于将`mysqldump`生成的SQL文件压缩成更小的文件,以便节省存储空间并提高传输效率。 6. **cron定时器**:Linux的`cron`服务允许用户设置定时任务,例如每天、每周或每月执行一次MySQL...

    mysql自动备份数据库脚本

    综上所述,`auto_mysql_back.sh`脚本结合了MySQL数据库备份、Shell编程、定时任务以及文件压缩等技术,通过自动化流程实现了数据库的高效、安全备份。理解和掌握这些知识点对于任何IT运维人员来说都是非常重要的。

    mysql自动备份shell脚本

    首先,我们需要一个能够执行备份、压缩、清理旧备份并(可选地)将备份文件传输到远程位置或发送电子邮件通知的脚本。以下两个示例提供了不同选项: 1. FTP上传备份: 这个脚本首先使用`mysqldump`命令导出数据库...

    自动备份mysql数据库

    ### 自动备份MySQL数据库知识点详解 #### 一、概述 在IT行业中,数据备份是一项非常重要的任务,尤其对于运行MySQL数据库的应用系统来说更是如此。本文将详细介绍如何通过编写批处理脚本来实现MySQL数据库的自动...

    linux mysql自动备份工具

    本篇文章将详细讲解如何在Linux系统中设置一个自动的MySQL备份工具,以便实现数据的自动备份,降低因系统故障或人为错误导致的数据丢失风险。 首先,我们需要了解备份MySQL数据库的基本原理。MySQL提供了多种备份...

    MySQL数据库自动备份、还原bat

    本文将详细解析一个MySQL数据库自动备份与还原的批处理脚本示例,帮助读者理解其工作原理并进行实际应用。 #### 一、备份脚本分析 ##### 1. 变量定义 - `@setdestfile=ICBC_mysql%date:~0,4%%date:~5,2%%date:~8,2...

    MYSQL服务器自动备份脚本(可设置保留天数)

    总结起来,这个MySQL服务器自动备份脚本涵盖了数据库的导出、压缩、过期备份的清理以及计划任务的配置,是一个全面且实用的解决方案。通过定期执行这样的脚本,你可以确保在任何数据丢失的情况下都有恢复点可用,...

    mysql上线自动备份脚本

    - **MySQL官方文档**: 提供了详细的MySQL备份和恢复指南。 - **FTP服务器配置**: 学习如何配置FTP服务器以支持远程备份。 - **Cron定时任务**: 探讨如何在Linux环境下设置定时任务来定期执行脚本。 通过以上分析,...

    Mysql自动备份.exe

    这个工具设计得简单易用,用户只需要将其解压缩到当前文件夹,然后运行"Mysql_backup_Tool.exe"文件,就可以启动自动备份进程。 该工具的核心功能是设定定时任务,允许用户配置每天的两个特定时间点进行自动备份。...

    一个自动备份mysql数据库的脚本

    这里我们探讨的是一个使用PHP编写的脚本,该脚本能够自动化执行MySQL数据库的备份任务,并且能自动清理15天前的旧备份,以节省存储空间。 首先,让我们了解一下MySQL数据库备份的基本概念。数据库备份主要有两种...

Global site tag (gtag.js) - Google Analytics