SharePlex数据库复制解决方案
1、SharePlex数据复制技术
如何在不宕机的情况下,对 Oracle 数据库内的海量数据进行转移和管理,这是一种长期存在的用户需求。Shareplex 可以让您的 Oracle 数据库分身有术,满足您多样化,高性能的应用需求。
Oracle 复制容灾产品 SharePlex for Oracle 是一种准实时、低带宽、跨平台、跨 Oracle 版本的 Oracle 复制解决方案,采用业界内独特的技术、领先的产品结构确保企业实现其高可用性和高性能的管理目标。Shareplex 支持面向高可用性、灾难恢复、报表剥离、数据分发/共享和应用程序集成等不同的应用场景,不会对 Oracle 生产系统的性能造成影响。
1.1SharePlex技术原理
1.1.1基本结构
下图所示为SharePlex for Oracle的基本结构,其中涉及较多的技术细节。
![](https://img-my.csdn.net/uploads/201205/07/1336366043_6833.jpg)
1.1.2数据捕获
SharePlex for Oracle中由捕获进程来收集发生变化的数据,此进程的独特之处在于它几乎不对生产数据库带来任何开销。
此捕获过程中完成的操作为:
捕获进程从Oracle 日志文件中读取信息,因此复制过程不会给生产数据库实例带来性能问题
只有发生改变的数据被传输,而不是日志文件中的全部信息,因此SharePlex的网络负载非常小
尽管需要在Oracle数据库中安装少量的对象用来存储有关复制的一些基本信息,但源数据库不需要参与到数据捕获和传输过程中
SharePlex的捕获进程不但可以读取在线的日志文件,而且可以读取归档日志,甚至当归档日志文件被移动到其它设备上时,SharePlex会发出提示信息。正是这种能力极大地增强了系统的冗余功能。例如,如果捕获进程由于某种原因被停止,当它重新启动后数据同步不会受到影响
捕获进程驻留在源系统上,自动读取Oracle的在线日志文件。这种读操作是从操作系统的角度来完成的,而不是通过数据库。通过将日志文件作为获取变化信息的源泉,Quest可以完成数据的复制而不会给生产系统带来额外的开销。由于Oracle使用日志文件进行系统恢复,因此日志文件信息足够,其数据格式也足够稳定。Quest SharePlex 目前已支持从Oracle7.3.4 至 Oracle 10g 之间的所有版本。
捕获进程连续监控日志文件用以捕捉变化信息。当日志文件中出现一条新记录时,SharePlex判断其是否属于被复制对象,如果是,则SharePlex为该条记录加入用于决定此记录将被发向那个主机的地址信息并将包含地址信息的记录存放到自己的队列中,存储队列存在于数据库之外。发生改变的数据被立即处理并被发送到目标系统中而不等待提交或回滚动作的完成,因为等待提交或回滚完成将带来延迟。当提交或回滚信息被写入日志文件时,它们也将被发送到目标系统中,从而在目标系统中完成相对应的操作。
1.1.3数据传输
SharePlex结合其自己的网络协议和TCP/IP协议来完成源和目标系统之间的数据传输。其相关的进程确保数据的正确接收和网络数据包的正确顺序,从而提供网络传输冗余,确保数据的完整。整个数据传输过程无需其它的中间件。