CN108614892A - 一种基于redolog的Oracle数据实时同步方法 - Google Patents
一种基于redolog的Oracle数据实时同步方法 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 27
- 238000012986 modification Methods 0.000 claims abstract description 4
- 230000004048 modification Effects 0.000 claims abstract description 4
- 238000012549 training Methods 0.000 claims abstract description 4
- 238000004458 analytical method Methods 0.000 claims description 9
- 238000005065 mining Methods 0.000 claims description 3
- 238000011017 operating method Methods 0.000 claims description 3
- 238000012916 structural analysis Methods 0.000 claims description 3
- 230000001360 synchronised effect Effects 0.000 claims description 3
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000007792 addition Methods 0.000 abstract 1
- 238000012217 deletion Methods 0.000 abstract 1
- 230000037430 deletion Effects 0.000 abstract 1
- 238000012360 testing method Methods 0.000 description 6
- 241000031711 Cytophagaceae Species 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 241000246099 Legionellales Species 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于redolog的Oracle数据实时同步方法,该方法是基于Oracle的redolog文件,并轮询redolog,通过redolog分析轮训内数据库的操作,实现数据同步,并将数据在其他存储系统完成同步操作。本发明的一种基于redolog的Oracle数据实时同步方法和现有技术相比,该方法基于Oracle自身的redolog文件,对Oracle无侵入性,该方法技术简单易于实现,对数据质量无要求,具有广泛的适用场景,能够实现数据实时同步功能,支持数据增加、删除、修改等操作,软件开发人员可快速实现Oracle数据实时同步功能。
Description
技术领域
本发明涉及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数据库中删除对应的一条数据,采用流式框架自动完成数据同步作业。
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)
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数据库的数据同步方法及系统 |
-
2018
- 2018-05-09 CN CN201810438194.1A patent/CN108614892A/zh active Pending
Patent Citations (4)
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 |