SharePlex是Quest公司开发的用于专门用于Oracle数据库的数据同步软件,可以运行在异构的操作系统平台上和Oracle数据库的不同版本之间。
SharePlex的数据复制原理与GoldenGate类似,需要分别在源数据库服务器和目标数据库服务器上安装SharePlex软件。
SharePlex for Oracle中由捕获进程来收集发生变化的数据,此进程分析redo log,将复制内容相关的数据改变捕获出来。
SharePlex结合其自己的网络协议和TCP/IP协议来完成源和目标系统之间的数据传输。其相关的进程确保数据的正确接收和网络数据包的正确顺序,从而提供网络传输冗余,确保数据的完整。整个数据传输过程无需其它的中间件。
支持通过SSH通道实现数据加密、压缩。
应用进程将传送到目标系统中的信息转化为SQL语句,然后采用标准的SQL*Plus方式将SQL语句发送给Oracle执行。
SharePlex能够实现精确复制的一个重要原因就是其能保证从源数据库到目标数据库的Oracle读一致性,不但按顺序复制事务,而且也复制上下文信息。由于SharePlex将源数据库中发生变化的全部事务信息都复制到目标数据库中,因此SharePlex复制方案用于灾难恢复系统中是足够可靠的。
SharePlex的队列有capture, export, post,进程有capture, read, export, import和post,这些队列和进程在复制过程中的作用如下。
具体处理过程是:
- Capture进程分析源数据库的日志文件,抓取所需的数据变更操作,将其存储在SharePlex自己专有的queue文件中,放入到Capture Queue;
- 然后由Read进程对queue文件进行封装处理,将其放入到Export Queue中,由Export进程将queue文件通过网络发送到目标服务器上;
- 目标服务器上的Import进程接收这些queue文件,将其放入到Post Queue中;
- 最后由Post进程将这些queue文件中的变更应用到目标数据库中。

主要技术指标

SharePlex数据同步技术的优势有:
-
支持异构的操作系统平台,便于数据库管理系统的版本升级及操作系统平台切换;
-
跟DataGuard传输整个日志文件相比,SharePlex传输的数据量大大降低,这点跟GoldenGate差不多;
-
目标数据库处于打开状态,且支持一对多、多对一,双向复制等配置,也可以选择部分对象进行复制,可满足数据分发和数据集成的需要,减轻源数据库压力,这方面也类似于GoldenGate;
-
所占系统资源较少,通常在10%以下
缺点如下:
-
需要支付额外的Liscense费用,通常是一笔不小的支出;
-
需要在数据库软件外安装一套专门数据同步软件,增加了管理维护的复杂程度;
-
由于数据复制操作独立于数据库管理系统,因此不能确保数据零丢失;
-
由于是第三方的软件产品,在对某些特定的数据对象、数据类型和Oracle某些新特性如ASM的支持方面不如数据库厂商自己的解决方案;另外,还有一种可能就是如果Oracle对自己的日志格式做些改变或加密,SharePlex将无能为力;




