MySQL数据库备份脚本

环境:

  • mysql 5.7
  • centos7
  • 数据库管理账号密码
  • 数据库名称
  • 数据备份存储的目录

具体脚本
vi db_backup.sh
以下为脚本具体内容

#!/bin/bash

#define backup minute
DATE=`date +%Y%m%d%H%M`
#database name
DATABASE=jumpserver
#database username
DB_USERNAME=dba_username
#database password
DB_PASSWORD="myDb_P@ssw0rd"
#backup path
BACKUP_PATH=/mysqlbackup/
#backup command
/usr/local/mysql/app/mysql/bin/mysqldump -u $DB_USERNAME -p$DB_PASSWORD -h 127.0.0.1 -P 3306 -R --opt $DATABASE | gzip > ${BACKUP_PATH}\/${DATABASE}_${DATE}.sql.gz
#just backup the latest 30 days
find ${BACKUP_PATH} -name "*.sql.gz" -type f -mtime +30 -exec rm -rf {} \; > /dev/null 2>&1

把以上db_backup.sh放入到/etc/crontab中,每日执行

参数说明

  • mysqldump 参数 -R (–routines:导出存储过程以及自定义函数)

  • Mysqldump 参数 --opt
    mysqldump -uroot -p --opt DATABASENAME [Table] > xxx.sql

默认Mysqldump导出的SQL文件中不但包含了导出的数据,还包括导出数据库中所有数据表的结构信息。

  –opt:此Mysqldump命令参数是可选的,如果带上这个选项代表激活了Mysqldump命令的quick,add-drop-table,add-locks,extended-insert,lock-tables参数,也就是通过–opt参数在使用Mysqldump导出Mysql数据库信息时不需要再附加上述这些参数。

  –quick:代表忽略缓冲输出,Mysqldump命令直接将数据导出到指定的SQL文件。

  –add-drop-table:顾名思义,就是在每个CREATE TABEL命令之前增加DROP-TABLE IF EXISTS语句,防止数据表重名。

  –add-locks:表示在INSERT数据之前和之后锁定和解锁具体的数据表,你可以打开Mysqldump导出的SQL文件,在INSERT之前会出现LOCK TABLES和UNLOCK TABLES语句。

  –extended-insert (-e):此参数表示可以多行插入。

MySQL数据库备份脚本

上一篇:web网络安全及防护(XSS、CSRF、sql注入)


下一篇:osgDB机制