您现在的位置:首页
--> Hello DBA
这不是一篇关于Oracle和MySQL技术比较的文章,而是我对Oracle和MySQL甚至 NoSQL产品选择上的一些想法。我们过去和现在使用了大量的Oracle数据库,几乎我们所有的数据都存放在Oracle数据库里面,我们有高端的小型机,大型存储和全国最牛的DBA团队。这些都让我们引以为傲。随着业务不断增长,数据量和计算量越来越庞大,我们发现小型机都无法满足我们的需求,除了Oracle我们别无选择,我们被“绑架”了,被IBM,EMC,ORACLE绑架了...
• NoSQL漫谈
什么是NoSQL?wiki上的定义是“NoSQL is a movement promoting a loosely defined class of non-relational data stores that break with a long history of relational databases”。其实并不存在一个叫NoSQL的产品,它是一类non-relational data stores的集合。NoSQL的重点是non-relational,而传统的数据库是relational。我们都知道,传统关系型数据库的最大缺陷是扩展性,虽然各个数据库厂家都有cluster的解决方案,但是不管...
起NoSQL这个话题,仿佛不应该是DBA要关注的事,而是架构师应该关心的。作为一个DBA,在使用传统的关系型思想建模时,应该有必要了解NoSQL的建模方法。各种NoSQL数据库有很多,我最关注的还是BigTable类型,因为它是一个高可用可扩展的分布式计算平台,用来处理海量的结构化数据,而数据库同样也是处理结构化数据,所以除了没有SQL,在数据模型方面有相似之处。Cassandra是facebook开源出来的一个版本,可以认为是BigTable的一个开...
• 我这五年
觉,来杭州已经五年了。翻看了以前的blog,里面记录了我这五年的心路历程。 2004年12月27日,《新的征程》 “上帝关上了一扇门,总会打开一扇窗。所以,别担心。” 2005年3月19日,《杭州两个月》 “说说工作吧,刚来的时候,我感觉到很大的压力,毕竟我和周围的同事相比,水平还差很多。但是发现 BITI,RUDOLF,GRASSBELL,FENNG,WANGHAI,CHENYP,CHENJP,都对我非常的好。虽然我的水平很差,但是有什么 问题,都耐心的给我讲,...
一个数据库的同步系统,可以分为三部分:抓取变化,传输和加载。抓取数据库变化,最通常的做法是用trigger记录到表中,或者通过解析Oracle redo log中的信息来抓取。传输是将数据库变化记录到特定格式的文件中,通过网络推送到目标数据库上。加载则是指在目标数据库上应用这些变化(SQL),这里主要是讨论并行加载的实现思路。我们通过trigger或者redo log得到了数据库变化的事务流,这个流是按照事务的提交顺序排列的,最简单的...
Oracle的排序算法我们并不了解,以上内容很多也是基于Jonathan的实验的猜测,所以大家别较真。对于排序算法本身,我的描述并不一定正确,欢迎大家批评指正。
普通PC本地磁盘,没有共享存储,如何实现HA?Dataguard挺好,但是存在数据丢失的可能性,而且很难做到应用透明切换。我们用ASM,Heartbeat和iSCSI可以实现一个廉价的HA方案,如下图: 用iSCSI将本地磁盘输出到对方的机器上,利用ASM的failgroup做mirror,保证数据mirror在两台不同的机器上,就算一台机器完全损坏,数据可以做到百分之百不丢失。用Heartbeat作HA探测,如果发现主机故障,则强行关闭DB和ASM,并在备机启动ASM和DB。...
我在面试时经常会问一个问题,请列举出hash在数据库内部的应用,hash的原理虽然简单,但是它在数据库中可以说是无处不在。其中hash partition是hash在数据库中一个简单的应用,虽然它没有range partition那么常用,但是我们在做数据库水平拆分时,其实就是利用了hash partition的原理,利用hash函数对某个key进行运算,然后将其分布到不同的主机上,原理很简单。我们在设计时遇到了一个问题,当分区的数量需要变化时,基于hash的...
• 数据库HA方案
我们常用的HA方案有几种:一是用小型机和HA软件作双机热备,这种方案始终有一台设备处于空闲状态,设备利用率很低,而且必须用IBM,HP等厂商的硬件,代价昂贵。二是用Oracle的RAC来做HA,在Linux环境下,Oracle提供了全套的解决方案,是个不错的选择,不过最低也需要一套共享的存储设备。三是用Oracle DG,这种方案成本最低,但是无法做到故障时应用透明切换,我们也曾经尝试过用heartbeat配合DG failover来作一些尝试,但是在测试...
SSD固态硬盘,其最大的优势在于,单块SLC的SSD就可以达到数万IOPS,想象一下,一个大型存储的IO能力也许用几块SSD就可以做到。当 然SSD也有缺点,写磨损是一个大问题,虽然可以用“冗余容量”和“均匀写”来解决,但是还是很难消除电子产品比机械产品可靠性差的疑虑(相比较SSD, 普通磁盘可以归纳为机械产品)。另外一个问题是稳定性,对于数据库这种对稳定性要求很高的应用来说,SSD还有待于实际应用的检测。我们从两年前就开始...
sequential read(顺序读)一般发生在index range scan中,也被称为单块读,scattered read(离散读)一般发生在FTS中,也被称为多块读。对于sequential和scattered这两个词的含义,往往会造成一些困惑。因为从IO的角度去看,sequential read因为是单块读,在IO子系统上是离散读。而scattered read因为是多块读,在IO子系统上是顺序读。因为所谓的sequential和scattered是从Oracle的角度去看,而不是从IO子系统的角度去看。
磁盘一个IO的访问,大致分为三个步骤,第一是磁头到指定的磁道(寻道),第二是等待需要读取的数据随盘片旋转到磁头(延迟),第三是读取数据。相比较前两个时间,读取数据的时间可以忽略不计,所以一个IO的响应时间等于寻道时间+延迟时间决定,寻道时间由于是机械的动作,所以很难得到大幅度提高,但是可以通过提高磁盘转速来提高延迟时间。所以转速越高的盘,可以承载更多的IOPS。磁盘的IOPS由磁盘的转速决定,比如15000RPM的磁...
AU ASM的最小分配单元,默认是1M,可以在创建diskgroup时指定。在diskgroup中的每个盘都被切分为很多个AU,可以是1, 2, 4, 8, 16, 32, or 64MB。 File Extent 由一个或多个AU组成,一个file extent总是在一块磁盘上(不跨磁盘分配AU),这里的file extent和数据库中的extent是不同的,我们可以这样理解,这里的file extent是物理容器,而数据库中的extent是逻辑概念。下图是AU和file extent的示意图,可以看到刚开始时一个file ex...
为什么说RAC是一个好的数据仓库解决方案,但我不认为它是一个好的OLTP解决方案。因为在OLTP系统中,过多的cache fusion会大大降低系统的性能,所以Oracle也建议尽量在不同的节点部署不同的应用,尽量减少交叉访问。所以OLTP应用的RAC的节点数不会很多(一般为2-3个),因为节点越多,管理的成本就越高,目前的很多OLTP应用都是用RAC来提供HA方面的特性,OLTP应用还是采用分布式架构比较合适,指望RAC来得到线性扩展的能力不太可能...
说起Greenplum这个产品,最早是SUN来推他们的数据仓库产品DWA时接触到的,对这个由PgSQL堆叠出来的数据库产品还不是很了解,当时的焦点还在DWA本身的硬件上,当然不可否认,DWA还是有一些特点的。后来,我们发现普通的PC+SAS磁盘具备非常好的吞吐能力,完全不逊于某些昂贵的存储设备。这样我们就尝试用PC+Greenplum搭建了一个环境,效果完全超出了我们的预期,吞吐量完全超过了我们的大型存储。从那时开始,我们不再迷信那些昂贵...
[ 共35篇文章 ][ 第2页/共2页 ][ 1 ][ 2 ]
近3天十大热文
- [43] android 开发入门
- [42] Oracle MTS模式下 进程地址与会话信
- [40] IOS安全–浅谈关于IOS加固的几种方法
- [38] Go Reflect 性能
- [37] 读书笔记-壹百度:百度十年千倍的29条法则
- [37] 如何拿下简短的域名
- [36] 图书馆的世界纪录
- [35] 【社会化设计】自我(self)部分――欢迎区
- [31] 程序员技术练级攻略
- [29] 视觉调整-设计师 vs. 逻辑
赞助商广告