CN104391891A - 一种数据库异构复制方法 - Google Patents
一种数据库异构复制方法 Download PDFInfo
- Publication number
- CN104391891A CN104391891A CN201410632763.8A CN201410632763A CN104391891A CN 104391891 A CN104391891 A CN 104391891A CN 201410632763 A CN201410632763 A CN 201410632763A CN 104391891 A CN104391891 A CN 104391891A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- session
- relational database
- isomery
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据库异构复制方法,包括如下步骤:a)获取关系数据库运行过程中产生的过程数据;b)对获取的过程数据中的会话数据和客户数据进行分离提取;c)将分离提取的会话数据保存到非关系数据库中;所述非关系数据库中保存的会话数据按照会话ID进行划分,包括SQLID、调用的应用程序、持续时间、调用SQL数量、等待事件以及占用内存大小,并按照时间顺序排序后进行存储。本发明提供的数据库异构复制方法,通过将会话数据和客户数据分离,利用NoSQL格式存储关系数据库运行过程中产生的会话数据,从而能够长期保存监控数据,减少对系统表空间的占用,以便进行后续的统计分析、故障追溯和性能优化。
Description
技术领域
本发明涉及一种数据库处理方法,尤其涉及一种数据库异构复制方法。
背景技术
传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例。
过程数据在关系型数据库里面,都是一个表,一个表的去存储,通过类似sid去进行关联。例如v$session表和v$process表。在这些表里面,每一条记录代表了一个过程数据。如果要完整的展现一个会话的所有过程数据,就需要把这些表都关联起来查询。
例如关系型数据库Oracle,它的会话信息是保存在v$session这种动态性能视图中,每一秒都会把v$session中的信息复制到v$active_session_history中,这一部分历史数据还是存放在内存当中,而每过10秒钟会把v$session中的信息存入到的dba_hist相关的基表里面。这一部分信息是保存在磁盘上。虽然Oracle自带了这一部分功能,但是因为这类型的数据是大数据,并不能保存多久,如果设置长期保存将会对数据库系统产生一定的负担,影响数据库的性能。
由上可见,虽然关系数据库很强大,但是它并不能很好地长期保存监控数据,扩展性差(需要复杂的技术来实现),大数据下IO压力大,表结构更改困难。
发明内容
本发明所要解决的技术问题是提供一种数据库异构复制方法,能够长期保存监控数据,减少对系统表空间的占用,以便进行后续的统计分析。
本发明为解决上述技术问题而采用的技术方案是提供一种数据库异构复制方法,包括如下步骤:a)获取关系数据库运行过程中产生的过程数据;b)对获取的过程数据中的会话数据和客户数据进行分离提取;c)将分离提取的会话数据保存到非关系数据库中。
上述的数据库异构复制方法,其中,所述步骤a)通过会话ID查询所有相关联的v$session表和v$process表,获取该会话相关的过程数据。
上述的数据库异构复制方法,其中,所述步骤b)对查询获取的过程数据通过SPOOL的方式分离提取会话数据,并转换成相关的内存dump文件。
上述的数据库异构复制方法,其中,所述步骤c)采用FTP方式周期性传送所述内存dump文件到非关系数据库中;所述非关系数据库将所述内存dump文件转换成NoSQL格式,并将转换好的文件按照Key/Value类型进行存储。
上述的数据库异构复制方法,其中,所述NoSQL格式为CSV格式或JSON格式,所述非关系数据库将所述内存dump文件中的多条记录转换成树形结构的记录,每颗树对应一组记录,树根为key,其他的叶子和叶枝为Value。
上述的数据库异构复制方法,其中,所述步骤c)中非关系数据库中保存的会话数据按照会话ID进行划分,每个会话ID对应的会话数据按照时间顺序排序后进行存储。
上述的数据库异构复制方法,其中,所述步骤c)中非关系数据库中保存的会话数据包括SQLID、调用的应用程序、持续时间、调用SQL数量、等待事件以及占用内存大小。
本发明对比现有技术有如下的有益效果:本发明提供的数据库异构复制方法,通过将会话数据和客户数据分离,利用NoSQL格式存储关系数据库运行过程中产生的会话数据,从而能够长期保存监控数据,减少对系统表空间的占用,以便进行后续的统计分析、故障追溯和性能优化。
附图说明
图1为本发明数据库异构复制系统架构示意图;
图2为本发明数据库异构复制流程示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的描述。
图1为本发明数据库异构复制系统架构示意图。
现有的关系型数据库,例如关系型数据库Oracle,它的会话信息是保存在v$session这种动态性能视图中,每一秒都会把v$session中的信息复制到v$active_session_history中,这一部分历史数据还是存放在内存当中,而每过10秒钟会把v$session中的信息存入到的dba_hist相关的基表里面。这一部分信息是保存在磁盘上。虽然Oracle自带了这一部分功能,但是因为这类型的数据是大数据,并不能保存多久,如果设置长期保存将会对数据库系统产生一定的负担,影响数据库的性能。比如现有的关系数据库一般是将会话数据临时保存在物理的磁盘上,临时保存可以根据系统需要进行设置,但是一般临时保持时间都不会太长。如果保存的太久,会占用很多系统表空间。本发明利用复制技术,能够保障数据库自身产生的会话数据和客户数据进行分离保存,在生产环境中,不保存过程数据,这样可以减少对系统表空间的占用,如图1所示。
图2为本发明数据库异构复制流程示意图。
请继续参见图2,本发明提供的数据库异构复制方法包括如下步骤:
步骤S1:获取关系数据库运行过程中产生的过程数据;如通过会话ID查询所有相关联的v$session表和v$process表,获取该会话相关的过程数据。
步骤S2:对获取的过程数据中的会话数据和客户数据进行分离提取;如对查询获取的过程数据通过SPOOL的方式分离提取会话数据,并转换成相关的内存dump文件。SPOOL的作用可以用一句话来描述:在sqlplus中用来保存或打印查询结果;利用sqlplus spool将表导成csv文件。
步骤S3:将分离提取的会话数据保存到非关系数据库中。为了不对生产环境(关系性数据库)造成过多的负载,引起性能上的负荷,本发明采用FTP方式周期性传送所述内存dump文件到非关系数据库中;所述非关系数据库将所述内存dump文件转换成NoSQL格式,比如CSV格式或JSON格式,并将转换好的文件按照Key/Value(键--值对)类型进行存储。
本发明提供的数据库异构复制方法,所述非关系数据库中保存的会话数据优选按照会话ID进行划分,每个会话ID对应的会话数据按照时间顺序排序后进行存储。所述非关系数据库中保存的会话数据包括SQLID、调用的应用程序、持续时间、调用SQL数量、等待事件以及占用内存大小,从而可以进行后续的统计分析。通过对NoSQL系统的存储数据进行开发,做相应深层次的数据多维分析,并将分析数据进行图形化展示。本发明可以展示一段时间内,某个进程的变化情况,或者做一组多维度的分析,比如持续时间、调用SQL数量、等待事件等等的多维分析。通过对运行数据的采集,本发明可以分析出一些规律加以应用,帮助更好的优化关系型数据库。
本发明提供的数据库异构复制方法,组合使用关系数据库和非关系数据库的优点,在传统关系数据库的基础上充分利用了NoSQL的易扩展性、大数据量、灵活的数据模型和高可用性。
1)易扩展性:NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。也无形之间,在架构的层面上带来了可扩展的能力。
2)大数据量,高性能:NoSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache,每次表的更新Cache就失效,是一种大粒度的Cache,在针对web2.0的交互频繁的应用,Cache性能不高。而NoSQL的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说就要性能高很多了。
3)灵活的数据模型:NoSQL无需事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的web2.0时代尤其明显。
4)高可用性:NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如Cassandra,HBase模型,通过复制模型也能实现高可用。
下面给出本发明的具体实施方式:
1)每隔1-5秒从关系型数据库中查询v$session中的ACTIVE数据。也可以查询其它动态性能视图的数据。经过对大型Oracle系统的测试,基本上可以在不到1秒就能就把内存中的ACTIVE会话查询出来,然后将查询出来的信息通过SPOOL的方式转换成相关的dump文件。
2)为了不对生产环境(关系性数据库)造成过多的负载,引起性能上的负荷,本发明把文件上传到NoSQL服务器上。这里可以考虑采用FTP的方式,每隔一段时间传输一批文件过去。
3)编写相应的接口,对dump文件进行转换,转换成NoSQL相应的格式,例如CSV格式或者是JSON格式,针对不同的NoSQL数据库,需要开发不同的接口。
这一块需要读取相应的文件,把关系数据库表格型的数据文件,转换成NOSQL格式的数据形式。这里可以使用操作系统上中脚本类型的语言,如awk,sed等等对文件进行处理,可以简单地将多条记录转换成树形结构的记录,一个树就是一组记录。树的根就是key,其他的叶子和叶枝就是Value。应用程序A是一个根,在10点03分发起了一个叶支,然后在10点04分又发起了另外一个叶支。
4)将转换好的文件导入到Key/Value类型的NoSQL数据库当中,例如mongodb、redis等。
例如:
本发明可以组织成如下key/Value形式存入到Nosql里面。
由上可见,应用程序TestCK从20:01到20:03分,共执行了3条SQL语句,它们的等待事件依次是Latch:cache buffer chains,log file sync,dbsequencialread。
当然除了分析应用程序的相关信息,本发明还可以研究系统进程的相关信息,如SMON,PMON,LGWR等等。本发明把会话数据(过程数据)进行长期保存之后,能够依赖这些进行一些统计分析,只要有足够的历史过程数据,本发明可以定义各种维度,如想统计以下两种维度的一个情况。内存使用在20M-30M的,并且会话运行时间在1分钟内的一天发起多少次。内存使用在30M-100M的,并且会话运行时间在1分钟内的一天发起多少次。
PGA_USED_MEM | 运行时长 | 个数 |
20-30M | 1分钟 | 200个 |
30-100M | 1分钟 | 3000个 |
100M以上 | 1分钟 | 10个 |
本发明可以统计每天的值,如果发现有一天这个值有一个很大的波动变化,比如在100M以上的多了很多,就需要来寻找具体的原因,可以找到潜在的一些系统问题。
综上所述,本发明提供了一种全新的将会话过程数据作为一种大数据进行存储的方法,通过存储上述数据,除了帮助对过程数据进行更好的分析及统计,还可以进行事后分析,帮助解决关系数据库的使用中出现的问题,特别适合对各种关键性的生产运行数据有保存需要的行业,像石油化工行业。具体优点如下:
1)长期保存监控数据
虽然Oracle自带了这一部分功能,但是因为这类型的数据是大数据,并不能保存多久,如果设置长期保存将会对数据库系统产生一定的负担,影响数据库的性能。
2)会话数据和客户数据分离保存
关系数据库现有的技术,是将会话数据保存的物理的磁盘上,一般可以保存一段时间(通过设置保存时间),是以10秒钟一次采集为间隔的。如果保存的太久,会占用很多系统表空间。利用复制技术,本发明能够保障数据库自身产生的会话数据和客户数据进行分离保存,在生产环境中,不保存过程数据,这样可以减少对系统表空间的占用。
3)大数据更容易做深层次的分析
本发明把会话数据(过程数据)进行长期保存之后,能够依赖这些进行一些统计分析,比如某个会话的生命周期是多长时间?1分钟这一档生命周期的会话有多少个?分别对应什么应用程序?
4)故障追朔
由于本发明保存了数据库运行过程中产生的会话信息,假设出现故障之后,需要定位是由什么应用程序引起的。这个时候可以通过复制的运行过程中的会话信息进行故障的追溯。
5)性能优化
当采集了大量的运行过程数据后,本发明就可以找到一些弱关联性,比如某个程序和某个程序在同一时间点运行,会有一些隐形的争用,通过错开执行可以提高系统的使用效率。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善,因此本发明的保护范围当以权利要求书所界定的为准。
Claims (7)
1.一种数据库异构复制方法,其特征在于,包括如下步骤:
a)获取关系数据库运行过程中产生的过程数据;
b)对获取的过程数据中的会话数据和客户数据进行分离提取;
c)将分离提取的会话数据保存到非关系数据库中。
2.如权利要求1所述的数据库异构复制方法,其特征在于,所述步骤a)通过会话ID查询所有相关联的v$session表和v$process表,获取该会话相关的过程数据。
3.如权利要求2所述的数据库异构复制方法,其特征在于,所述步骤b)对查询获取的过程数据通过SPOOL的方式分离提取会话数据,并转换成相关的内存dump文件。
4.如权利要求3所述的数据库异构复制方法,其特征在于,所述步骤c)采用FTP方式周期性传送所述内存dump文件到非关系数据库中;所述非关系数据库将所述内存dump文件转换成NoSQL格式,并将转换好的文件按照Key/Value类型进行存储。
5.如权利要求4所述的数据库异构复制方法,其特征在于,所述NoSQL格式为CSV格式或JSON格式,所述非关系数据库将所述内存dump文件中的多条记录转换成树形结构的记录,每颗树对应一组记录,树根为key,其他的叶子和叶枝为Value。
6.如权利要求1~5任一项所述的数据库异构复制方法,其特征在于,所述步骤c)中非关系数据库中保存的会话数据按照会话ID进行划分,每个会话ID对应的会话数据按照时间顺序排序后进行存储。
7.如权利要求6所述的数据库异构复制方法,其特征在于,所述步骤c)中非关系数据库中保存的会话数据包括SQLID、调用的应用程序、持续时间、调用SQL数量、等待事件以及占用内存大小。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410632763.8A CN104391891B (zh) | 2014-11-11 | 2014-11-11 | 一种数据库异构复制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410632763.8A CN104391891B (zh) | 2014-11-11 | 2014-11-11 | 一种数据库异构复制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104391891A true CN104391891A (zh) | 2015-03-04 |
CN104391891B CN104391891B (zh) | 2017-12-05 |
Family
ID=52609795
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410632763.8A Active CN104391891B (zh) | 2014-11-11 | 2014-11-11 | 一种数据库异构复制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104391891B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294499A (zh) * | 2015-06-09 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种数据库数据查询方法和设备 |
CN106445727A (zh) * | 2015-08-07 | 2017-02-22 | 中国移动通信集团重庆有限公司 | 数据备份和恢复方法及系统 |
CN110019251A (zh) * | 2019-03-22 | 2019-07-16 | 深圳市腾讯计算机系统有限公司 | 一种数据处理系统、方法及设备 |
CN110597927A (zh) * | 2019-10-14 | 2019-12-20 | 上海依图网络科技有限公司 | 基于异构数据库的存储查询方法和装置 |
CN113254262A (zh) * | 2020-02-13 | 2021-08-13 | 中国移动通信集团广东有限公司 | 一种数据库容灾方法、装置和电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105745A1 (en) * | 2001-12-05 | 2003-06-05 | Davidson Jason A. | Text-file based relational database |
CN103631907A (zh) * | 2013-11-26 | 2014-03-12 | 中国科学院信息工程研究所 | 一种将关系型数据迁移至HBase的方法及系统 |
CN103761165A (zh) * | 2014-01-15 | 2014-04-30 | 北京奇虎科技有限公司 | 日志备份方法及装置 |
CN104123392A (zh) * | 2014-08-11 | 2014-10-29 | 吉林禹硕动漫游戏科技股份有限公司 | 一种关系型数据库迁移到HBase数据库的工具和方法 |
-
2014
- 2014-11-11 CN CN201410632763.8A patent/CN104391891B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030105745A1 (en) * | 2001-12-05 | 2003-06-05 | Davidson Jason A. | Text-file based relational database |
CN103631907A (zh) * | 2013-11-26 | 2014-03-12 | 中国科学院信息工程研究所 | 一种将关系型数据迁移至HBase的方法及系统 |
CN103761165A (zh) * | 2014-01-15 | 2014-04-30 | 北京奇虎科技有限公司 | 日志备份方法及装置 |
CN104123392A (zh) * | 2014-08-11 | 2014-10-29 | 吉林禹硕动漫游戏科技股份有限公司 | 一种关系型数据库迁移到HBase数据库的工具和方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294499A (zh) * | 2015-06-09 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 一种数据库数据查询方法和设备 |
CN106445727A (zh) * | 2015-08-07 | 2017-02-22 | 中国移动通信集团重庆有限公司 | 数据备份和恢复方法及系统 |
CN110019251A (zh) * | 2019-03-22 | 2019-07-16 | 深圳市腾讯计算机系统有限公司 | 一种数据处理系统、方法及设备 |
CN110597927A (zh) * | 2019-10-14 | 2019-12-20 | 上海依图网络科技有限公司 | 基于异构数据库的存储查询方法和装置 |
CN110597927B (zh) * | 2019-10-14 | 2022-08-16 | 上海依图网络科技有限公司 | 基于异构数据库的存储查询方法和装置 |
CN113254262A (zh) * | 2020-02-13 | 2021-08-13 | 中国移动通信集团广东有限公司 | 一种数据库容灾方法、装置和电子设备 |
CN113254262B (zh) * | 2020-02-13 | 2023-09-05 | 中国移动通信集团广东有限公司 | 一种数据库容灾方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104391891B (zh) | 2017-12-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
CN107544984B (zh) | 一种数据处理的方法和装置 | |
CN104391891A (zh) | 一种数据库异构复制方法 | |
CN106445738B (zh) | 一种数据库备份方法及装置 | |
US20180137134A1 (en) | Data snapshot acquisition method and system | |
WO2020192064A1 (zh) | 一种增量数据一致性实现方法及装置 | |
US9256665B2 (en) | Creation of inverted index system, and data processing method and apparatus | |
CN103631912B (zh) | 一种利用非关系数据库存储海量工业设备监测数据的方法 | |
CN106547918B (zh) | 一种统计数据的整合方法及系统 | |
CN104391948A (zh) | 数据仓库的数据标准化构建方法及系统 | |
CN107301214A (zh) | 在hive中数据迁移方法、装置及终端设备 | |
US20230067182A1 (en) | Data Processing Device and Method, and Computer Readable Storage Medium | |
US20190018851A1 (en) | Data processing system | |
CN105630934A (zh) | 一种数据统计方法及系统 | |
CN103646100A (zh) | 报表数据组织模型 | |
CN110502540A (zh) | 数据处理方法、装置、计算机设备和存储介质 | |
US20210279240A1 (en) | Efficient storage method for time series data | |
CN105589900A (zh) | 基于多维分析的数据挖掘方法 | |
CN108304527B (zh) | 一种数据提取方法 | |
CN110704442A (zh) | 一种大数据的实时获取方法及装置 | |
US20030191727A1 (en) | Managing multiple data mining scoring results | |
CN104331460A (zh) | 一种基于Hbase的数据读写操作方法及系统 | |
CN115858471A (zh) | 业务数据变更记录方法、装置、计算机设备及介质 | |
CN105718485B (zh) | 一种将数据录入数据库的方法及装置 | |
CN106855877A (zh) | 一种大数据的同步复制的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 201701 room 1, zone 113, zone 1, building 588, No. 7548, Lane R, outer Pine Road, Qingpu District, Shanghai Applicant after: Shanghai new torch network information technology Limited by Share Ltd Address before: 200063 Shanghai, Zhongshan North Road, No. 2000, building, building No. 3, B Applicant before: SHANGHAI XINJU NETWORK INFORMATION TECHNOLOGY CO., LTD. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |