作者: 发布时间:2011-11-30
在数据库技术不断发展的今天,我们不可能只用一个数据库来承担所有的业务操作,因为这样会大大增加主业务库的压力,也会大大增加对资源的投入。从另外一个方面看,这也增加了数据丢失的危险,不能做到多个应用或者多个场所对数据的共享使用。为此,数据库分布式技术就被提了出来,业内不同的厂商都推出了各自的分布式技术软件或者组件。ORACLE为了实现客户的这种需求,在数据库上提供了多个组件,由较早的高级复制和data guard,到后来的stream,再到目前主推的golden gate,都能实现数据库的分布式应用。下面我们简单的介绍一下各个技术的特点。
高级复制的示例
图1 多主节点双向复制
高级复制主要的用途是在多个数据库之间复制表级数据进行共享,并对这些复制数据进行维护管理。利用高级复制,不但可以减少主库的业务压力,同时也可以降低网络负载。复制的范围可以是表一级的对象,也可以做全库复制,并且支持大部分数据类型,例如表、索引、视图、触发器、程序包、过程、函数等等,也可以支持用户自定义的对象类型。高级复制又分为多主复制和物化视图复制方式,根据不同应用需求可以选择其中的一种或者两种方式同时使用。
Stream也是进行分布式数据库的一种技术,它既拥有高级复制的优点,也有自身突出的地方。比起高级复制来说,Stream具有更灵活的复制模式、更少的开销、支持更广泛的数据库跨度。在网络流量上,stream能做到更少的开销,因为stream可以在主节点上对应用的变化进行抓取,把抓取的结果进行过滤,然后再发送到目标数据库,而不需要把整个归档日志一起发送,从而减少了网络负担。而基于不同的实际环境,又可以配置为down stream模式,在这一模式里面,主库只是简单的把归档日志发送到down stream节点,从而降低了主数据库的CPU开销。通过在主库和目标数据库上配置捕抓进程、转播进程、应用进程,可以把主库的数据变化应用到目标库上,达到数据的共享和分布式应用。数据捕抓的范围可以是单个表级的对象、也可以是用户的方案对象,可以是全库进行、也可以单独的复制规则。从数据库的跨度来说,不单止支持oracle数据库之间的复制,还支持非oracle数据库与oracle之间的复制,可以给用户更多的选择。
Data guard是oracle先于高级复制推出的数据库组件。从最初推出的功能来说,data guard并不是真正意义的分布式数据库组件,因为其是物理形式,不能实现数据的共享应用,只能做到数据的灾备功能。直到推出逻辑data guard后,才可以说data guard也是分布式数据库的一个可行方法,因为逻辑data guard可以让目标数据库也处于打开状态,提供业务访问并能实现数据的在线共享。通过对在线日志的发掘,把日志转换成数据流,发送到目标数据库,再从目标数据库重新应用这些SQL语句,达到数据共享的功能。根据不同的保护模式,data guard可以配置为最大性能、最高可用、最高安全模式,不同的模式适合不同的业务应用,而且不同模式之间可以在线转换,这样能使数据库的维护更方便,更能适应业务的发展需要。
Goldengate是oracle最新推出的一款数据集成、高可用、实时灾备的数据库工具软件。从上图可以看出,其基本理念和之前的stream复制类似,都是从主数据库上先对数据库的更改进行捕抓,并将得到的更改记录形成队列,将队列信息通过网络传输到目标数据库,然后再从目标数据库重新生成数据。可以对在线日志文件进行捕抓,也可以对归档日志文件进行捕抓。Goldengate有自己的进程对数据库的更改进行分析,是一款不依赖于数据库的复制软件,所以不会对数据库的性能和稳定造成影响。GoldenGate TDM提供了灵活的应用方案,基于其先进、灵活的技术架构可以根据用户需求组成各种拓扑结构。从复制的特点来说,goldengate可以实现单向复制、多向复制、广播复制、集中复制、多层复制等,给用户多种灵活可选的方案。
GoldenGate TDM 在灾备数据库应用复制数据库交易的顺序与在生产中心数据库上的顺序相同,并且按照相同的事务环境提交,确保在目标系统上数据的完整性和一致性,为实时查询和事务处理创造了条件。
GoldenGate TDM的抽取和复制进程使用检查点机制记录完成复制的位置。对于抽取进程,其检查点记录当前已经抽取日志的位置和写队列文件的位置;对于投递进程,其检查点记录当前读取队列文件的位置。检查点机制可以保证在系统、网络或GoldenGate TDM进程故障重启后数据无丢失。
GoldenGate TDM 用应答机制传输交易数据,只有在得到确认消息后才认为数据传输完成,否则将自动重新传输数据,从而保证了抽取出的所有数据都能发送到备份端。数据传输过程中支持128位加密和数据压缩功能;
另外一个突出的特点是,GoldenGate可以实现不同架构数据库的复制、不同厂商数据库的复制、不同操作系统平台的复制、不同数据库版本的复制,可以说是目前为止最全面,最安全、最可靠的数据库分布式应用的可选方案。
大唐电信为了解决客户的服务需求,实现业务连续性,特制定了相应的技术服务方案——分布式数据服务包。通过这个技术服务包,大唐电信给多个客户实现了数据分布式应用,有效的提高了数据的利用率,增加了客户业务的多元性,实现更高的效益,并且为数据提供了更多的保障。同时,在部署不同的环境当中,大唐电信也为分布式技术应用作出了大力的推广,在不断的实践中,培养出一支技术过硬的队伍。
在该服务包中,大唐电信将综合考虑客户的实际需求、IT的环境、限制条件等因数,根据不同的产品的特性,为客户推荐最恰当了技术。服务包的内容包括:
1. 咨询服务:跟客户直接沟通,了解客户的需求和目的;
2. 信息收集:在了解需求后,通过对客户IT环境的信息收集,评估实施的可行性;
3. 分布式方案的制定:由于分布式技术的不同特性,所需的设备、环境有所不同,同时根据实现的效果的不同,也需要制定不同的技术方案;
4. 方案的提交和实施:在方案制定以后,我们将按照实施要求部署到客户的环境当中;
5. 效果测试和验收:实施完毕之后,将协同客户一起对分布式环境进行验收,其中最关键一项及时测试,检验是否到达预期的目标。
6. 后期维护:在验收以后,日常的维护是必不可少的,特别是一些关键时期和关键业务的操作。
在某个税务系统中,客户总共提出了3项技术需求:
第一,需要对部分业务进行数据共享,网络范围是同区域内网,数据范围是个别的数据库表,共享方式为单向共享,提供查询功能,数据库跨度为9i。
对此需求,我们通过环境的调研,最终决定为客户推荐数据库高级复制技术—物化视图复制。由于客户的数据库版本为9I,而且需要共享的数据达到查询功能,因此,不适合使用dataguard。而stream技术在9I的版本中尚不成熟,同样不在我们推荐的范围。物化视图能有效的达到客户的需求,而且在9I的版本中技术稳定、成熟。
第二,需要对业务数据进行数据共享,同时,对关键对象的特定操作结果进行复制共享,网络范围是同区内网,数据范围是特定表格的特定操作类型(只复制insert操作),共享方式为单向共享,同时要求对主业务影响最小,数据库跨度为10G。
针对此项要求,我们为客户推荐stream分布式技术。一个是因为客户的复制范围需要特定的规则来实现,这是dataguard和高级复制所不能做到的,另外,要求对主业务影响最小,stream技术可以把挖掘任务交给目标数据库,因此能把CPU和IO对主业务的影响尽可能的降到最小;同时在10G的版本里,stream技术已经得到较好的开发和应用。
第三,对中心业务数据库进行灾备建设,在灾备中心和数据中心之间能实现来回切换,在平常时间段,能实现数据查询功能。网络范围是跨区内网,数据库跨度10g。
联系客服