CN107291574B - 基于解释系统的备份数据恢复主键生成方法 - Google Patents
基于解释系统的备份数据恢复主键生成方法 Download PDFInfo
- Publication number
- CN107291574B CN107291574B CN201610191548.8A CN201610191548A CN107291574B CN 107291574 B CN107291574 B CN 107291574B CN 201610191548 A CN201610191548 A CN 201610191548A CN 107291574 B CN107291574 B CN 107291574B
- Authority
- CN
- China
- Prior art keywords
- data
- work area
- primary key
- backup data
- user
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1458—Management of the backup or restore process
- G06F11/1469—Backup restoration techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1471—Saving, restoring, recovering or retrying involving logging of persistent data for recovery
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
一种基于解释系统的备份数据恢复主键生成方法,包括以下步骤:步骤S1:比对备份数据D的用户ID与恢复数据的用户ID,以及比对备份数据D的工区ID与恢复数据的工区ID;步骤S2:基于步骤S1的比对结果,更新所述备份数据D中的主键,获得经过主键更新的备份数据D’,并将所述备份数据D’存储于N个连续内存空间中。该方法直接对备份数据中的原有主键进行批量更新,从而快速的生成新的主键,不再需要通过索引文件逐条提取备份文件中的数据,数据入库前不需要反复的访问数据库来生成新的主键。该方法大大降低了程序之间的耦合性,有效的提高了备份数据恢复的效率。
Description
技术领域
本公开涉及备份数据恢复技术领域,特别涉及一种基于解释系统的批量快速的备份数据恢复主键生成方法。
背景技术
数据的备份/恢复功能是地震资料处理解释系统软件的一个非常重要的功能。数据的备份/恢复功能通过将解释系统中的工区数据按照业务需求从系统中备份出来,在解释系统备份工区的数据发生问题的时候,再将备份的数据恢复到解释系统中去,保障数据的安全。
解释系统数据备份/恢复的基本原理是通过备份功能将系统中的数据按照一定的组织结构,自定义的内部格式写成二进制文件,保存到本地磁盘或者移动设备上,当数据发生问题的时候,将备份的数据完整的恢复到系统中去。
解释系统的数据管理一般是采取数据库管理数据之间的相互关系。数据主键一般是通过一定的编码规则,利用用户ID、盆地ID、工区ID逐级进行编码。在备份数据的恢复过程中,非常关键的步骤就是如何快速的生成记录的主键,并保证主键满足数据之间的相互关系。常规方法是采取逐条提取备份数据中的记录到内存,再查询数据库中已有记录,生成新的主键,并进行保存。如此反复,直至所有数据保存完毕。在数据量较大的情况下,不但提取数据速度较慢,而且数据入库前需要反复对数据库进行连接、查询、计算生成新的主键,数据插入、恢复效率较低。因此,期待一种在恢复数据备份的过程中能够快速、批量生成主键的方法。
发明内容
本公开的目的是提供一种基于解释系统的备份数据恢复主键生成方法,其克服了现有方法提取数据速度较慢、需要反复连接数据库的缺点,能够批量快速地生成主键。
本公开采用以下解决方案:
一种基于解释系统的备份数据恢复主键生成方法,包括以下步骤:
步骤S1:比对备份数据D的用户ID与恢复数据的用户ID,以及比对备份数据D的工区ID与恢复数据的工区ID;
步骤S2:基于步骤S1的比对结果,更新所述备份数据D中的主键,获得经过主键更新的备份数据D’,并将所述备份数据D’存储于N个连续内存空间中,其中所述备份数据D包括N级数据,N是大于1的整数;
其中,在所述步骤S2中,针对所述备份数据D的第n级数据dn,执行以下子步骤,其中n是整数且1≤n≤N:
子步骤S21:将所述第n级数据dn提取到内存对象Mn中,其中所述第n级数据dn包括主键Kn;
子步骤S22:基于步骤S1的比对结果,更新所述内存对象Mn中的第n级数据dn的主键Kn,获得经过主键更新的第n级数据dn’;
子步骤S23:将所述内存对象Mn中的经过主键更新的第n级数据dn’存储于连续内存空间Mn’中;
子步骤S24:将存储于所述连续内存空间Mn’中的经过主键更新的第n级数据dn’导入所述解释系统数据库。
优选地,按照以下方式更新内存对象Mn中的第n级数据dn的主键Kn:
如果在步骤S1中判断所述备份数据D的用户ID与恢复数据的用户ID相同,备份数据D的工区ID与恢复数据的工区ID不同,那么针对所述主键Kn,用恢复数据的工区ID替换主键Kn中所包含的工区ID。
优选地,按照以下方式更新内存对象Mn中第n级数据dn的的主键Kn:
如果在步骤S1中判断所述备份数据D的用户ID与恢复数据的用户ID不同,备份数据D的工区ID与恢复数据的工区ID不同,那么针对所述主键Kn,用恢复数据的工区ID替换主键Kn中所包含的工区ID,用恢复数据的用户ID替换主键Kn中所包含的用户ID。
优选地,按照以下方式更新内存对象Mn中的第n级数据dn的主键Kn:
如果在步骤S1中判断所述备份数据D的用户ID与恢复数据的用户ID不同,备份数据D的工区ID与恢复数据的工区ID相同,那么首先删除恢复数据中与备份数据D具有相同工区ID的重复工区,为恢复数据创建具有新的工区ID的新的工区,且所述新的工区ID与所述备份数据D的工区ID不同,然后针对所述主键Kn,用恢复数据的新的工区ID替换主键Kn中所包含的工区ID,用恢复数据的用户ID替换主键Kn中所包含的用户ID。
优选地,按照以下方式更新内存对象Mn中的第n级数据dn的主键Kn:
如果在步骤S1中判断所述备份数据D的用户ID与恢复数据的用户ID相同,备份数据D的工区ID与恢复数据的工区ID相同,那么首先删除恢复数据中与备份数据D具有相同工区ID的重复工区,为恢复数据创建具有新的工区ID的新的工区,且所述新的工区ID与所述备份数据D的工区ID不同,然后针对所述主键Kn,用恢复数据的新的工区ID替换主键Kn中所包含的工区ID。
本公开的有益效果在于通过获取备份数据中的所有主键数据,直接对备份数据中的原有主键进行批量更新,从而快速的生成新的主键。不但不再需要通过索引文件逐条提取备份文件中的数据,而且数据入库前不需要反复的访问数据库来生成新的主键。该方法大大降低了程序之间的耦合性,有效的提高了备份数据恢复的效率。
附图说明
通过结合附图对本公开示例性实施例进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施例中,相同的参考标号通常代表相同部件。
图1示出了根据示例性实施例的基于解释系统的备份数据恢复主键生成方法的流程图;
图2示出了第一示例中未进行主键更新的备份数据;
图3示出了第一示例中经过主键更新的备份数据。
具体实施方式
下面将参照附图更详细地描述本公开的优选实施例。虽然附图中显示了本公开的优选实施例,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
图1显示了根据示例性实施例的基于解释系统的备份数据恢复主键生成方法,包括以下步骤:
步骤S1:比对备份数据D的用户ID与恢复数据的用户ID,以及比对备份数据D的工区ID与恢复数据的工区ID
备份数据D中包含了备份数据D所属的用户信息和工区信息。通过将备份数据D的用户ID和工区ID分别与恢复数据的用户ID和工区ID进行比对,可以判断备份数据D的用户与恢复数据的用户是否相同,备份数据D的工区ID与恢复数据的工区ID是否冲突。
具体来说,当备份数据D的用户ID与恢复数据的用户ID相同时,可以确定对数据进行备份和恢复操作的是同一个用户,否则可以确定对数据进行备份和恢复操作的不是同一个用户。
当备份数据D的工区ID与恢复数据的工区ID相同时,说明出现了工区ID冲突,应在后续步骤中进行处理;当备份数据D的工区ID与恢复数据的工区ID不同时,说明不存在工区ID的冲突,可以继续进行到下一步骤。
综上,步骤S1的比对结果分为以下四种类型:
类型1:用户ID相同,工区ID相同;
类型2:用户ID相同,工区ID不同;
类型3:用户ID不同,工区ID相同;
类型4:用户ID不同,工区ID不同。
作为优选方案,在进行备份数据与恢复数据的用户信息比对时,不仅可以比对二者的用户ID,还可以比对二者的用户姓名,作为附加信息。
步骤S2:基于步骤S1的比对结果,更新备份数据D的主键,获得经过主键更新的备份数据D’,并将备份数据D’存储于N个连续内存空间中
备份数据D是按照解释系统数据模型的关系自定义的目录结构,其包括N级数据d1至dN,其中N是大于1的整数。主键是根据解释系统数据模型的关系自定义的编码,其用于标识数据,每个数据对应一个主键,在解释系统中,主键主要包括工区ID、流水号和用户ID三个部分。
在步骤S2中,针对备份数据D的第n级数据dn,执行以下子步骤,其中n是整数且1≤n≤N:
子步骤S21:将第n级数据dn提取到内存对象Mn中,第n级数据dn中包括了主键Kn;
子步骤S22:基于步骤S1的比对结果,更新内存对象Mn中的第n级数据dn的主键Kn,获得经过主键更新的第n级数据dn’,数据dn’中包括经过更新的主键Kn’
特别地,可以基于步骤S1的比对结果,按照以下方法更新内存对象Mn中的第n级数据dn的主键Kn:
如果在步骤S1中判断用户ID相同,工区ID不同,那么针对内存对象Mn中的主键Kn,用恢复数据的工区ID替换主键Kn中所包含的工区ID。
如果在步骤S1中判断用户ID不同,工区ID不同,那么针对内存对象Mn中的主键Kn,用恢复数据的工区ID替换主键Kn中所包含的工区ID,用恢复数据的用户ID替换主键Kn中所包含的用户ID。
如果在步骤S1中判断用户ID不同,工区ID相同,那么说明恢复数据的工区ID与备份数据的工区ID发生了冲突,需要重新建立恢复数据的工区。在这种情况下,首先删除恢复数据中与备份数据D具有相同工区ID的重复工区,为恢复数据创建具有新的工区ID的新的工区,且新的工区ID与备份数据的工区ID不同。然后针对内存对象Mn中的主键Kn,用恢复数据的新的工区ID替换主键Kn中所包含的工区ID,用恢复数据的用户ID替换主键Kn中所包含的用户ID。
如果在步骤S1中判断用户ID相同,工区ID相同,那么首先删除恢复数据中与备份数据D具有相同工区ID的重复工区,为恢复数据创建具有新的工区ID的新的工区,且新的工区ID与备份数据的工区ID不同。然后针对内存对象Mn中的主键Kn,用恢复数据的新的工区ID替换主键Kn中所包含的工区ID’。
经过以上处理,第n级数据dn的主键kn被更新,经过主键更新的第n级数据dn’包括更新的主键Kn’,主键Kn’中可能包括恢复数据的工区ID、备份数据的用户ID、恢复数据的用户ID。
子步骤S23:将内存对象Mn中的经过主键更新的第n级数据dn’存储于连续内存空间Mn’中
在子步骤S21和子步骤S22中,内存对象Mn中的数据一般存储于不连续的内存空间中。为了在后续过程中便于将内存对象中的数据批量导入解释系统数据库中,需要将内存对象Mn中的数据转化存储于连续内存空间Mn’中。转存储化包括两方面操作:1)删除内存对象中数据成员之外的无用数据,例如舍弃内存对象中的函数;2)将内存对象中的数据由不连续的内存存放转化到连续内存空间存放。
子步骤S24:将存储于连续内存空间Mn’中的经过主键更新的第n级数据dn’导入解释系统数据库
经过前述的在子步骤,已经对备份数据的第n级数据dn的主键kn进行了更新,获得了包括更新的主键Kn’的第n级数据dn’,而且第n级数据dn’存储于连续内存空间Mn’中,因此可以将第n级数据dn’批量导入解释系统数据库中。例如可通过Oracle的OCI批量入库接口进行服务申请,对连续内存空间Mn’中的数据进行数据绑定,将数据批量导入数据库中。
应用示例
图2显示了本示例中未进行主键更新的备份数据,备份数据包括2级数据,第1级数据为工区数据,工区ID为3001,工区主键也为3001;第2级数据为测网数据,测网数据的主键分别为3001 001、3001 002、3001 003。在图2中,所有数据的主键均显示在括号内。恢复数据创建于目的盆地下的工区具有工区ID 4001。
在进行主键生成时,首先比对备份数据的工区ID与恢复数据目的盆地下的工区ID,判断二者不同,没有发生工区ID的冲突。
然后,将第1级数据——工区数据(其中包括主键K1“3001”)提取至内存对象M1中,用恢复数据的工区ID“4001”替换主键K1中的工区ID字段,工区数据被更新,其中包括更新的主键“4001”;再将更新的工区数据(其中包括更新的主键“4001”)存储到连续内存空间M1’中;最后,将连续内存空间M1’中的更新的工区数据导入解释系统数据库中。
接下来,将第2级数据——测网数据(其中包括主键K2)提取至内存对象M2中,主键K2包括三个值,即3001 001、3001 002、3001 003;用恢复数据的工区ID“4001”替换主键K2中的工区ID字段,获得更新的测网数据,其中包括更新的主键值为:4001 001、4001 002、4001 003;然后将内存对象M2中的更新的测网数据(其中包括更新的主键“4001 001”、“4001 002”、“4001 003”)存储到连续内存空间M2’中;最后,将连续内存空间M2’中的更新的测网数据导入解释系统数据库中。图3显示了本示例中经过主键更新的备份数据。
对于主键包括用户ID字段的情况,按照前述的方法进行处理,处理步骤是类似的。
在备份数据的数据量巨大时,根据示例性实施例的主键生成方法不需要通过索引文件逐条提取备份文件中的数据,而且数据入库前不需要反复的访问数据库来生成新的主键,有效的提高了备份数据恢复的效率。
上述技术方案只是本发明的一种实施例,对于本领域内的技术人员而言,在本发明公开的原理的基础上,很容易做出各种类型的改进或变形,而不仅限于本发明上述具体实施例的描述,因此前面的描述只是优选的,而并不具有限制性的意义。
Claims (1)
1.一种基于解释系统的备份数据恢复主键生成方法,包括以下步骤:
步骤S1:比对备份数据D的用户ID与恢复数据的用户ID,以及比对备份数据D的工区ID与恢复数据的工区ID;
步骤S2:基于步骤S1的比对结果,更新所述备份数据D中的主键,获得经过主键更新的备份数据D’,并将所述备份数据D’存储于N个连续内存空间中,其中所述备份数据D包括N级数据,N是大于1的整数;
其中,在所述步骤S2中,针对所述备份数据D的第n级数据dn,执行以下子步骤,其中n是整数且1≤n≤N:
子步骤S21:将所述第n级数据dn提取到内存对象Mn中,其中所述第n级数据dn包括主键Kn;
子步骤S22:基于步骤S1的比对结果,更新所述内存对象Mn中的第n级数据dn的主键Kn,获得经过主键更新的第n级数据dn’;
子步骤S23:将所述内存对象Mn中的经过主键更新的第n级数据dn’存储于连续内存空间Mn’中;
子步骤S24:将存储于所述连续内存空间Mn’中的经过主键更新的第n级数据dn’导入所述解释系统数据库;其中按照以下方式更新内存对象Mn中的第n级数据dn的主键Kn:
如果在步骤S1中判断所述备份数据D的用户ID与恢复数据的用户ID相同,备份数据D的工区ID与恢复数据的工区ID不同,那么针对所述主键Kn,用恢复数据的工区ID替换主键Kn中所包含的工区ID;
如果在步骤S1中判断所述备份数据D的用户ID与恢复数据的用户ID不同,备份数据D的工区ID与恢复数据的工区ID不同,那么针对所述主键Kn,用恢复数据的工区ID替换主键Kn中所包含的工区ID,用恢复数据的用户ID替换主键Kn中所包含的用户ID;
如果在步骤S1中判断所述备份数据D的用户ID与恢复数据的用户ID不同,备份数据D的工区ID与恢复数据的工区ID相同,那么首先删除恢复数据中与备份数据D具有相同工区ID的重复工区,为恢复数据创建具有新的工区ID的新的工区,且所述新的工区ID与所述备份数据D的工区ID不同,然后针对所述主键Kn,用恢复数据的新的工区ID替换主键Kn中所包含的工区ID,用恢复数据的用户ID替换主键Kn中所包含的用户ID;
如果在步骤S1中判断所述备份数据D的用户ID与恢复数据的用户ID相同,备份数据D的工区ID与恢复数据的工区ID相同,那么首先删除恢复数据中与备份数据D具有相同工区ID的重复工区,为恢复数据创建具有新的工区ID的新的工区,且所述新的工区ID与所述备份数据D的工区ID不同,然后针对所述主键Kn,用恢复数据的新的工区ID替换主键Kn中所包含的工区ID。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610191548.8A CN107291574B (zh) | 2016-03-30 | 2016-03-30 | 基于解释系统的备份数据恢复主键生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610191548.8A CN107291574B (zh) | 2016-03-30 | 2016-03-30 | 基于解释系统的备份数据恢复主键生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107291574A CN107291574A (zh) | 2017-10-24 |
CN107291574B true CN107291574B (zh) | 2020-08-25 |
Family
ID=60086979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610191548.8A Active CN107291574B (zh) | 2016-03-30 | 2016-03-30 | 基于解释系统的备份数据恢复主键生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107291574B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110955759A (zh) * | 2018-09-26 | 2020-04-03 | 中国石油化工股份有限公司 | 基于解释系统的文件服务器目录选择优化方法及系统 |
CN109933609B (zh) * | 2019-01-30 | 2022-04-01 | 福建天泉教育科技有限公司 | 一种批量生成id的方法及终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517918A (zh) * | 2003-01-17 | 2004-08-04 | 深圳市中兴通讯股分有限公司 | 一种备份和恢复重要数据的方法 |
CN102467421A (zh) * | 2010-11-19 | 2012-05-23 | 深圳市金蝶友商电子商务服务有限公司 | 一种基于租户数据的处理方法及计算机 |
CN104102555A (zh) * | 2013-04-12 | 2014-10-15 | 赵利林 | 开源数据备份和恢复方法 |
CN105389404A (zh) * | 2015-12-29 | 2016-03-09 | 北京斗牛科技有限公司 | 一种向数据库关联表导入数据的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8307004B2 (en) * | 2007-06-08 | 2012-11-06 | Apple Inc. | Manipulating electronic backups |
-
2016
- 2016-03-30 CN CN201610191548.8A patent/CN107291574B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1517918A (zh) * | 2003-01-17 | 2004-08-04 | 深圳市中兴通讯股分有限公司 | 一种备份和恢复重要数据的方法 |
CN102467421A (zh) * | 2010-11-19 | 2012-05-23 | 深圳市金蝶友商电子商务服务有限公司 | 一种基于租户数据的处理方法及计算机 |
CN104102555A (zh) * | 2013-04-12 | 2014-10-15 | 赵利林 | 开源数据备份和恢复方法 |
CN105389404A (zh) * | 2015-12-29 | 2016-03-09 | 北京斗牛科技有限公司 | 一种向数据库关联表导入数据的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107291574A (zh) | 2017-10-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107391306B (zh) | 一种异构数据库备份文件恢复方法 | |
EP2302538B1 (en) | Method and system for capturing change of data | |
CN103034659B (zh) | 一种重复数据删除的方法和系统 | |
CN105488050B (zh) | 一种数据库多索引方法、装置及系统 | |
CN102360410B (zh) | 一种文件系统的用户操作发现方法和装置 | |
WO2019211657A1 (en) | A secure deduplicating distributed data storage system | |
CN110879813A (zh) | 一种基于二进制日志解析的MySQL数据库增量同步实现方法 | |
US9002800B1 (en) | Archive and backup virtualization | |
US7769719B2 (en) | File system dump/restore by node numbering | |
KR20090075885A (ko) | 개별적으로 액세스 가능한 데이터 유닛의 기억 관리 방법 및 시스템 | |
CN103995854A (zh) | 一种设备跨版本升级方法和装置 | |
CN111984732B (zh) | 在区块链上实现去中心化检索的方法、节点及区块链网络 | |
AU2003228905A1 (en) | Data archive recovery | |
CN107291574B (zh) | 基于解释系统的备份数据恢复主键生成方法 | |
US9684677B2 (en) | Method for reliable and efficient filesystem metadata conversion | |
CN112835918A (zh) | 一种MySQL数据库增量同步实现方法 | |
CN104965835A (zh) | 一种分布式文件系统的文件读写方法及装置 | |
CN115408350A (zh) | 日志压缩、日志还原方法、装置、计算机设备和存储介质 | |
CN112416879B (zh) | 一种基于ntfs文件系统的块级数据去重方法 | |
CN110597821A (zh) | 数据仓库表结构变更方法及装置 | |
CN112711649A (zh) | 一种数据库多字段匹配方法、装置、设备及存储介质 | |
US7756818B1 (en) | Database table recovery system | |
WO2002008956A1 (en) | Focal point compression method and apparatus | |
CN111400321B (zh) | 基于oracle数据库自动回收高水位的方法 | |
CN103309899A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |