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

    数据库备份

    增量备份、差异备份区别

    增量是每天相对于前一天的备份

    差异是相对于完全备份的时间点

    1、冷备份 离线,读写操作终止

    2、热备份 备份是读写不受影响

    3、温备份 仅可以读操作

    4、物理备份:备份数据文件、逻辑备份:将数据导出至文本中

    5、备份内容:数据库配置文件、数据、二进制日志、事务日志

    6、热备份:innoDB:xtrabackup,mysqldump

          MyISAM:温度备份

    mysql=====主从架构,离线备份

    物理备份:速度快

    逻辑备份:速度慢,丢失浮点数精度

    7、备份策略

    完全+增量 、完全+差异

    一周做一次完全备份;一天做一次差异或者增量;一天一次完全+一小时差异或者增量

    8、mysql 备份工具

    8.1 mysqldump :逻辑备份工具、Myisam(温备份) 、InnoDB(热备份)

    mysqlhotcopy:物理备份工具、温备或者冷备份工具

    文件系统工具

    8.2 cp :冷备

    lv: 逻辑卷快照功能,几乎热备

    mysql>flush tables;

    mysql>lock tables;

    创建快照、释放锁、而后复制数据

    8.3 第三组工具

    ibbackup:商业备份

    xtrabackup:开源备份

    9、备份工具操作

    9.1 mysqldump(完全备份)+二进制备份 

    命令:mysqldump db_name [tb1] [tb2] 备份 db_name数据库或者 表[tb1]

    mysqldump -uroot -p 数据库名称 > /backupdir/backup.sql

    mysqldump 备份插入语句

    mysql 数据库名称 < /backupdir/backup.sql 导入数据库

    mysql>lock tables;

    mysql>flush tables with read lock; 备份之前先锁表 以读的方式锁定,在dump 备份mysql数据

    再执行备份 mysqldump -uroot -p 数据库名称 > /backupdir/backup.sql

    备份完成后是否锁定

    mysql> lock tables;

    mysql>unlock tables;  释放锁定

    备份二进制日志:

    msyql>flush tables with read lock; 只读形式锁表

    mysql>flush logs;

    msyql>show binary logs; 查看二进制日志

    --master-data=n{0|1|2} 0:不记录二进制文件及位置

                 1:以 change master to 的方式记录位置,用于恢复后直接启动从服务器

                 2:以change master to 方式备份,默认被注释

    记录二进制日志备份:

    mysqldump -uroot -p --master-data=1 msyqldb >/back/back-date+%F-%H-%M-%S.sql

    温备份 锁定所有表

    --lock-all-tables 参数 锁定所有表 后进行备份

    mysqldump -uroot -p --lock-all-tables  --master-data=1 msyqldb >/back/back-date+%F-%H-%M-%S.sql

    --flush-logs:执行日志flush;执行备份前,日志滚动

    * 如果指定库中的表类型均为InnoDB ,可以使用 --single-transaction 启动热备;

    备份多个库

    --all-databases :备份所有库

    --databases DB—Name 备份指定库

    这两个命令备份库名;恢复前不用手动创建库

    备份所有库:mysqldump -uroot -p --lock-all-tables --flush-logs --all-databases --master-data=2 >/back/dbs+%F-%H-%M-%S.sql

    增量备份:备份每天的二进制日志

    10、备份策略:每周完全+每日增量

    完全备份:mysqldump  msyqldump -uroot -p  --master-data=2 --flush-logs --all-databases --lock-all-tables>/back/alldatabases.sql

    mysql>purge binary logs to 'msyql-bin-000011' ;删除'msyql-bin-000011'之前的 二进制日志;

    msyql>show binary logs;

    增量备份:备份二进制日志文件(flush logs)

    1、mysql>flush logs; 先登录mysql 刷新下日志;

    2、cd /mysql/data/ (此目录为数据库的data存放路径) 

      cp mysql-bin-000011 /back/

    3、或者可以另一种方式增量备份,把mysql-bin-000011 数据读出了后进行备份

    mysqlbinlog mysql-bin.000011 >/back/mon-01bin.sql

    恢复mysql 数据库;

    假如mysql data 目录下,被整个都删除了;

    1、cd /usr/local/mysql/ mysql安装目录

    2、初始化mysql :scripts/mysql_install_db --user=mysql --datadir=/mydat/data/

    3、启动mysql 

    4、#mysql -u root -p </back/alldatabases.sql  导入完全备份库

    5、#mysql -u root -p </back/mon-01bin.sql  再导入增量的二进制备份

    6、再把没有备份的最新二进制日志导入:#mysqlbinlog mysql-bin.000012 >/back/tu.sql

                       #mysql -uroot -p </back/tu.sql

    mysql 备份脚本:

  • 相关阅读:
    你应该知道的数仓安全——默认权限实现共享schema
    手把手教你使用ModelArts的自动学习识别毒蘑菇分类
    “先加密后签名”是不是安全?看完这篇就秒懂!
    多模态AI开发套件HiLens Kit:超强算力彰显云上实力
    基于Fabric的性能测试与调优实践
    metasploit——How To Set Up A Penetration Testing Lab
    Kalilinux安装之后的简单设置
    Kalilinux安装之后的简单设置(转)
    命令总结—Linux查询系统各项资源
    kali 2.0 — install flashplugin
  • 原文地址:https://www.cnblogs.com/zhzhao/p/4529485.html
Copyright © 2011-2022 走看看