1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 取消mysql自动备份文件_MySQL自动备份并清理多少天前的备份文件

取消mysql自动备份文件_MySQL自动备份并清理多少天前的备份文件

时间:2020-11-25 13:51:52

相关推荐

取消mysql自动备份文件_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中生成当前日期,格式如-05-30,所以成功导出的文件名为mcpsms_titan_-05-30.sql;5、检查生成的sql文件是否有问题三、整理shell脚本,方便重用#!/bin/sh# tabase infoDB_USER="root"DB_PASS="root"DB_HOST="localhost"DB_NAME="mcpsms-titan"# Others varsBIN_DIR="/usr/local/mysql/bin" #the mysql bin pathBCK_DIR="/usr/local/sql/back" #the backup file directoryDATE=`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、/blog/sqlAutoBak.sh如果mysql包含多个实例,需要指定sock文件,修改脚本为:#!/bin/sh# tabase infoDB_USER="root"DB_PASS="root"DB_HOST="localhost"DB_NAME="mcpsms-titan"# Others varsBIN_DIR="/usr/local/mysql/bin" #the mysql bin pathBCK_DIR="/usr/local/sql/back" #the backup file directoryDATE=`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 infoDB_USER="root"DB_PASS="root"DB_HOST="localhost"DB_NAME="mcpsms-titan"# Others varsBIN_DIR="/usr/local/mysql/bin" #the mysql bin pathBCK_DIR="/usr/local/sql/back" #the backup file directoryDATE=`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 infoDB_USER="root"DB_PASS="root"DB_HOST="localhost"DB_NAME="mcpsms-titan"# Others varsBIN_DIR="/usr/local/mysql/bin" #the mysql bin pathBCK_DIR="/usr/local/sql/back" #the backup file directoryDATE=`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 -e2、插入下面这一行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.shchmod +x sqlAutoDel.sh新建一个执行文件,并且分配权限2、编辑shell脚本#!/bin/shfind /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执行清理任务

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