mysql备份脚本-mysqldump

背景:全库备份

备份流程:

  1.生成DB列表,将DB名字写入文件

  2.定义备份函数,结果写入SQL文件

  3.压缩文件,减少磁盘占用量

  4.设置保留天数,定期删除n天之前的

  5.通过for循环读取DB列表文件,依次进行mysqldump

 1 #!/bin/bash
 2
 3 PORT=‘5001‘
 4 PASSWD=‘admin‘
 5 SOCKED="/data/socket/mysql${PORT}.sock"
 6 BACKUP_FILE=‘/data/mysqlData/backup‘
 7 BACKUP_SAVE_DAYS=‘2‘
 8
 9 CMD1=‘show databases;‘
10 Time=`date +%Y%m%d_%H%M%S`
11 EVERY_DAY_BACKUP_DIR="${BACKUP_FILE}/${Time}_backup"
12 DB_LIST="${EVERY_DAY_BACKUP_DIR}/db_list.txt"
13
14 # function : check_db ===> db_list.txt
15 check_db()
16 {
17     mkdir -pv ${EVERY_DAY_BACKUP_DIR} >>/dev/null
18     touch ${DB_LIST} && chmod 755 ${DB_LIST} && chown -R mysql.mysql ${DB_LIST}
19     /usr/local/mysql/bin/mysql -uadmin -p${PASSWD} -S ${SOCKED} -NBe"${CMD1}"|grep -v ‘information_schema\|performance_schema\|mysql‘>${DB_LIST}
20
21 }
22
23 # function : backup_db ===>xx.sql
24 backup_db()
25 {
26     /usr/local/mysql/bin/mysqldump -uadmin -p${PASSWD} -S ${SOCKED} $1 >> ${EVERY_DAY_BACKUP_DIR}/$1.sql
27 }
28
29 # function : tar_file ===>xx.tar.gz
30 tar_file()
31 {
32     cd ${BACKUP_FILE}
33     tar -cf `date +%Y%m%d_%H%M%S`.tar.gz ${Time}_backup
34     rm -fr ${Time}_backup
35 }
36
37 # function : delete xx.tar.gz : <before n days>
38 delete_file()
39 {
40     cd ${BACKUP_FILE}
41     /usr/bin/find -name "*.tar.gz" -mtime +${BACKUP_SAVE_DAYS} -exec rm {} \;
42 }
43
44 # main_process
45 # 1
46 check_db
47
48 # 2
49 cat ${DB_LIST}| while read line
50 do
51     oldIFS=${IFS}
52     backup_db ${line}
53     IFS=${oldIFS}
54     sleep 20
55 done
56
57 # 3
58 tar_file
59
60 # 4 delete xx.tar.gz : before n days
61
62 delete_file ${BACKUP_SAVE_DAYS}
时间: 2024-09-30 22:08:22

mysql备份脚本-mysqldump的相关文章

Windows下MySQL备份脚本

1 @echo off 2 rem MySQL备份脚本 支持全备份 3 rem 增量备份需要MySQL服务加--log-bin参数执行 4 rem 数据还原 mysql -u root -p < backup.sql 5 rem ===================== 6 rem 全局变量 7 set dump=mysqldump.exe 8 set rand=%random% 9 rem ===================== 10 11 rem 检测MySQL路径是否添加到PATH变

mysql 备份脚本(xtrabackup)

mysql备份脚本,记录一下: 全备: #!/bin/sh  set -x                                                             USER=root  PASSWORD=123456 time=`date +"%y-%m-%d-%H-%M"`   date >> /data/mysqlbackup/logs/$time'_allbackup.log'    #1 begin Full Backups  ech

MySQL备份之mysqldump和lvm2的使用

逻辑备份:工具 mysqldump, mydumper, phpMyAdmin(备份的缺点:Schema和数据存储一起.会生成巨大的SQL语句.单个巨大的备份文件)连上MySQL后,将数据导出来.考虑到备份的数据可能会比较大,在比较在乎硬盘空间情况下可以使用压缩工具来先压缩后存放. 完全备份并不是指备份所有库是指备份指定数据集当中的所有数据,通常也可以是单个数据库.完全备份+增量备份时,先用mysqldump做一下完全备份,过一个时间后,备份一下这个时间内的二进制日志(每次备份都记录一下位置二进

mysql备份脚本

对extmail数据库进行每天01:00完全热备份,并可以完全恢复! 一.先建立备份脚本,如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 vi mysql_extmail_bak.sh #!/bin/bash # Program #    use mysqldump to Fully backup mysql data per week! BakDir=/mysqlback#要备份到的目录 LogFile=/var/log/bak.log#备份记录日志

mysql 备份脚本以及定时任务

数据是企业最宝贵的资源,作为运维人员备份数据库的数据是特别重要的一项工作,以下是个人查找资料以及个人总结所记录的mysql数据库备份脚本,记录在此作为学习和复习笔记. (1)分库备份脚本 #/bin/sh #version 0.1 MYUSER=root MYPASS=123123 #SOCKET=/data/3306/mysql.sock MYLOGIN="mysql -u$MYUSER -p$MYPASS " MYDUMP="mysqldump -u$MYUSER -p$

线上MySQL备份脚本

最近在研究数据库备份,定时执行备份任务,这里直接把备份脚本设置为crontab命令定时执行,脚本内容如下: [[email protected] ~]# cat mysql-backup.sh #!/bin/bash dbpwd='possw0rd123' dbuser=root host=127.0.0.1 port=3306 dbarg=" -u$dbuser -p$dbpwd -h$host -P$port --default-character=utf8 " DATE=`dat

MySQL备份还原&mdash;&mdash;mysqldump工具介绍

mysqldump是一款MySQL逻辑备份的工具,他将数据库里面的对象(表)导出成SQL脚本文件.有点类似于SQL SEVER的"任务-生成脚本"的逻辑备份功能.mysqldump是比较常用的备份方法,适合于在不同MySQL版本之间的迁移.升级.不足之处就是数据库比较大时,mysqldump的效率不高. mysqldump的主要参数收集整理注释如下,如果你要查看mysqldump的具体参数信息,可以使用命令mysqldump –help --add-drop-table       :

两套mysql备份脚本

数据备份其重要性无需多言,再细想一步,我们至少需要两种备份:一种逻辑备份(mysqldump生成sql文件):一种物理备份(xtrabackup可很好完成).逻辑备份在出问题时能提供更细粒度的恢复和对比:物理备份在整库范围的数据恢复或者增加从库方面有着更高额效率. 首先看下逻辑备份脚本,比较简单 #!/bin/sh ###每天运行一次 ###定义用户 密码 备份目录等信息 user=mysqldump psd=mysqldump backup_base=/data/mysql_backup da

mysql备份脚本(shell)

mysql数据库shell备份脚本 任何项目的运行都离不开数据,持久化数据对于一个企业尤为重要,任何时候都不可掉以轻心,下面是我自己写的一个shell脚本,用来备份数据,分享给大家. #!/bin/bash # 数据库连接信息 MY_user="" MY_pass="" MY_port="3306" # 环境变量 PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/