免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 908 | 回复: 0
打印 上一主题 下一主题

MySQL 技术内幕:InnoDB存储引擎——读书笔记(九) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-20 09:46 |只看该作者 |倒序浏览
    MySQL并没有提供官方增量备份的方法。真正增量备份,只需要记录当前每个页最后的检查点的LSN,如果大于之前完全备份时的LSN,则备份该页,否则不用备份,而不是备份日志更改。(是xtrabackup工具增量备份的原理)

    InnoDB实现一致性的备份的方式:先开启一个事务,然后导出一组相关的表,最后提交。(前提是正确设计应用程序)mysqldump指定—single-transaction可获得InnoDB的一致性备份。

冷备

    备份MySQL.frm文件、共享表空间文件、独立表空间文件(*.ibd)、重做日志,以及my.cnf。(冷备并不总是可以轻易跨平台)

逻辑备份

mysqldump

SELECT … INTO OUTFILE

  1. SELECT * INTO OUTFILE '/tmp/tablename.csv' FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' FROM tablename WHERE condition;

  2. LOAD DATA LOW_PRIORITY LOCAL INFILE '/tmp/tablename.csv' INTO table tablename FIELDS TERMINATED BY ','; (需FILE权限)

 注:字段[TERMINATED BY ‘string’]表示每个列的分隔符,[[OPTIONALLY] ENCLOSED BY ‘char’]表示对于字符集的包含符,[ESCAPED BY ‘char’]表示转义符,[STARTING BY ‘string’]表示每行的开始符号,TERMINATED BY ‘string’表示每行的结束符号。

导入

    mysql > SOURCE /home/mysql/test_backup.sql;

    mysqlimport本质为LOAD DATA INFILE的命令接口,通过—user-thread参数并发导入不同的文件,并发导入多个文件。

热备

Ibbackup可同时备份MyISAMInnoDB,工作原理:

  • 记录备份开始时InnoDB存储引擎重做日志文件检查点的LSN
  • 拷贝共享表空间文件以及独立表空间文件
  • 记录拷贝完表空间文件后InnoDB重做日志文件检查点的LSN
  • 拷贝备份时产生的重做日志

Xtrabackup

    使用方法:xtrabackup –backup| --prepare [OPTIONS]

快照备份

    通过文件系统支持的快照功能对数据库进行备份。备份前提是所有的数据库文件在同一文件分区中,然后对该分区执行快照工作。

    LVM使用了写时复制(Copy-on-write)技术来创建快照。当创建一个快照时,仅拷贝原始卷里数据的元数据,并不会有数据的物理操作,因此创建过程很快。完成之后,原始卷上有写操作时,快照会跟踪原始卷块的改变,将要改变的数据在改变之前拷贝到快照预留的空间里。而对于快照的读取操作,若读取的数据块在创建快照后没有修改过,那么会将读操作直接定向到原始卷上,否则将读取保存在快照中的原始数据。因此,写时复制保证了读取快照时得到的数据与快照创建时的数据是一致的。

    MySQL复制共涉及三个线程:MASTERI/O线程,SLAVEI/O线程和SQL线程。

  • 快照+复制的备份架构
  • 数据分布
  • 读取的均衡负载:一般可以通过DNSRound-RobinLinuxLVS功能实现
  • 数据库备份:SLAVE不能代替备份
  • 高可用性和故障转移
注:如涉及版权及其他问题,请联系本人。谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP