一种数据库结构的管理方法及系统技术方案

技术编号:9143217 阅读:144 留言:0更新日期:2013-09-12 04:43
本发明专利技术提供一种数据库结构的管理方法,包括:获取第一数据库结构和第二数据库结构;将所述第二数据库结构与所述第一数据库结构进行对比,获得差异;将所述差异生成结构差异文件;基于所述第二数据库结构与所述结构差异文件,获得所述第一数据库结构。本发明专利技术还提供一种用于该方法的系统。本发明专利技术能够实现数据库结构的跨库自动同步,易于进行数据库版本控制。

【技术实现步骤摘要】
一种数据库结构的管理方法及系统
本专利技术涉及数据库管理领域,具体地说涉及一种数据库结构的管理方法及系统。
技术介绍
数据库(DataBase,DB)是一个长期存储在计算机内的、有组织的、有共享的、统一管理的数据集合。它是一个按数据结构来存储和管理数据的计算机软件系统。随着数据库技术的发展,数据库被广泛应用于各行各业,数据库中通常建立多个不同类型的表,通过各个表来记载不同的数据。随着信息技术的发展,数据量呈急速上升趋势。因此对数据库进行管理至关重要。目前,对于数据库中的数据管理的技术已经相对成熟,有多种方法对数据进行管理。通过版本控制,可以方便地对数据进行查询、管理、回滚、恢复等操作。在数据库结构管理方面,由于在传统的技术中,数据库结构通常不会进行大量、快速改变,因此对于数据库结构的管理并没有得到研究人员的高度重视。随着互联网的快速发展,数据库结构的管理变得越来越重要。目前常用的数据库同步技术通常是基于同一类的数据库进行同步的,跨库同步很困难,而常用的数据库软件有多种,如果不能实现跨库同步,会直接影响到同步效果。因此需要一种对于数据库结构的管理方法,能够实现自动灵活地数据库结构的跨库同步。
技术实现思路
本专利技术提供一种数据库结构的管理方法,用于实现数据库结构的跨库自动同步,易于进行数据库版本控制。根据本专利技术的一个方面,提供一种数据库结构的管理方法,其中,包括以下步骤:a)获取第一数据库结构和第二数据库结构;b)将所述第二数据库结构与所述第一数据库结构进行对比,获得差异;c)将所述差异生成结构差异文件;d)基于所述第二数据库结构与所述结构差异文件,获得所述第一数据库结构。根据本专利技术的另一个方面,提供一种用于数据库结构的管理系统,其中,包括:获取装置,用于获取第一数据库结构和第二数据库结构;对比装置,用于将所述第二数据库结构与所述第一数据库结构进行对比,获得差异;生成装置,用于将所述差异生成结构差异文件;运行装置,用于基于所述第二数据库结构与所述结构差异文件,获得所述第一数据库结构。本专利技术提供的一种数据库结构的管理方法及其系统,首先,获取两个不同版本的数据库结构,并进行对比,找到两者在结构上的差异;之后将所有差异集合起来生成一个结构差异文件,这个结构差异文件优选用sql文件;由于sql语句可以通用于各种数据库软件,因此当需要在两个数据库版本中进行回滚时,可以将另一个数据库于sql文件同时运行,进而实现数据库结构的自动跨库同步。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本专利技术的其它特征、目的和优点将会变得更明显:图1为根据本专利技术的一种数据库结构的管理方法的一种具体实施方式的流程示意图;图2为根据本专利技术的一种用于数据库结构的管理系统的一种具体实施方式的结构示意图。附图中相同或相似的附图标记代表相同或相似的部件。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术的实施例作详细描述。下面详细描述本专利技术的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本专利技术,而不能解释为对本专利技术的限制。下文的公开提供了许多不同的实施例或例子用来实现本专利技术的不同结构。为了简化本专利技术的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本专利技术。此外,本专利技术可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。本专利技术省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本专利技术。如图1所示,图1为根据本专利技术提供的一种数据库结构的管理方法的一个具体实施方式的流程示意图,包括步骤S101~S104,下面结合具体的实施例对图1所示的方法进行说明。步骤S101,获取第一数据库结构和第二数据库结构,所述第二数据库结构可以为所述第一数据库结构的升级版本也可以是任意时间长度周期的两个时间点上的两个版本,甚至可以是不同的两个程序的数据库。首先使用数据库dump工具获取两份数据库结构,分别为第一数据库结构和与所述第一数据库结构比较的第二数据库结构。所述数据库包括但不限于:mysql、oracle、FoxPro、DB2、access或sqlserver。所获得的数据库结构例如为A.sql、B.sql文件,该文件本质上来说是一个文本文件。获取两个数据库结构之后,继续执行步骤S102,将所述第二数据库结构与所述第一数据库结构进行对比,获得差异(Diff)。通过比较两个*.sql文件之间的差别可以获得描述每行语句变化的数据库结构差异文件。可以使用现有技术中常用的差异技术获得两个数据库结构之间的差异,优选采用awk技术(awk是一种用于处理文本的编程语言工具。)来解析两个数据库结构之间的差异和变化。假设第二数据库为线上数据库,第一数据库为比较数据库,即第二数据库和第一数据库分别表示为A数据库和B数据库时,采用awk技术解析两个数据库结构之间的变化如下:从上述示例可以看出,所述差异包括:所述第二数据库结构相对于所述第一数据库结构的表结构的增加、删除和/或改变;或者所述第一数据库结构相对于所述第二数据库结构的表结构的增加、删除和/或改变。记录所有的差异,如:记录所有新增表的文件为tableaddedfile,记录所有删除表的文件为tabledeletedfile,记录所有删除行的文件为rowdeletedfile,记录所有增加行的文件为rowaddedfile和/或记录所有行更新的文件为rowupdatedfile。步骤S103,将所述差异生成结构差异文件。即对上述的各个差异进行合并处理,并记录处理结果,以生成一个结构差异文件。由于sql语句可以适用于各种数据库结构,因此,为了满足跨库同步的目的,优选的结构差异文件为sql文件。下面结合算法来举例说明如何对差异进行处理,另,下述线上数据库为第二数据库,线下数据库为第一数据库。第一步,处理tableaddedfile读出tableaddedfile的一行,得到一个数据库的表的名字,从线上数据库文件夹里得到创建这个表的sql语句,将其以这种形式输出到mergefile里,<tr><tdclass=\”change\”>增加表</td><tdclass=\”onlinecolumn\”>创建表所用的sql语句</td><tdclass=\”offlinecolumn\”></td></tr>,将创建表用的sql语句放入同步数据库表结构至线上数据库表结构的sql文件里。第二步,处理tabledeletedfile读出tabledeletedfile的一行,得到一个数据库的表的名字,从线下数据库文件夹里得到创建这个表的sql语句,将”droptableifexsits`$tablename`”的sql语句放入同步数据库表结构至线上数据库表结构本文档来自技高网...

【技术保护点】
一种数据库结构的管理方法,其中,包括以下步骤:a)获取第一数据库结构和第二数据库结构;b)将所述第二数据库结构与所述第一数据库结构进行对比,获得差异;c)将所述差异生成结构差异文件;d)基于所述第二数据库结构与所述结构差异文件,获得所述第一数据库结构。

【技术特征摘要】
1.一种数据库结构的管理方法,其中,包括以下步骤:a)获取第一数据库结构和第二数据库结构,其中所述第一数据库结构和所述第二数据库结构为不同类的数据库;b)将所述第二数据库结构与所述第一数据库结构进行对比,获得差异,其中,所述差异包括两个数据库结构文件之间每行语句的变化;c)将所述差异生成结构差异文件,其中,所述结构差异文件为SQL文件;d)基于所述第二数据库结构与所述结构差异文件,获得所述第一数据库结构,实现数据库结构的跨库同步;其中,当所述第二数据库结构为所述第一数据库结构的升级版本并且所述第一数据库结构升级到所述第二数据库结构的过程中经历至少一个其他版本的数据库结构时,获得相邻版本的数据库结构之间的差异以及对应的至少一个所述结构差异文件,基于至少一个所述结构差异文件以及至少一个版本的数据库结构获得其他版本的数据库结构。2.根据权利要求1所述的方法,其中,该方法还包括以下步骤:基于所述第一数据库结构与所述结构差异文件,获得所述第二数据库结构。3.根据权利要求1所述的方法,其中,所述差异包括:所述第二数据库结构相对于所述第一数据库结构的表结构的增加、删除和/或改变;或者所述第一数据库相对于所述第二数据库结构的表结构的增加、删除和/或改变。4.根据权利要求1所述的方法,其中,所述步骤c)进一步包括:对所述差异进行处理,生成主键、索引、字段、表和/或库变化的同步Sql语句;合并所述Sql语句生成所述结构差异文件。5.根据权利要求1~4任意一项所述的方法,其中,所述数据库包括:mysql、oracle、FoxPro、DB2、access或sqlserver。6.根据权利要求1~4任意一项所述的方法,其中所述结构差异文件包括生成该结构差异文件的至少两个数据库结构的版本号以及生成时间。7.一种用于数据库结构...

【专利技术属性】
技术研发人员:劳勇
申请(专利权)人:百度在线网络技术北京有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1