Oracle 管道大数据同步再现 OGG(oracle 中ogg)
Oracle 管道大数据同步:再现 OGG
Oracle GoldenGate(OGG)是一款强大高效的数据同步工具。但是OOG需要购买授权、安装部署较为复杂,并且还需要专业的知识和技术支持。此外,OGG的运维压力也相对较大,常常需要专门课程培训。
本篇文章通过Oracle管道实现大数据同步,较好地再现了OGG的功能,同时还免去了很多部署上的复杂和成本方面的负担。
Oracle管道可以简单地理解为数据库中的一段内存空间,其可以作为一个缓冲区,用来缓存生产环境和消费环境之间的数据。
大数据同步可以基于管道实现,达到以下几个目标:
1、降低与提升
2、解耦生产和消费环境
3、保证生产环境高稳定性
4、保证消费环境灵活性
大数据同步可以分为三个步骤:
生产环境:将需要同步的数据操作放入管道进行缓存
传输链路:通过网络链路将数据从生产环境传输到消费环境
消费环境:从管道的缓存中读取数据,进行消费.
1、生产环境
示例中的生产环境为Oracle数据库中的mydb库。先创建管道:
SQL> CREATE OR REPLACE PROCEDURE create_pipe AS
2 l_rc NUMBER;3 BEGIN
4 l_rc := DBMS_PIPE.create_pipe(name => 'my_pipe',5 queue_size => 10000,
6 timeout => 0);7 END;
8 /
成功创建管道后即可使用DBMS_PIPE工具等数据插入工具将需要同步的数据插入到管道中。
2、传输链路
采用DBMS_SCHEDULER提供的JOB机制来实现消费环境的自动调度和事件触发。创建一个JOB:
SQL> BEGIN
2 DBMS_SCHEDULER.CREATE_JOB(job_name => 'my_job',3 job_type => 'PLSQL_BLOCK',
4 job_action => 'BEGIN my_pipeline_process.my_process_package.process_messages(); END;',5 start_date => sysdate + interval '10' second,
6 auto_drop => false,7 enabled => true);
8 END;9 /
其中,’my_pipeline_process.my_process_package.process_messages()’表示我们在消费环境中运行的处理程序。在该程序中,我们可以连接到mydb数据库,从缓存中读取数据。
3、消费环境
在消费环境中,我们只需要运行上文的my_pipeline_process.my_process_package.process_messages()程序即可从my_pipe管道的缓存中读取数据并进行处理。
以上就是 Oracle 管道大数据同步的全流程。管道可以缓存大量数据,以便随时进行数据消费,保证生产环境稳定性,同时消费环境可以基于该管道灵活进行消费,大幅提升了数据同步的效率和效果。
相比于OGG,Oracle管道大数据同步方案,在可扩展性方便上更具优势。同时,其操作也更简便。对于需要实现高效、低成本的大数据同步而言,Oracle管道方案是一种非常好的选择。