CN108614892A - 一种基于redolog的Oracle数据实时同步方法 - Google Patents

一种基于redolog的Oracle数据实时同步方法 Download PDF

Info

Publication number
CN108614892A
CN108614892A CN201810438194.1A CN201810438194A CN108614892A CN 108614892 A CN108614892 A CN 108614892A CN 201810438194 A CN201810438194 A CN 201810438194A CN 108614892 A CN108614892 A CN 108614892A
Authority
CN
China
Prior art keywords
redolog
data
oracle
groups
method described
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201810438194.1A
Other languages
English (en)
Inventor
刘福才
胡清
肖雪
王建华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Software Group Co Ltd
Original Assignee
Inspur Software Group Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Inspur Software Group Co Ltd filed Critical Inspur Software Group Co Ltd
Priority to CN201810438194.1A priority Critical patent/CN108614892A/zh
Publication of CN108614892A publication Critical patent/CN108614892A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于redolog的Oracle数据实时同步方法,该方法是基于Oracle的redolog文件,并轮询redolog,通过redolog分析轮训内数据库的操作,实现数据同步,并将数据在其他存储系统完成同步操作。本发明的一种基于redolog的Oracle数据实时同步方法和现有技术相比,该方法基于Oracle自身的redolog文件,对Oracle无侵入性,该方法技术简单易于实现,对数据质量无要求,具有广泛的适用场景,能够实现数据实时同步功能,支持数据增加、删除、修改等操作,软件开发人员可快速实现Oracle数据实时同步功能。

Description

一种基于redolog的Oracle数据实时同步方法
技术领域
本发明涉及Oracle数据库技术领域,具体地说是一种基于redolog的Oracle数据实时同步方法。
背景技术
传统的数据同步工具,如Sqoop、Kattle、DataX等,均采用JDBC方式采集数据。JDBC方式简单、易上手,但这些产品都对数据质量有一定要求,无法采集一些数据质量较差的Oracle数据,如存在大量重复数据、缺少主键和索引、所有列都存在空值等情况。
发明内容
本发明的技术任务是提供一种基于redolog的Oracle数据实时同步方法。
本发明的技术任务是按以下方式实现的:
一种基于redolog的Oracle数据实时同步方法,该方法是基于Oracle的redolog文件,并轮询redolog,通过redolog分析轮训内数据库的操作,实现数据同步,并将数据在其他存储系统完成同步操作。
该方法的操作步骤如下:
步骤1)首先查看Oracle数据库当前的日志组状况,查看日志组数目、大小及存储路径,以满足功能和性能需求为目的调整Oracle redolog日志大小及分组;
步骤2)基于redolog实时同步Oracle数据,定时轮询redolog,通过日志分析本次轮询内数据库增加、删除、修改操作,实现数据同步;
步骤3)根据轮询结果,将数据在其他存储系统完成同步操作。
所述的步骤1)中通过SQL所示查看所述的日志组数目、大小及存储路径,包括:
若默认redolog较小,创建新的redolog组,通过SQL创建n个新redolog组,每个redolog组大小为m。
所述的创建新的redolog组后,通过SQL查询所有redolog组状态。
通过所述的SQL切换redolog,将redolog组1,2,3状态变为INACTIVE。
所述的切换redolog完成后,重新查询redolog组状态,当redolog组1,2,3为INACTIVE时,将原有较小的redolog组1,2,3删除。
所述的步骤2)中定时轮询redolog进行n次,第一次轮询时间点为当前系统时间t_1,第n次轮询时系统时间为t_n。
所述的第n次轮询操作步骤如下:
1)查询本次轮询需要查询的redolog文件路径;
2)构造分析脚本,将所有分析的redolog加入到所述的分析脚本中;
3)开始日志挖掘;
4)查询数据变化。
所述的查询数据变化,包括:查询Oracle用户USER的表名称为tName的表数据变化,可查询INSERT、UPDATE和DELETE全部操作或只查询其中一部分操作。
所述的步骤3)中,若查询到数据库有一条DELETE操作及具体删除的数据内容,在同步的HBase数据库中删除对应的一条数据,采用流式框架自动完成数据同步作业。
本发明的一种基于redolog的Oracle数据实时同步方法和现有技术相比,该方法基于Oracle自身的redolog文件,对Oracle无侵入性,该方法技术简单易于实现,对数据质量无要求,具有广泛的适用场景,能够实现数据实时同步功能,支持数据增加、删除、修改等操作,软件开发人员可快速实现Oracle数据实时同步功能。
具体实施方式
实施例1:
一种基于redolog的Oracle数据实时同步方法,该方法是基于Oracle的redolog文件,并轮询redolog,通过redolog分析轮训内数据库的操作,实现数据同步,并将数据在其他存储系统完成同步操作。
该方法的操作步骤如下:
步骤1)首先查看Oracle数据库当前的日志组状况,通过SQL所示查看日志组数目、大小及存储路径,以满足功能和性能需求为目的调整Oracle redolog日志大小及分组;
SQL> select group#, bytes, status from v$log;
GROUP# BYTES STATUS
---------- ---------- ----------------
1 524288000 INACTIVE
2 524288000 CURRENT
3 524288000 INACTIVE
SQL> select group#, member from v$logfile;
GROUP# MEMBER
---------- ----------------------------------------
1 /opt/oracle/oradata/test/redo01.log
2 /opt/oracle/oradata/test/redo02.log
3 /opt/oracle/oradata/test/redo03.log
若默认redolog较小,创建新的redolog组,通过SQL创建n个新redolog组,每个redolog组大小为m;
SQL> alter database add logfile group 4
'/opt/oracle/oradata/test/redo04.log' size m;
SQL> alter database add logfile group 4
'/opt/oracle/oradata/test/redo04.log' size m;
SQL> alter database add logfile group n+3
'/opt/oracle/oradata/test/redo(n+3).log' size m;
所述的创建新的redolog组后,通过SQL查询所有redolog组状态。
SQL> select group#, status from v$log;
GROUP# STATUS
--------- ----------------
1 INACTIVE
2 CURRENT
3 INACTIVE
4 UNUSED
5 UNUSED
通过所述的SQL切换redolog,将redolog组1,2,3状态变为INACTIVE。
SQL> alter system switch logfile;
SQL> alter system checkpoint;
所述的切换redolog完成后,重新查询redolog组状态,当redolog组1,2,3为INACTIVE时,将原有较小的redolog组1,2,3删除。
SQL> select group#, status from v$log;
GROUP# STATUS
-------- ------
1 INACTIVE
2 INACTIVE
3 INACTIVE
4 INACTIVE
5 CURRENT
SQL> alter database drop logfile group 1;
Database altered.
SQL> alter database drop logfile group 2;
Database altered.
SQL> alter database drop logfile group 3;
Database altered.
步骤2)基于redolog实时同步Oracle数据,定时轮询redolog,通过日志分析本次轮询内数据库增加、删除、修改操作,实现数据同步;
所述的定时轮询redolog进行n次,第一次轮询时间点为当前系统时间t_1,第n次轮询时系统时间为t_n,所述的第n次轮询操作步骤如下:
1)查询本次轮询需要查询的redolog文件路径;
select member from v$logfile f inner join v$log l on f.GROUP# = l.GROUP#where COMPLETION_TIME >= to_date('startTime', t_n-1) and COMPLETION_TIME <to_date('startTime', t_n) or l.ARCHIVED <> 'YES';
2)构造分析脚本,将所有分析的redolog加入到所述的分析脚本中;
execute dbms_logmnr.add_logfile(logfilename=>'redolog文件路径', options=>dbms_logmnr.NEW);
3)开始日志挖掘;
execute DBMS_LOGMNR.START_LOGMNR(OPTIONS => DBMS_LOGMNR.DICT_FROM_ONLINE_CATALOG+DBMS_LOGMNR.COMMITTED_DATA_ONLY);
4)查询数据变化:查询Oracle用户USER的表名称为tName的表数据变化,可查询INSERT、UPDATE和DELETE全部操作或只查询其中一部分操作。
select /*+ Parallel( 4 ) */ count(*) from v$logmnr_contents whereseg_owner = 'USER' and table_name = 'tName' and (operation = 'INSERT' oroperation = 'UPDATE' or operation = 'DELETE')
and
COMMIT_TIMESTAMP >= to_date('startTime',t_n-1)and COMMIT_TIMESTAMP < to_date('currentTime',t_n)
步骤3)根据轮询结果,将数据在其他存储系统完成同步操作;若查询到数据库有一条DELETE操作及具体删除的数据内容,在同步的HBase数据库中删除对应的一条数据,采用流式框架自动完成数据同步作业。
通过上面具体实施方式,所述技术领域的技术人员可容易的实现本发明。但是应当理解,本发明并不限于上述的几种具体实施方式。在公开的实施方式的基础上,所述技术领域的技术人员可任意组合不同的技术特征,从而实现不同的技术方案。

Claims (10)

1.一种基于redolog的Oracle数据实时同步方法,其特征在于,该方法是基于Oracle的redolog文件,并轮询redolog,通过redolog分析轮训内数据库的操作,实现数据同步,并将数据在其他存储系统完成同步操作。
2.根据权利要求1所述的方法,其特征在于,该方法的操作步骤如下:
步骤1)首先查看Oracle数据库当前的日志组状况,查看日志组数目、大小及存储路径,以满足功能和性能需求为目的调整Oracle redolog日志大小及分组;
步骤2)基于redolog实时同步Oracle数据,定时轮询redolog,通过日志分析本次轮询内数据库增加、删除、修改操作,实现数据同步;
步骤3)根据轮询结果,将数据在其他存储系统完成同步操作。
3.根据权利要求2所述的方法,其特征在于,所述的步骤1)中通过SQL所示查看所述的日志组数目、大小及存储路径,包括:
若默认redolog较小,创建新的redolog组,通过SQL创建n个新redolog组,每个redolog组大小为m。
4.根据权利要求3所述的方法,其特征在于,所述的创建新的redolog组后,通过SQL查询所有redolog组状态。
5.根据权利要求4所述的方法,其特征在于,通过所述的SQL切换redolog,将redolog组1,2,3状态变为INACTIVE。
6.根据权利要求5所述的方法,其特征在于,所述的切换redolog完成后,重新查询redolog组状态,当redolog组1,2,3为INACTIVE时,将原有较小的redolog组1,2,3删除。
7.根据权利要求2所述的方法,其特征在于,所述的定时轮询redolog进行n次,第一次轮询时间点为当前系统时间t_1,第n次轮询时系统时间为t_n。
8.根据权利要求7所述的方法,其特征在于,所述的第n次轮询操作步骤如下:
1)查询本次轮询需要查询的redolog文件路径;
2)构造分析脚本,将所有分析的redolog加入到所述的分析脚本中;
3)开始日志挖掘;
4)查询数据变化。
9.根据权利要求8所述的方法,其特征在于,所述的查询数据变化,包括:查询Oracle用户USER的表名称为tName的表数据变化,可查询INSERT、UPDATE和DELETE全部操作或只查询其中一部分操作。
10.根据权利要求2所述的方法,其特征在于,所述的步骤3)中,若查询到数据库有一条DELETE操作及具体删除的数据内容,在同步的HBase数据库中删除对应的一条数据,采用流式框架自动完成数据同步作业。
CN201810438194.1A 2018-05-09 2018-05-09 一种基于redolog的Oracle数据实时同步方法 Pending CN108614892A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810438194.1A CN108614892A (zh) 2018-05-09 2018-05-09 一种基于redolog的Oracle数据实时同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810438194.1A CN108614892A (zh) 2018-05-09 2018-05-09 一种基于redolog的Oracle数据实时同步方法

Publications (1)

Publication Number Publication Date
CN108614892A true CN108614892A (zh) 2018-10-02

Family

ID=63662685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810438194.1A Pending CN108614892A (zh) 2018-05-09 2018-05-09 一种基于redolog的Oracle数据实时同步方法

Country Status (1)

Country Link
CN (1) CN108614892A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201390A1 (en) * 2007-02-15 2008-08-21 Yahoo! Inc. High-availability and data protection of oltp databases
CN103020242A (zh) * 2012-12-19 2013-04-03 中国人民解放军第二炮兵装备研究院第四研究所 基于oracle数据库的数据同步方法
CN104424275A (zh) * 2013-08-29 2015-03-18 中兴通讯股份有限公司 数据库系统以及数据同步方法
CN105320769A (zh) * 2015-10-28 2016-02-10 浪潮(北京)电子信息产业有限公司 一种Oracle数据库的数据同步方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201390A1 (en) * 2007-02-15 2008-08-21 Yahoo! Inc. High-availability and data protection of oltp databases
CN103020242A (zh) * 2012-12-19 2013-04-03 中国人民解放军第二炮兵装备研究院第四研究所 基于oracle数据库的数据同步方法
CN104424275A (zh) * 2013-08-29 2015-03-18 中兴通讯股份有限公司 数据库系统以及数据同步方法
CN105320769A (zh) * 2015-10-28 2016-02-10 浪潮(北京)电子信息产业有限公司 一种Oracle数据库的数据同步方法及系统

Similar Documents

Publication Publication Date Title
US11829360B2 (en) Database workload capture and replay
US9892151B2 (en) Database system and method
CN104301360B (zh) 一种日志数据记录的方法、日志服务器及系统
US7831574B2 (en) Apparatus and method for forming a homogenous transaction data store from heterogeneous sources
CN105930228B (zh) 数据备份方法及系统
US9542468B2 (en) Database management system and method for controlling synchronization between databases
Abad et al. A storage-centric analysis of mapreduce workloads: File popularity, temporal locality and arrival patterns
DE202019005483U1 (de) Datenreplikation und Datenausfallsicherung in Datenbanksystemen
DE202014010898U1 (de) Hierarchische Stückelung von Objekten in einem dezentralen Speichersystem
CN107038162A (zh) 基于数据库日志的实时数据查询方法和系统
US20150269213A1 (en) Compacting change logs using file content location identifiers
CN105005618A (zh) 一种异构数据库之间的数据同步方法及系统
WO2015062181A1 (zh) 用于实现多源异构数据资源自动同步的方法
Im et al. Pinot: Realtime olap for 530 million users
CN104834700A (zh) 一种基于轨迹变更的移动数据增量捕获方法
US10877988B2 (en) Real-time change data from disparate sources
Wijaya et al. An overview and implementation of extraction-transformation-loading (ETL) process in data warehouse (Case study: Department of agriculture)
CN108153804A (zh) 一种对称分布式文件系统的元数据日志更新方法
WO2017124660A1 (zh) 关联多段组件交易的系统及方法
CN105446824B (zh) 表增量获取方法及异地数据备份方法
CN108614892A (zh) 一种基于redolog的Oracle数据实时同步方法
Zhou et al. An ETL strategy for real-time data warehouse
WO2023142610A1 (zh) 数据处理方法和装置
Xian et al. Parallel gathering discovery over big trajectory data
CN109669946A (zh) 一种基于海量用户的复杂权限体系数据隔离系统及方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20181002

RJ01 Rejection of invention patent application after publication