zoukankan      html  css  js  c++  java
  • 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):此参数表示可以多行插入。

    本人水平有限,还在不断学习中 难免有很多错误或者遗漏,望见谅
  • 相关阅读:
    North North West
    HDU-5387 Clock
    HDU-1036 Average is not Fast Enough!
    Growling Gears
    HDU-5375 Gray code
    HDU-5373 The shortest problem
    hdu-5364 Distribution money
    UVA
    HDU-5363 Key Set
    HDU-5326 Work
  • 原文地址:https://www.cnblogs.com/faberbeta/p/15001821.html
Copyright © 2011-2022 走看看