zoukankan      html  css  js  c++  java
  • mysql 备份和恢复

    MySQL分物理备份和逻辑备份

    物理备份:就是把数据库目录下的数据进行打包备份,缺点就是有数据在写入时,会损坏数据,需要MySQL停机备份

    逻辑备份,就是把执行过的语句备份下来

    mysqldump(缺点:备份慢,数据超过50G不适合用)

    单库备份

    mysqldump -uroot -p -B databasename >/etc/tmp/databasename_bak_$(date +%F).sql

    备份所有库

    mysqldump -uroot -p -A -B > /etc/tmp/databasename_bak_$(date +%F).sql

    分库备份

    #/bin/sh
    MYSQL_CMD=/usr/local/mysql/bin/mysqldump
    MYSQL_USER=root
    MYSQL_PWD=123456
    DATE=`date +%F`
    DBname=`mysql -u${MYSQL_USER} -p${MYSQL_PWD} -e "show databases;"|sed '1,5d'`
    
    for DBname in ${DBname}
    do
        ${MYSQL_CMD} -u${MYSQL_USER} -p${MYSQL_PWD} --compact -B ${DBname} | gzip >/backup/${DBname}_${DATE}.sql.gz
    done

     表备份

    mysqldump -uroot -p databasesname tablesname > /etc/tablesname_bak_$(date +%F).sql

    表结构备份(不包含表里面的数据)

    mysqldump -uroot -p  -d databasesname tablesname > /etc/tablesname_bak_$(date +%F).sql

    压缩备份

    mysqldump -uroot -p -A -B | gzip >/backup/all_bak$(date +%F).sql.gz

    优化备份

    mysqldump -uroot -p --compact  test> /backup/bak_$(date +%F).sql #加了--commpact后,会取消注释,语句之间变的紧凑,但是会改变原来的时区,生产环境下要注意

    mysqldump -uroot -p --lock-all-tables test >/backup/bak_$(date +%F).sql #因为myisam引擎会表锁,为了保证数据的一致性加--lock-all-tables 进行锁表操作

    mysqldump -uroot -p --single-transaction test -F >/backup/bak_$(date +%F).sql #因为innodb引擎为行锁,加--single-transaction不用进行表锁操作

    恢复数据

    source /backup/all_bak_2020-5-13.sql

    mysql -uroot -p </backup/all_bak_2020-5-13.sql

    物理备份工具:xtrabackup

    安装xtrabackup

    yum install percona-xtrabackup(如果源里面没有,可以换其他源或者去官网下载rpm包)

    全量备份

    innobackupex --default-file=/etc/my.cnf --user=root --password=wangwei --backup /home/ (指定配置文件/etc/my.cnf,备份到/home)

    执行回滚

    innobackupex --apply-log /home/2020-05-09_12-23-56/

    全量恢复

    innobackupex --defaults-file=/etc/my.cnf --copy-back /home/2020-05-09_12-23-56/ (恢复后需要为文件添加权限)

    增量备份

    innobackupex --defaults-file=/etc/my.cnf --user=root --password=wangwei --incremental --incremental-basedir=/home/2020-05-10_00-51-11/ /home/zengliang/

    回滚

    innobackupex --apply-log --redo-only /home/2020-05-10_00-51-11/

    innobackupex --apply-log /home/2020-05-10_00-51-11/ --incremental-dir=/home/zengliang/2020-05-10_03-55-07/ (从增量备份到全量备份回滚)

    恢复(必须删除存储目录里面的所有文件)

    innobackupex --defaults-file=/etc/my.cnf --copy-back /home/2020-05-10_00-51-11/

  • 相关阅读:
    Tensorflow实战(二):Discuz验证码识别
    文竹越长越乱?教你7种修剪方法可保持文竹株形优美,矮壮浓密
    拼应需求分析
    软工实践结对第二次作业
    软工团队第一次作业--团队展示
    学习命令行传参
    软工实践第三次作业-原型设计
    软工实践第二次作业2.0
    软工实践第二次作业
    学习c++ofstream和ifstream
  • 原文地址:https://www.cnblogs.com/yunweiweb/p/12873624.html
Copyright © 2011-2022 走看看