【IT168 专稿】一个云数据库专家需要具备哪些素质?以下是美国专家Sean Hull的分享。Sean Hull是MySQL和Oracle数据库、Web性能和可扩展性、EC2、Linux和互联网架构领域的著名作家、讲师和顾问,他是《Oracle & Open Source》一书的作者,并多次在会议和论坛担任演讲嘉宾。以下是文章内容:
尽管在一些公司,DBA的角色是完全独立的,还有其他Linux和运营团队管理这些服务器。但是我们同样会看到一些Oracle或MySQL DBA的面试题中会涉及以下内容,下面来看看DBA需要掌握哪些技术知识。
1.什么是RAID?哪种类型最好?
RAID是在一台服务器上共享整个磁盘阵列的方法。像Oracle和MySQL这样的数据库在磁盘上进行大量读写操作。这时,如果有更多的磁盘共享读写工作,就像餐厅里有了更多的服务员,能够提供更快的服务。
RAID(Redundant Array of Independent Disks,独立磁盘冗余数组,简称磁盘阵列)是把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使性能达到甚至超过一个价格昂贵、容量巨大的硬盘。根据选择的版本不同,RAID比单颗硬盘有以下一个或多个方面的好处:增强数据集成度,增强容错功能,增加处理量或容量。简单来说,RAID把多个硬盘组合成为一个逻辑扇区,因此,操作系统只会把它当作一个硬盘。RAID常被用在服务器电脑上,并且常使用完全相同的硬盘作为组合。
尽管有很多人还坚持使用RAID 5,但它实际上并不是个好选择,因为它在执行奇偶校验的过程中会发生“写损失”。大多数数据库都需要大量的写入,即使用户的交易没有执行INSERT和UPDATE操作。更重要的是,如果一个磁盘发生故障,RAID 5表面上仍在正常运行,但是运行速度很慢以至于其实际上是不可用的,直到经过漫长的修复过程后才能恢复正常。
那么哪种类型的RAID是最好的呢?答案就是RAID 10。RAID 10拥有更快的I/O和故障恢复能力,它为每一个卷做了镜像,并将这些镜像集进行数据分割。
2.索引数量如何权衡?
在所有的关系数据库中,需要在数据中建立索引。索引就像黄页(电话号码簿)中的姓名和地址一样,通过姓氏就能查到美国总统Barack Obama的电话号码,通过街道地址就能查到白宫的电话号码。因此拥有更多的索引,意味着有更多的方式搜索和获取到需要的信息。
但是从另一个角度来看,每当将新的数据或记录添加到数据库中时,全部索引都需要更新一遍。如果索引数量过多,将会影响数据库的写入速度。
因此,DBA需要对索引的数量作出权衡:是选择较多索引带来的获取速度加快、写入速度减慢,还是选择较少索引带来的获取速度减慢、写入速度加快,这是一个值得思考的问题。
3.NoSQL是怎样实现速度飞跃的?
NoSQL作为大数据时代的关键技术之一,拥有大量的支持者,NoSQL数据库产品的种类也非常丰富。世界上没有免费的午餐:NoSQL相对于传统关系数据库淘汰了一个功能,即在不同的列之间JOIN数据。通过移除关系数据库的这个关键功能,NoSQL极大的简化了底层的实现。
另外,这些NoSQL数据库在“持久性(durability)”上偷工减料。什么是“持久性”呢?简单来讲就是将数据放到断电后数据不会丢失的设备中。想象你在教室里拿着笔记本或者是餐厅服务员在点餐,如果只听不写,速度肯定会很快。但是只记在脑子中,如果忘记了其中的某一部分,只能再次询问获得答案。这就是持久性的利弊,NoSQL并不总是将数据放入永久存储中的,这样做可能会提高速度,但会更容易出错,丢失数据对于DBA来说是不能掉以轻心的。
4.什么是Amazon RDS?什么时候会用到它?
Amazon RDS(Relational Database Service,关系数据库服务)是Amazon推出的在云端管理关系数据库的解决方案,能够让用户在云中轻松设置、操作和扩展关系数据库。它基于MySQL、Oracle和SQL Server数据库引擎,这意味着用户当前已用于现有数据库的代码、应用程序和工具也可以用在Amazon RDS上。这样一来,就可以简化管理工作和配置选项。
Amazon RDS是一种较为灵活的选择,适合那些没有专业DBA的公司,还能够简化服务器的管理工作。Amazon RDS无需前期投资,只需为使用的资源付费即可。
5.什么是可读副本和Multi-az?
Amazon RDS的副本功能是为了增强数据的有效性和数据库系统的高可用性而设置的,包括两种形式:可读副本和Multi-az。
其中,可读副本是数据副本的一种形式,可以缓解系统的负载压力。使用MySQL时,可读副本是相当基本的主从配置。尽管可读副本已经成为标准化技术,但它仍然是异步的,即每隔一段时间,可读副本会去同步最新数据,因此可读副本并不是实时的。
Multi-az(多地区部署)是一项专利技术,Amazon并没有公开其技术细节。Multi-az可以运行在DRBD(Distributed Replicated Block Device)等分布式文件系统中,底层的磁盘I/O可以通过互联网同步到其他可用区域。与可读副本不同的是,使用Multi-az技术的副本是完全同步的,没有数据一致性的问题。这个副本只能是在主节点挂掉时,升级为主副本。在升级主副本之前,客户端是不能对它直接进行读写操作的。
6.云数据库的主要瓶颈是什么?
即使将整个数据集都放在内存中,磁盘I/O仍然是关系数据库的最大瓶颈。这是因为排序、连接和重排数据都会耗费大量内存,而且内存也存在持久性的问题。
云模式一般来说比物理服务器滞后,就是由于磁盘I/O的原因。因此大多数互联网公司并没有选择迁移至云模式,EBS Volume通常只能达到几个IOPs。