马哥学习笔记十九——MySQL进阶之备份和还原

备份:副本
  RAID1,RAID10:保证硬件损坏而不会业务中止;

  

  备份类型:   

    热备份、温备份和冷备份    

      热备份:读、写不受影响;    

      温备份:仅可以执行读操作;    

      冷备份:离线备份;读、写操作均中止;

    物理备份和逻辑备份    

      物理备份:复制数据文件;    

      逻辑备份:将数据导出至文本文件中;

    完全备份、增量备份和差异备份;    

      完全备份:备份全部数据;    

      增量备份:仅备份上次完全备份或增量备份以后变化的数据;    

      差异备份:仅备份上次完全备份以来变化的数据;

备份什么:
  数据、配置文件、二进制日志、事务日志

物理备份:速度快
逻辑备份:速度慢、丢失浮点数精度;方便使用文本处理工具直接对其处理、可移植能力强;

备份策略:完全+增量;完全+差异

MySQL备份工具:
  mysqldump: 逻辑备份工具、MyISAM(温)、InnoDB(热备份)
  mysqlhotcopy:物理备份工具、温备份

文件系统工具:

  cp:冷备 lv: 逻辑卷的快照功能,几乎热备;  

    mysql> FLUSH TABLES;  

    mysql> LOCK TABLES

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

第三组工具:
  ibbackup: 商业工具
  xtrabackup: 开源工具

mysqldump: 逻辑备份  

  mysqldump(完全备份)+ 二进制日志  

  完全+增量:

备份单个数据库,或库中特定表  

  mysqldump DB_NAME [tb1] [tb2]

    --master-data={0|1|2}  

      0: 不记录二进制日志文件及事件位置;  

      1:以CHNAGE MASTER TO的方式记录位置,可用于恢复后直接启动从服务器;       

      2:以CHANGE MASTER TO的方式记录位置,但默认为被注释;

    --lock-all-tables:锁定所有表

    --flush-logs: 执行日志flush

    如果指定库中的表类型均为InnoDB,可使用--single-transaction启动热备(不要和--lock-all-tabes同时使用);

备份多个库:
  --all-databases: 备份所有库
  --databases DB_NAME,DB_NAME,...: 备份指定库

  --events
  --routines
  --triggers

备份策略:每周完全+每日增量
  完全备份:mysqldump
  增量备份:备份二进制日志文件(flush logs)
逻辑备份:
  1、浮点数据丢失精度;
  2、备份出的数据更占用存储空间,压缩后可大大节省空间;
  3、不适合对大数据库做完全备份;

mysql>show engine innodb status;查看innodb存储引擎状态

备份:  

  SELECT * INTO OUTFILE ‘/path/to/somefile.txt‘ FROM tb_name [WHERE clause];

还原:  

  LOAD DATA INFILE ‘/path/to/somefile.txt‘ INTO TABLE tb_name;

几乎热备:LVM快照备份

  snapshot:

  前提:   

    1、数据文件要在逻辑卷上;   

    2、此逻辑卷所在卷组必须有足够空间使用快照卷;   

    3、数据文件和事务日志要在同一个逻辑卷上;

  步骤:
    1、打开会话,施加读锁,锁定所有表;
      mysql> FLUSH TABLES WITH READ LOCK;
      mysql> FLUSH LOGS;
    2、通过另一个终端,保存二进制日志文件及相关位置信息;
      $ mysql -uroot -p -e ‘SHOW MASTER STATUS\G‘ > /path/to/master.info
    3、创建快照卷
      # lvcreate -L # -s -p r -n LV_NAME /path/to/source_lv
    4、释放锁
      mysql> UNLOCK TABLES;
    5、挂载快照卷,备份
      mount
      cp
    6、删除快照卷;
    7、增量备份二进制日志;

马哥学习笔记十九——MySQL进阶之备份和还原,布布扣,bubuko.com

马哥学习笔记十九——MySQL进阶之备份和还原

上一篇:MSSQL日期格式化


下一篇:四个很好用的Sql Server 日期函数:DateDiff、DatePart、DateAdd、DateName