在InnoDB中,buffer pool里面的dirty page一方面可以加快数据处理速度,同时也会造成数据的不一致(RAM vs DISK)。本文介绍了dirty page是如何产生,以及InnoDB如何利用redo log如何消除dirty page产生的数据不一致。
继续阅读全文
INNODB HOT BACKUP是一个商用的可执行文件。不过可以申请30天试用下。
相比MYSQL自身的MYSQLDUMP 导入导出工具来说有以下优点:
1.物理备份。
2.还原速度快。
而MYSQLDUMP在并发小的时候还可以用下。缺点如下:
1.逻辑备份。
2.还原速度慢。
而LVM则可以喝INNODB HOT BACKUP有一拼了,不过有个缺点,就是要建立逻辑卷,而且备份的时候必须得建立跟源数据所在卷一样的临时卷。其他的优点和INNODB HOT BACKUP一样。
不过INNODB HOT BACKUP的缺点也是有的,就是只备份INNODB的表空间以及生成新的REDO 日志。
对于表结构的备份可以直接用MYSQLDUMP来个快速逻辑备份, 或者可以用 INNODB 官方给的开源PERL 脚本来配合备份表结构。
继续阅读全文
我们开发自己的存储引擎页面缓存替换策略的过程中主要是参考了InnoDB与LRU-K算法。InnoDB缓存替换策略使用分代与LRU相结合的方式。分为old和young两个分代,系统维护old分代占总buffer大小的3/8左右。当一个页面第一次被访问时,是加入到old分代的lru头。并不是每次访问一个页面时就将这个页提到lru的头部,而是在这个页面在LRU中的位置调整后,是否有很多页面已经被替换出去,若有,则将这个页面移到LRU头。系统在每个页记录调整该页在lru中位置当前系统总共替换了多少个数据页,比较页中记录的这个计数与系统全局页替换计数,就可以发现上次调整这个页在lru链表中位置后,系统中又有多少个页被替换,若比较多,则再次调整该页在lru中的位置。由于第一次访问的页被加入到old分代中,因此一次表扫描不会导致young分代中的页被替换出去。
继续阅读全文