集成Percona XtraBackup:”真正“增量备份和归档日志备份
- 完全兼容MySQL
- 从Percona Server 5.5 版本中分离出当年不错的缓存互斥对象(buffer mutex)到Percona Server 5.6 版本中。这个将会减少未来对缓存池(buffer pool) 的争用。
- 完成优先级互斥对象("priority" mutexes)和InnoDB中的读写锁(rw-locks),查看https://blueprints.launchpad.net/percona-server/+spec/xtradb-priority-mutex。空闲列表的优先级会再次被获取mutexes的优先级填满。
- 完成进程计划("Thread scheduling").目前最大的可能是,改变InnoDB Cleaner thread的优先级(change priority for InnoDB Cleaner thread)。这个可以帮助稳固性能,因此我们可以发现高IO负载的时候,the Cleaner thread 是"饥饿"状态且没有获取足够的CPU时间去工作。
- 完成新的等待算法(waiting algorithms with exponential wait)用于访问共享资源
- 对于 页清洗进程(Page Cleaner thread)做额外的优化
- 跟踪数据页的变化做到增量备份(Changed page tracking AKA “Real” incremental backups).使用这一功能可以避免全表扫描,并且修改数据页的信息被有效保存在bitmap文件中。
- 归档日志(Archive Logs).另外一种执行增量备份的方法,是通过复制InnoDB事务日志并应用他们实行备份。
innodb_doublewrite=1
innodb_checksum_algorithm = crc32
innodb_sched_priority_cleaner=39 – to give highest priority to page cleaner thread(给予page cleaner thread 高优先级设置)
innodb_log_block_size=4096 – to use 4096 block size for InnoDB logs(对于InnoDB 日志使用4096 块设置)
innodb_adaptive_hash_index_partitions=65 – to enable partitioning of adaptive hash index, otherwise quite often this is a contention point.(开启自适应哈希索引分区设置,否则这里会是一个争论点)
一些Percona Server使用的默认变量.
innodb_foreground_preflush=exponential_backoff
innodb_empty_free_list_algorithm=backoff
innodb_cleaner_lsn_age_factor=high_checkpoint
做一个免责申明,我认为Percona Server 5.6和MySQL5.6性能区别,在大数据集,和大内存以及快速存储方面距离会越拉越大。
对于小数据集,在低端服务器产品上使用,Percona Server 5.6性能和MySQL 5.6性能是一致的。MySQL在优化InnoDB对于小数据集上做了卓越的贡献。
对于Percona Server 5.6来说,这点特性非常重要,它可以让你通过提高硬件的CPU速度,内存或者升级你的存储设备,来提升你的性能。
欢迎使用Percona 5.6,并期待你的回馈!
我们绝不会止步于此,我们期待更好的改进和功能提升。
- 更多的InnoDB性能提升,我们所做的只是冰山一角,未来还有更广阔的大门为我们敞开。
- 支持TokuDB引擎
- Per query variables. We will add a new scope (in additional to global and session) for MySQL variables: per query. You will be able to change some variable only for one specific query
- Percona XtraDB Cluster 5.6,将会在几个月之后,基于Percona Server 5.6这个版本退出