免费注册 查看新帖 |

Chinaunix

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

话题讨论:MySQL复制技术与其他数据库相比有什么优势(获奖名单已公布-2014-2-17) [复制链接]

论坛徽章:
99
CU大牛徽章
日期:2013-03-13 15:03:57双子座
日期:2013-08-16 09:27:37天秤座
日期:2013-08-23 09:09:32申猴
日期:2013-08-29 18:42:54子鼠
日期:2013-08-30 17:02:05午马
日期:2013-09-04 11:26:09巨蟹座
日期:2013-09-10 09:40:34技术图书徽章
日期:2013-09-12 09:20:18申猴
日期:2013-09-12 11:06:26巨蟹座
日期:2013-09-18 14:52:02子鼠
日期:2013-09-24 16:38:05亥猪
日期:2013-09-27 10:18:10
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-01-09 11:43 |只看该作者 |倒序浏览
获奖名单已公布,详情请看:http://bbs.chinaunix.net/thread-4125290-1-1.html

随着Web3.0时代的到来,中小网站飞速发展,LAMP这一套开源的建站模式也越来越流行。MySQL作为这一模式中数据管理的核心,对整个网站的性能起着决定性的作用。随着用户数量的增长,网站流量的增加也带来了高并发性的需求,同时也对数据的安全性提出了要求。 复制技术作为分布式数据库中提高数据库集群并发性和数据安全性的关键技术,被应用于各种数据库管理系统中。MySQL实现了一套自有的基于主从构架的异步复制方式。

话题讨论:
1、说说您对MySQL5.5和MySQL5.6的认识?
2、MySQL复制技术与其他数据库相比有什么优势 ?            
3、通过试读样章您对本书最大的期待是什么?

活动奖励:
我们会在讨论结束后,我们随机抽取5名网友赠送《Effective MySQL之深入解析复制技术》这本书作为奖励(同时回答两个问题会加大中奖机会哦)。

活动时间:2014-1-09——2014-1-22

图书信息

书名:Effective MySQL之深入解析复制技术
作者:(美) 布拉德福(Bradford,R.),(美) 施耐德(Schneider,C.) 著
出版社:清华大学出版社
样章试读下载:http://wenku.it168.com/d_001348894.shtml


内容简介:
《Effective MySQL之深入解析复制技术》由Oracle ACE Director、资深MySQL专家Ronald Bradford和Chris Schneider共同撰写,介绍了在使用MySQL数据复制技术构建具有可扩展性解决方案的过程中需要了解和实现的技术。本书通过详细示例向读者展示了MySQL原生数据复制技术的特性、选项以及不足之处,并对各种新增的数据复制特性以及其他第三方产品实现方案做出了中肯的评估。因此,通过认真学习本书,能够确保读者的MySQL环境满足各种业务环境的高可用性需求。

作者简介:
Ronald Bradford,Oracle ACE Director,是一位在关系数据库领域拥有20多年丰富经验的专家。Ronald的专业方向是数据库体系结构、性能优化以及大型企业管理系统。
在过去13年中,他重点研究MySQL这一风靡全球的开源数据库,期间曾担任Oracle公司和MySQL有限公司(2006年~2008年)的高级顾问。
Ronald是Planet MySQL (2010)上公认的最佳个人MySQL博客的博主,也曾荣获MySQL Community Member of the Year (2009)等国际荣誉。Ronald还撰写了《Effective MySQL之SQL语句最优化》和《Effective MySQL之备份与恢复》等书籍。

论坛徽章:
459
亥猪
日期:2014-05-31 12:08:03亥猪
日期:2014-05-31 12:07:38亥猪
日期:2014-05-31 12:08:04亥猪
日期:2014-05-31 12:07:43亥猪
日期:2014-05-31 12:07:52亥猪
日期:2014-05-31 12:08:09亥猪
日期:2014-05-31 12:07:51亥猪
日期:2014-05-31 12:08:02亥猪
日期:2014-05-31 12:07:59亥猪
日期:2014-05-31 12:07:37亥猪
日期:2014-05-31 12:07:50亥猪
日期:2014-05-31 12:07:39
2 [报告]
发表于 2014-01-09 12:41 |只看该作者
本帖最后由 2009532140 于 2014-01-20 10:32 编辑

在mysql 5.5 推出了两年之后,新版本的5.6才正式进入技术人员们的视角。他对以往的5.5有所改进,也有新技术的添加

【1】新功能
在线 DDL /更改数据架构支持动态应用程序和开发人员灵活性
复制全局事务标识可支持自我修复式集群
复制无崩溃从机可提高可用性
复制多线程从机可提高性能
对 InnoDB 进行 NoSQL 访问,可快速完成键值操作以及快速提取数据来完成大数据部署

【2】改进点
在 Linux 上的性能提升多达 230%
在当今、多核、多 CPU 硬件上具备更高的扩展力
InnoDB 性能改进,可更加高效地处理事务和只读负载
更快速地执行查询,增强的诊断功能
Performance Schema 可监视各个用户/应用程序的资源占用情况
通过基于策略的密码管理和实施来确保安全性

参考文献:
[1]:http://down.51cto.com/data/680324
[2]:官方文档

=====================================================================
要说优势,我觉得只能算上勉勉强强的优势吧..主要是由于它目前的开源以及轻便来说的。
功能性来说个人觉得比不上oracle 的复制技术..
要说优势我觉得有以下两点吧:
[1]: 异步复制,不过损失的是同步的实时性,带来的是性能上的提高
[2]:负载均衡,插入更新与查询之类的操作分开。缓解单个数据库的压力


=====================================================================
读过英文原版的图书,我给这本书有如下的路线总结:
提出问题=>分析问题=>原理讲解=>解决问题=>深度发掘的路线展开的本书
至少使得读者知道干的每一步是在做什么,为什么这么做以及其中的优缺点。
不难看出,作者既是技术大师也是写作的高手..

最大的期待就是弄本中文版的哈...{:3_200:}

论坛徽章:
1
处女座
日期:2014-01-21 13:20:51
3 [报告]
发表于 2014-01-09 13:17 |只看该作者
看書也是折磨

论坛徽章:
40
水瓶座
日期:2013-08-15 11:26:422015年辞旧岁徽章
日期:2015-03-03 16:54:152015年亚洲杯之乌兹别克斯坦
日期:2015-03-27 14:01:172015年亚洲杯之约旦
日期:2015-03-31 15:06:442015亚冠之首尔
日期:2015-06-16 23:24:37IT运维版块每日发帖之星
日期:2015-07-01 22:20:002015亚冠之德黑兰石油
日期:2015-07-08 09:32:07IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-08-29 06:20:00IT运维版块每日发帖之星
日期:2015-10-10 06:20:00IT运维版块每日发帖之星
日期:2015-10-11 06:20:00IT运维版块每日发帖之星
日期:2015-11-10 06:20:00
4 [报告]
发表于 2014-01-09 19:17 |只看该作者
本帖最后由 forgaoqiang 于 2014-01-10 02:34 编辑

强烈支持这个活动 是时候研究下MySQL的复制技术了~


1、说说您对MySQL5.5和MySQL5.6的认识?

    从官方资料来看,5.6版本对5.5版本进行了比较大的修改,最显著的性能提升就是子查询的性能提升,复制技术也有了对面向行的复制,节约了对于BLOB字段的处理开销。比较有意思的是5.6引入了对于NoSQL的接口,有了兼容Memcached的API。

    从网友测试的数据来看,5.6版本的数据库的性能有了大幅度的 提升,在采用 Sysbench工具进行负载测试的时候,从结果可以看出:无论是只读测试,还是事务测试,5.6都明显优于5.5,到了写测试也是有很明显的差距。 这是性能测试的文章


2、MySQL复制技术与其他数据库相比有什么优势 ?

    复制技术存在于几乎所有的数据库系统当中,只对MS SQL Server和MySQL有略微了解,根据我的印象。SQL Server主要通过快照、事务、合并复制三种类型,相对来说,MySQL的二进制文件数据量更小一些,这应该是比较明显的优势,节约了主从服务器之间的流量。

            
3、通过试读样章您对本书最大的期待是什么?

    如果应用对数据库的可用性及可扩展性很高的话,就需要使用MySQL的数据复制技术,复制不仅能够进行备份容灾,更能分担读数据负载,增强可用性。试读的介绍部分讲到了一些实用的工具,比如 OpenArk、Percona Toolkit、MySQL Workbench Utilities 等等,书中采用了虚拟的环境(VirtualBox),也就是读着只需要一台电脑即可完成整个实验,应该是比较方便的。

    目录结束就到了第25页,第一章节就开始提到《DBA五分钟速成》,作为数据库管理员,使用多种工具解决问题变得非常重要,首先是系统发送过来的警报通知。这时候我们可以使用 show slave status 来查看从服务器的状态,比较重要的两个状态参数是:
  1. Slave_SQL_Running = No   数据库系统直接不运行
  2. Seconds_Behind_Master=NULL 数据复制滞后时间不清楚
复制代码
遇到问题后就要解决问题,作者分析了多种情况,显示找到执行命令的问题。先是治本不治标的略过错误,然后是去深入分析查找根本的原因,提出终极的解决方案。

    章节二中提到诊断常见的数据复制问题,显示出示了数据复制的架构,解释了复制过程和二进制日志文件的内容。因为二进制文件是复制的核心部分,又继续介绍了二进制文件的管理问题及应该留意的配置参数。最后提到了导致数据不一致可能遇到的原因及改善方法等。

    试读部分可以看出,本书主要是通过提出问题->分析问题原因->给出解决方案,这种实例的形式进行介绍,有助于读者思维跟随,促进思考,是非常好的指引方式。在故事一样的场景下学习了MySQL复制的技术和遇到的问题。

    作为兼职的DBA,期待就是希望从中了解复制的细节问题,提升自己对MySQL数据库的认识。提前认识一些可能遇到的状况,在实际运维工作中遇到问题时少走弯路。



论坛徽章:
0
5 [报告]
发表于 2014-01-10 10:25 |只看该作者
本帖最后由 xike2002 于 2014-01-10 17:01 编辑

好话题,支持一下!

1、说说您对MySQL5.5和MySQL5.6的认识?
答:自从5.6版本发布以后,保守的用户还没有选择升级到5.6,而一些对新特性感兴趣的用户已经果断的升级到了5.6.
下面主要谈一谈升级过程中的一些问题。
Mysql升级主要涉及升级包下载、数据权限备份、配置文件备份、数据导入及配置文件恢复等步骤

一、下载mysql升级包
从mysql官网下载mysql-5.6.12-linux-glibc2.5-x86_64.tar.gz
二、备份数据权限
三、配置文件备份
cp /etc/my.cnf /etc/my.cnf.bak
四、解压安装升级包
五、数据权限导入
六、重启mysql服务
七、配置文件恢复
根据备份的/etc/my.cnf.bak配置文件,如果自己在安装前更改了默认配置或增加了什么特殊属性就可以把修改增加的属性添加到新配置文件/etc/my.cnf,如果没做任何改动则可忽略此步骤。
八、验证mysql访问
九、完成

2、MySQL复制技术与其他数据库相比有什么优势 ?        
答:     一:MySQL复制:
mysql复制简介:
将master服务器中主数据库的ddl和dml操作通过二进制日志传到slaves服务器上,然后在master服务器上将这些日志文件重新执行,从而使得slave服务器和master服务器上的数据信息保持同步。
Mysql复制的原理:
将数据分布到多个系统上去,是通过将Mysql的某一台master主机的数据复制到其它(slave)主机上,并重新执行一遍来实现的;
复制过程中一个服务器充当master服务器,而一台或多台其它服务器充当slave服务器。master服务器将更新写入二进制日志文件,并维护文件的一个索引以跟踪日志循环。
这些日志可以记录发送到slave服务器的更新。当一个slaves服务器连接master服务器时,它通知master服务器从服务器在日志中读取的最后一次成功更新的位置。slave服务器接收从那时起发生的任何更新,然后封锁并等待master服务器通知新的更新。
mysql复制的优点:
在slave服务器上执行查询操作,降低master服务器的访问压力
当master服务器上出现了问题可以切换到slave服务器上,不会造成访问中断等问题
在slave服务器上进行备份,以避免备份期间影响master服务器的服务使用及日常访问
Mysql自身的复制功能:是构建大型、高性能应用程序的基础。
mysql支持的复制类型:
基于语句的复制:在主服务器上执行的SQL语句,在从服务器上执行同样的语句。MySQL默认采用基于语句的复制,效率比较高。一旦发现没法精确复制时,会自动选着基于行的复制。
基于行的复制:把改变的内容复制过去,而不是把命令在从服务器上执行一遍. 从mysql5.0开始支持
混合类型的复制::默认采用基于语句的复制,一旦发现基于语句的无法精确的复制时,就会采用基于行的复制。
MySQL复制技术的特点:
数据分布 (Data distribution )
备份(Backups)
负载平衡(load balancing)
高可用性和容错性 High availability and failover
复制的工作过程:
master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events);
slave将master的binary log events拷贝到它的中继日志(relay log);
slave重做中继日志中的事件,将改变反映它自己的数据。
第一步:master记录二进制日志。在每个事务更新数据完成之前,master在二日志记录这些改变。MySQL将事务串行的写入二进制日志,即使事务中的语句都是交叉执行的。在事件写入二进制日志完成后,master通知存储引擎提交事务;
第二步:slave将master的binary log拷贝到自己的中继日志。首先,slave开始一个工作线程——I/O线程。I/O线程在master上打开一个普通的连接,然后开始binlog dump process。Binlog dump process从master的二进制日志中读取事件,如果已经跟上master,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志;
第三步:SQL slave thread(SQL从线程)处理该过程的最后一步。SQL线程从中继日志读取事件,并重放其中的事件而更新slave的数据,使其与master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。

3、通过试读样章您对本书最大的期待是什么?
答:能够本书能够在多源复制技术上进行相关的介绍。
因为MYSQL5.7的一大特点就是多源复制技术。
希望有机会拜读该书的完整版本。

论坛徽章:
18
卯兔
日期:2013-09-27 17:41:0615-16赛季CBA联赛之佛山
日期:2016-07-09 17:34:45操作系统版块每周发帖之星
日期:2015-12-02 15:01:04IT运维版块每日发帖之星
日期:2015-12-02 06:20:00IT运维版块每日发帖之星
日期:2015-10-07 06:20:00IT运维版块每日发帖之星
日期:2015-10-03 06:20:00IT运维版块每日发帖之星
日期:2015-10-01 06:20:00羊年新春福章
日期:2015-04-01 17:56:06拜羊年徽章
日期:2015-04-01 17:56:062015年迎新春徽章
日期:2015-03-04 09:49:452015年辞旧岁徽章
日期:2015-03-03 16:54:15天秤座
日期:2015-01-14 06:39:28
6 [报告]
发表于 2014-01-10 11:36 |只看该作者
路过,支持,楼盖的很快啊!

论坛徽章:
0
7 [报告]
发表于 2014-01-13 12:46 |只看该作者
回复 5# xike2002


    答非所问啊

论坛徽章:
22
CU大牛徽章
日期:2013-09-18 15:22:06白羊座
日期:2014-04-14 22:56:32午马
日期:2014-05-16 17:18:08巳蛇
日期:2014-05-30 20:53:19寅虎
日期:2014-06-03 10:53:34未羊
日期:2014-08-12 22:15:31神斗士
日期:2015-11-20 17:26:2515-16赛季CBA联赛之浙江
日期:2016-03-15 18:27:4215-16赛季CBA联赛之同曦
日期:2016-03-22 09:21:0115-16赛季CBA联赛之北控
日期:2017-03-26 21:47:12技术图书徽章
日期:2014-04-03 16:47:26摩羯座
日期:2014-03-25 23:51:36
8 [报告]
发表于 2014-01-13 13:37 |只看该作者
帮顶,工作中顶多用上更新表格这种程度,关于备份和恢复也有做过,但对于复制什么的没有玩过了。

论坛徽章:
208
巨蟹座
日期:2013-09-02 09:16:36卯兔
日期:2013-09-02 20:53:59酉鸡
日期:2013-09-05 21:21:45戌狗
日期:2013-10-15 20:51:17寅虎
日期:2013-10-18 21:13:16白羊座
日期:2013-10-23 21:15:19午马
日期:2013-10-25 21:22:48技术图书徽章
日期:2013-11-01 09:11:32双鱼座
日期:2013-11-01 20:29:44丑牛
日期:2013-11-01 20:40:00卯兔
日期:2013-11-11 09:21:32酉鸡
日期:2013-12-04 19:56:39
9 [报告]
发表于 2014-01-14 09:21 |只看该作者
用mysql就当普通的sql server,没做过特别的事情,复制也没用过

论坛徽章:
0
10 [报告]
发表于 2014-01-14 13:40 |只看该作者
本帖最后由 buptdream 于 2014-01-15 15:42 编辑

1、说说您对MySQL5.5和MySQL5.6的认识?
    MySQL5.6为mysql最新的一个版本,相对于mysql 5.5无论在服务层还是在innodb层面,都做了很大的改进,个人感觉在内核机制方面变化最大的一次,mysql 5.6的很多新特性和oracle的功能在逐步的靠近,可见oracle在以后会把更多成熟的技术融入到mysql中。感觉在5.6中变化最大的就是innodb引擎的改进,在MySQL 5.5中使用的是InnoDB作为默认的存储引擎,而MySQL 5.6则对InnoDB引擎进行了改造,提供全文索引能力,使InnoDB适合各种应用场景。
    1:相比mysql 5.5来说,很多参数默认值发生了变化,这些变化都是朝着提高性能而进行修改的。在mysql的官方文档里也列举了全部的参数变化,感兴趣的可以全面了解这些变化。举几个比较常用的参数变化:
   performance_schema 在 MySQL 5.6 中默认是开启的,但相关的很多参数相比 MySQL 5.5 却是降低了,例如 performance_schema 自动调整到 445 个表和 224 线程,比 MySQL 5.5 低。尽管默认 max_connections 只是 150 ,比 200 还小。
innodb_stats_on_metadata 在 MySQL 5.6 默认关闭,使得 information_schema 的查询速度快很多。
innodb_log_file_size – 默认值从 5MB 提升到 50MB,这是一个好的改变,虽然我觉得这个默认数值还可以再大些。对于写负载高的情况下,默认配置的 MySQL 5.6 性能更好。
back_log 改动比较小,从 50 改为 80。如果系统每秒处理的连接数很高,还需要继续提高这个配置的值。
open_files_limit 由原来的 1024 改为 5000
innodb_auto_extend_increment 由 8MB 改为 64MB,可帮助降低碎片。
max_connect_errors 从 10 改为 100,可降低潜在的连接堵塞,但还可以更高些。
sort_buffer_size 从 2M 将为 256K,这可避免小排序导致的资源浪费,但是对大的排序有负面的影响。
max_allowed_packet 从 1MB 改为 4MB 让 MySQL 可处理更大的查询。
join_buffer_size 从 128K 改为 256K。
table_open_cache 从 400 提高到 2000。
innodb_buffer_pool_instances 从 1 改为 8,用于优化更高并发的负载。

2:mysql 5.6在innodb的增强
   InnoDB现在可以限制大量表打开的时候内存占用过多的问题
   InnoDB性能加强。如分拆kernel mutex;flush操作从主线程分离;多个perge线程;大内存优化等
   InnoDB死锁信息可以记录到 error 日志,方便分析
   支持全文索引
   支持online DDL
   独立表空间的.ibd文件可以在建表时指定目录
   导入和导出表空间:copy文件的方式比mysqldump快好多
   支持read-only事务
   innodb内部性能增强:包括将flushing操作独立出主线程,减少核心互斥锁,可设置多个清除线程,减少大内存系统的资源争夺。
   INFORMATION_SCHEMA新增相关字典表若干
3:分区的增强
   1.最大分区个数增值8192,包括分区和子分区。
   2.支持分区表的分区(或子分区)与非分区表交换:ALTER TABLE … EXCHANGE PARTITION
   3.查询支持显式的分区语句:如SELECT * FROM t PARTITION (p0, p1) WHERE c < 5
4:复制方面
    MySQL5.6支持延时复制,可以让slave跟master之间控制一个时间间隔,方便特殊情况下的数据恢复。
    MySQL行级复制功能加强,可以降低磁盘、内存、网络等资源开销(只记录能确定行记录的字段即可)
    Binlog实现 crash-safe
    复制事件采用crc32校验,增强master/slave 复制数据一致性
    新增log_bin_basename
    基于schema级别的多线程复制。
5:优化器方面的变化
   子查询优化:包括物化和半连接优化等特性。和oracle的优化方式来时相似。
   explain语句支持insert、delete、update、replace语句,并且支持json格式。
   limit优化
总之,mysql 5.6是一个革命性的的版本,需要了解,可以参考详细的官方文档,未来mysql里面可以看到更多oracle的特性。

2、MySQL复制技术与其他数据库相比有什么优势 ?
    平时主要接触oracle的数据库,下面谈谈与oracle相比,mysql复制的一些优势:
    mysql基于语句的复制,类似于oracle的逻辑dataguard,mysql基于行的复制,类似于oracle的物理dataguard。就oracle来说,一个主库最多可以带9个备库,但mysql却不受限制,只要带宽和读写能力不受影响,可以支持无穷大个从库个数。
    mysql复制服务器配置简单,扩展性方面更加灵活,非常方便的根据需求拉一个从库处理进行访问,但主库出问题时,丛库有可能丢失一定的数据。且需要手工切换丛库到主库。或者通过自己编写脚本或工具实现自动切换。oracle的dataguard配置稍微复杂,不如mysql的简便。
    mysql主从复制,从库可以进行访问,应用可以把一些只读查询发送到从库上进行查询,从而大大的缓解主库的压力。就这方面来说,oracle只有11g可以提供active dataguard的功能,11g之前的版本,备库是不可以进行只读访问的。
    mysql实现表级别的复制更加简单,oracle只能通过逻辑复制来实现,但逻辑复制要求比较苛刻,就目前来说逻辑复制的使用不是很普通,基本上都采用stream或者ogg来替代。而mysql却没有如此苛刻的要求,配置非常容易。
    mysql在为生产环境在线搭建主从复制过程中,需要停止主库的写操作,这方面可以引入oracle的特性,进行生产环境在线直接搭建。
    mysql的复制根据不通的需求分类更加灵活多变,半复制,双master等
            
        
3、通过试读样章您对本书最大的期待是什么?
     这本小册子虽然很薄,但是知识量很足,浏览过该书的英文版,作者没有啰嗦的语言,通过简短的语言介绍mysql复制的重点特性。试读章节里总共包含两章内容:
     第一章为DBA 五分钟速成,作者用非常简短的内容介绍了当复制出现错误时,如何去排查以及解决问题,主要是方法论的内容,这几个方面在日常工作中非常常用,可以提供解决问题的能力。
     第二章作者列举了mysql数据库复制过程中容易出现的问题以及解决办法,开头解决了binlog的原理,mysql的复制功能主要是基于binlog,掌握原理才能更好的去排查问题。当新问题发生时,对数据复制有充分的了解才能更快的找到问题的根源。
     该书简单但很时效,快速的掌握关于数据复制的重要内容。期待能把这个系统掌握完成,好好的阅读此书。希望mysql的该系列的第三本书快速上市。下一步不知道是否是cluster的内容。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP