CN108090095B - 批量重建数据库的方法和装置 - Google Patents

批量重建数据库的方法和装置 Download PDF

Info

Publication number
CN108090095B
CN108090095B CN201611044272.7A CN201611044272A CN108090095B CN 108090095 B CN108090095 B CN 108090095B CN 201611044272 A CN201611044272 A CN 201611044272A CN 108090095 B CN108090095 B CN 108090095B
Authority
CN
China
Prior art keywords
database
information
server
reconstructed
servers
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
Application number
CN201611044272.7A
Other languages
English (en)
Other versions
CN108090095A (zh
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.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology 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 Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201611044272.7A priority Critical patent/CN108090095B/zh
Publication of CN108090095A publication Critical patent/CN108090095A/zh
Application granted granted Critical
Publication of CN108090095B publication Critical patent/CN108090095B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种批量重建数据库的方法和装置。其中,该方法包括:获取分布式部署的一个或多个服务器上的数据库信息,其中,数据库信息至少包括:数据库的名称、数据库中存储的文件的大小、数据库中存储的数据表的总行数;根据数据库中存储的文件的大小和/或表的总行数确定需要重建的数据库;对需要重建的数据库进行重建。本发明解决了现有技术无法实现将分布式部署的多个服务器上的数据库进行批量重建的技术问题。

Description

批量重建数据库的方法和装置
技术领域
本发明涉及计算机网络技术领域,具体而言,涉及一种批量重建数据库的方法和装置。
背景技术
在本领域,数据库技术的出现,实现了现代信息科学***中对大量计算机数据进行统一分析、管理和共享的目的。然而,在将计算机数据存储至数据库(例如,SQL-server数据库)的过程中,通常很难通过一个步骤便将需要进行多维度剖析的数据实现分门别类地存储。为了实现数据库中的数据存储,通常采用的方案是增加一个处理环节,先将计算机获取的原始数据存储到一个过程数据库(例如:receiver数据库)中,然后进一步处理这个过程数据库中存储的数据,从而生成符合剖析条件的最终的数据库(例如:DataWarehouse数据库)。在这个过程中,随着过程数据不断的累积,该过程数据库中存储的数据会一直增加,尤其是存储了很多中间过程数据库-receiver数据库,无疑会给服务器的硬盘造成巨大的压力。
为了避免上述过程数据库中存储的数据持续增加,需要定期采用模板数据库将这类过程数据库进行重建。由于模板数据库中仅仅包含数据库的正确的表结构等信息,没有任何数据,因此数据量和占用磁盘空间都比较小。现有技术采用的方案是通过查看服务器本地磁盘文件大小的方式来获取数据库中存储的数据库文件的大小,从而根据数据库文件大小确定需要是否将数据库重建。对于分布式数据库,由于采用多个分布式部署的服务器来将数据库分布式存储,难以保证数据库中存储的数据库文件存储的路径一致,因而,采用查看服务器本地磁盘文件大小的方式只能实现对单个数据库进行重建,或者利用脚本程序等实现对单个服务器上的数据库进行重建,无法对分布式部署的所有服务器上的多个数据库进行批量重建。
针对上述现有技术无法实现将分布式部署的多个服务器上的数据库进行批量重建的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种批量重建数据库的方法和装置,以至少解决现有技术无法实现将分布式部署的多个服务器上的数据库进行批量重建的技术问题。
根据本发明实施例的一个方面,提供了一种批量重建数据库的方法,包括:获取分布式部署的一个或多个服务器上的数据库信息,其中,数据库信息至少包括:数据库的名称、数据库中存储的文件的大小、数据库中存储的数据表的总行数;根据数据库中存储的文件的大小和/或表的总行数确定需要重建的数据库;对需要重建的数据库进行重建。
进一步地,获取分布式部署的一个或多个服务器上的数据库信息,包括:通过数据库管理***调用服务器上的数据库***表;从数据库***表获取数据库信息。
进一步地,在获取分布式部署的一个或多个服务器上的数据库信息之后,上述方法还包括:获取分布式部署的一个或多个服务器的标识信息;将标识信息和服务器上的数据库信息存储至数据库临时表中。
进一步地,根据数据库中存储的文件的大小和/或数据表的总行数确定需要重建的数据库包括:判断数据库是否满足预设条件,其中,预设条件包括以下任意之一:数据库中存储的文件的大小大于预设阈值、数据库中存储的表的总行数大于预设行数;从数据库临时表中筛选出满足预设条件的数据库。
进一步地,对需要重建的数据库进行重建包括:获取数据库临时表中需要重建的数据库;删除需要重建的数据库;利用模板数据库对需要重建的数据库进行重建。
进一步地,在删除需要重建的数据库之前,方法包括:将需要重建的数据库备份至本地磁盘或备份服务器中。
进一步地,在利用模板数据库对需要重建的数据库进行重建之后,方法还包括:对重建的数据库进行校验;在校验成功的情况下,删除本地磁盘或备份服务器中备份的数据库。
根据本发明实施例的另一方面,还提供了一种批量重建数据库的装置,包括:第一获取模块,用于获取分布式部署的一个或多个服务器上的数据库信息,其中,数据库信息至少包括:数据库的名称、数据库中存储的文件的大小、数据库中存储的数据表的总行数;确定模块,用于根据数据库中存储的文件的大小和/或数据表的总行数确定需要重建的数据库;创建模块,用于对需要重建的数据库进行重建。
进一步地,上述第一获取模块包括:调用模块,用于通过数据库管理***调用服务器上的数据库***表;第二获取模块,用于从数据库***表获取数据库信息。
进一步地,上述装置还包括:第三获取模块,用于获取分布式部署的一个或多个服务器的标识信息;第一存储模块,用于将标识信息和服务器上的数据库信息存储至数据库临时表中。
进一步地,上述确定模块还包括:判断数据库是否满足预设条件,其中,预设条件至少包括以下任意之一:数据库中存储的文件的大小大于预设阈值、数据库中存储的表的总行数大于预设行数;从数据库临时表中筛选出满足预设条件的数据库。
进一步地,上述创建模块还包括:第四获取模块,用于获取数据库临时表中需要重建的数据库;第一删除模块,用于删除需要重建的数据库;处理模块,用于利用模板数据库对需要重建的数据库进行重建。
进一步地,上述装置还包括:第二存储模块,用于将需要重建的数据库备份至本地磁盘或备份服务器中。
进一步地,上述装置还包括:校验模块,用于对重建的数据库进行校验;第二删除模块,用于在校验成功的情况下,删除本地磁盘或备份服务器中备份的数据库。
在本发明实施例中,通过获取分布式部署的一个或多个服务器上的数据库信息,其中,数据库信息至少包括:数据库的名称、数据库中存储的文件的大小、数据库中存储的数据表的总行数;根据数据库中存储的文件的大小和/或表的总行数确定需要重建的数据库;对需要重建的数据库进行重建,达到了对分布式部署的一个或多个服务器上的数据库进行批量处理的目的,从而实现了对不同服务器上的数据库进行批量重建的技术效果,进而解决了现有技术无法实现将分布式部署的多个服务器上的数据库进行批量重建的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种批量重建数据库的方法流程图;
图2是根据本发明实施例的一种可选的批量重建数据库的方法流程图;
图3是根据本发明实施例的一种可选的批量重建数据库的方法流程图;
图4是根据本发明实施例的一种可选的批量重建数据库的方法流程图;
图5是根据本发明实施例的一种可选的批量重建数据库的方法流程图;
图6是根据本发明实施例的一种可选的批量重建数据库的方法流程图;
图7是根据本发明实施例的一种优选的在SQL Server中批量重建数据库的方法流程图;以及
图8是根据本发明实施例的一种批量重建数据库的装置示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
实施例1
根据本发明实施例,提供了一种批量重建数据库的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机***中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种批量重建数据库的方法流程图,如图1所示,该方法包括如下步骤:
步骤S102,获取分布式部署的一个或多个服务器上的数据库信息,其中,数据库信息至少包括:数据库的名称、数据库中存储的文件的大小、数据库中存储的数据表的总行数。
具体地,在上述步骤中,上述服务器可以是用于对数据库中的数据进行存储与管理服务的数据库服务器;通过互联网连接在同一个域内的分布式部署的一个或多个服务器,可以提供分布式数据存储与管理服务;数据库是由多个数据表构成的,数据表是数据库的实质内容;在对分布式部署的一个或多个服务器上的数据库重建之前,首先要获取这些服务器上的数据库名称、数据库中存储的文件的大小、数据库中存储的数据表信息(例如,数据表的总行数)等。
一种可选的实施例中,上述数据库可以为数据库进行数据存储过程中的过程数据库。
步骤S104,根据数据库中存储的文件的大小和/或表的总行数确定需要重建的数据库。
具体地,在上述步骤中,上述文件可以为数据库中存储的文件,例如,数据库存储的数据;上述文件的大小可以为数据库中存储的文件所占磁盘空间的大小,可以用于表征数据库中存储的数据量;上述数据表可以为数据库中存放数据的多个表,在获取分布式部署的一个或多个服务器上的数据库信息之后,根据数据库中存储的文件大小和/或数据库中存储的多个表的总行数,来确定需要重建的数据库。
此处需要说明的是,数据库中存储的数据量太大会影响数据库的访问效率,而数据库中表的行数会也会影响数据库的响应速度,因此,本发明采用数据库中存储的文件大小和表的总行数两个指标来确定需要重建的数据库,对需要重建的数据库重建,从而提高数据的访问效率和响应速度。
一种优选的实施例中,当数据库中存储的文件的大小和表的总行数同时满足某一条件时,才对该数据库进行重建,从而提高准确度。
步骤S106,对需要重建的数据库进行重建。
具体地,在上述步骤中,在根据数据库中存储的文件大小和数据库中存储的多个表的总行数,来确定需要重建的数据库之后,基于模板数据对确定的需要重建的数据库进行重建。
此处需要说明的是,为了避免数据库在长时间存储数据过程中,过程数据库中积累的数据持续增加,不仅占用磁盘空间,而且影响数据库的访问速度,因而,需要定期对采用模板数据来对数据库进行重建,重建的过程是首先将数据库里表的数据存放到备份空间中,删除原有的表和索引,重建空的表和索引后,在将数据导入到新表或索引中,通过数据库重建,可以清除旧的数据,从而减少磁盘的占用空间,提高数据库的访问速度。
由上可知,在本申请上述实施例中,通过获取同一个域内的不同服务器上的数据库中存储的文件大小和表的行数,并根据数据库中存储的文件大小和表的行数两个指标来确定需要重建的数据库,最后基于模板数据,将需要重建的数据库进行重建。容易注意,本申请上述实施例公开的方案,未使用本次磁盘获取数据库占用磁盘空间的文件大小,而是从数据库管理***中获取多个不同服务器上的数据库信息,对不同服务器上数据库的文件大小和表的行数进行分析,来确定需要重建的数据库,达到了对分布式部署的一个或多个服务器上的数据库进行批量处理的目的,从而实现了对不同服务器上的数据库进行批量重建的技术效果,进而解决了现有技术无法实现将分布式部署的多个服务器上的数据库进行批量重建的技术问题。
作为一种可选的实施例,如图2所示,上述步骤S102中获取分布式部署的一个或多个服务器上的数据库信息,可以包括如下步骤:
步骤S202,通过数据库管理***调用服务器上的数据库***表;
步骤S204,从数据库***表获取数据库信息。
具体地,在上述步骤中,上述数据库管理***可以用于操纵和管理上述分布式部署的一个或多个服务器上的数据库的大型软件,一种可选的实施例中,该数据库管理***可以为SQL Server关系型数据库管理***,上述数据库***表可以为上述分布式部署的不同服务器上的数据***表,存储有该服务器上存储的所有的数据库的信息,例如,用户在数据库中创建的各种表信息,数据库中存储的文件大小等。基于上述步骤S202至S204,利用分布式数据库中的数据库管理***(例如,SQL Server)调用分布式部署的一个或多个服务器上的数据库***表,根据不同服务器上的数据库***表记载的数据库信息,可以获取各个服务器上的数据库信息。
一种可选的实施例中,上述数据库可以为SQL Sever数据库,上述数据库***表可以为SQL Sever数据库中的***表,例如Sysdatabases、Sysxlogins、Systypes、Sysusers和Sysobjects,其中,***表Sysdatabases存在于SQL Sever的Master数据库中,用于存储有当前***所有的数据库,***表Sysxlogins,用于存储所有能登陆SQL Sever的帐号;***表Systypes,存在于每个数据库中,用于存储***中默认的用户类型和用户自定义的用户类型,***表Sysusers用于存储有每个数据库中的用户和角色,***表Sysobjects用于存储在数据库内创建的每个对象(约束、默认、日志、规则、存储过程)。
此处需要说明的是,现有技术通过查看生产服务器本地磁盘文件大小的方式获得SQL Server数据库中存储的文件大小,但是当服务器比较多的情况下,很难保证SQLServer数据库在每个服务器上存储的路径一致。通过上述实施例,实现了获取多个分布式部署的服务器上的存储的数据库信息。
作为一种可选的实施例,如图3所示,在获取分布式部署的一个或多个服务器上的数据库信息之后,上述方法还可以包括如下步骤:
步骤S302,获取分布式部署的一个或多个服务器的标识信息;
步骤S304,将标识信息和服务器上的数据库信息存储至数据库临时表中。
具体地,在上述步骤中,上述服务器可以为分布式部署的一个或多个服务器;上述标识信息可以为用于标识分布式部署的每个服务器的IP地址;在获取分布式部署的一个或多个服务器上的数据库信息之后,可以在数据库中建立一个临时表用于存储获取到的不同服务器上的数据库信息,同时获取相应的服务器的标识信息存储于临时表中,用以区分数据库来自哪个服务器。
可选地,可以利用windows身份依次获得同一个域内不同服务器上数据库信息。
通过上述实施例,建立数据库临时表,用于将从分布式部署的多个服务器上获取的数据库信息进行汇总记录,达到了将不同服务器上的数据库批量分析的目的。
在一种可选的实施例中,如图4所示,上述步骤S104中根据数据库中存储的文件的大小和/或表的总行数确定需要重建的数据库,可以包括如下步骤:
步骤S402,判断数据库是否满足预设条件,其中,预设条件至少包括以下任意之一:数据库中存储的文件的大小大于预设阈值、数据库中存储的表的总行数大于预设行数;
步骤S404,从数据库临时表中筛选出满足预设条件的数据库。
具体地,在上述步骤中,上述数据库可以为分布式部署一个或多个服务器上的数据库;上述预设条件可以是为了对数据库进行处理预先设置的任何条件,一种可选的实例中,上述预设条件可以为数据库中存储的文件的大小,和/或,数据库中存储的表的总行数,根据分布式部署的一个或多个服务器上的数据库中存储的文件大小和表的总行数,判断数据库临时表中的数据库是否满足预设条件,将数据库临时表中满足预设条件的数据库进行过滤、筛选,从而得到需要重建的数据库。
一种优选的实施例中,上述预设条件为同时满足数据库中存储的文件的大小大于预设阈值、数据库中存储的表的总行数大于预设行数。
通过上述实施例,可以实现将分布式部署的一个或多个服务器上的数据库中需要重建的数据库全部筛选的目的。
在一种可选的实施例中,如图5所示,上述步骤S106中对需要重建的数据库进行重建,可以包括如下步骤:
步骤S502,获取数据库临时表中需要重建的数据库;
步骤S504,删除需要重建的数据库;
步骤S506,利用模板数据库对需要重建的数据库进行重建。
具体地,在上述步骤中,在根据数据库中存储的文件的大小和/或数据表的总行数,在数据库临时表中筛选出需要重建的数据库后,删除需要重建的数据库,利用空白的、没有任何数据的模板数据库对需要重建的数据库进行重建。
可选地,基于上述实施例,在删除需要重建的数据库之前,上述方法还包括:将需要重建的数据库备份至本地磁盘或备份服务器中。
在一种可选的实施例中,如图6所示,在利用模板数据库对需要重建的数据库进行重建之后,上述方法还可以包括如下步骤:
步骤S602,对重建的数据库进行校验;
步骤S604,在校验成功的情况下,删除本地磁盘或备份服务器中备份的数据库。
作为一种优选的实施例,可以结合图7所示的SQL Server中批量重建数据的方法流程图来说明本申请上述实施例,如图7所示,该方法包括如下步骤:
步骤S702,利用SQL查询不同服务器上的数据库信息。
在上述步骤中,上述数据库信息可以包括:数据库中存储的文件的大小和表的总行数,通过执行数据库***表,可以获取分布式部署的多个服务器上的数据库的数据库文件、日志文件、表的行数等详细信息。
一种可选的实施例中,可以通过下面的程序来实现查询不同服务器上的数据库信息。程序示例:
Select name,convert(float,size)*(8192.0/1024.0)/1024/1024.FromWebDissectorReceiver_800003.
Select Count(*)表行数
FROM[WebDissectorReceiver_800003].[E_Session].
上述程序的输出结果为:
Figure BDA0001160358540000081
Figure BDA0001160358540000091
表行数
456153
由上述输出结果可以看出,查询得到的数据库名称为WebDissectorReceiver,数据库文件的大小为1.12890625,数据库中表的总行数为456153。
步骤S704,将获取到的数据库信息存储到新的数据表中,存储时增加一个字符串来记录服务器的IP地址。
在上述步骤中,通过使用循环语句就可以将整个生产环境的所有服务器上所有的数据库的信息存储到新的数据库表中,存储时增加一个字符串字段用来记录服务器的IP地址。
一种可选的实施例中,可以通过下面的程序来实现将获取到的数据库信息存储到新的数据表中。部分程序示例:
Figure BDA0001160358540000092
输出结果为:
ID Dbname mdf ldf TableCount Server
0 receiver 1.128906 0.29937 23456 172.1.1.1
在上述实施例中,Dbname表示数据名称,mdf表示数据库文件,ldf表示日志文件,TableCount表示数据库的表行数,Server表示服务器。的由上述输出结果可以看出,将receiver数据库存储至的新的数据表后,新的数据表中,该数据库的表ID号为0,数据库的名称为receiver,数据库文件的大小为1.128906,日志文件大小为0.29937,表的行数为23456,该数据库所在服务器的IP地址为172.1.1.1。
步骤S706,备份数据库到本地磁盘或者冷备服务器。
在上述步骤中,将分布式部署的一个或多个服务器上的数据库备份至本地磁盘或备份服务器(例如冷备服务器)中。
一种可选的实施例中,将多个服务器上的数据库批量备份可以通过以下的代码实现,部分程序示例为:
Figure BDA0001160358540000101
Figure BDA0001160358540000111
Figure BDA0001160358540000121
一种可选的实施例中,将上述脚本代码复制到GWD目标数据库服务器SQL ServerManagement Studio中,根据实际情况更改执行参数,使用DEBUG模式查看Messages中输出的脚本是否正确,确认无误后更改@ExecMode。
此处需要说明的是,批量备份数据库不包括AS库,AS库可以通过AS程序的j:d的方式基于模板创建,因此不需要备份。
优选地,上述备份服务器可以是冷备服务器。
步骤S708,根据数据库中存储的文件的大小和表的总行数,确定需要重建的数据库。
在上述步骤中,在将获取到的数据库信息存储到新的数据表中后,根据数据库中存储的文件的大小和表的总行数,确定需要重建的数据库。
步骤S710,删除旧的数据库。
在上述步骤中,在确定需要重建的数据库后,将分布式部署的多个服务器上的这些数据库删除。
步骤S712,创建新的数据库。
在上述步骤中,在将分布式部署的多个服务器上的这些数据库删除后,利用模板数据,在这些服务器上创建新的数据库。
步骤S714,校验后删除备份的数据库。
本申请上述实施例公开的方案,不使用window本地磁盘获取数据库占用磁盘文件大小,转而从SQL Server中使用该数据库的***表得到占用磁盘文件的大小,既准确又便于导入到数据库表中,而且方便使用SQL语句过滤条件进行筛选,筛选成功后通过脚本删除后统一重建,避免因sql-server部署路径造成的不同服务器的文件路径不一致。
实施例2
根据本发明实施例,还提供了一种批量重建数据库的装置实施例。本发明实施例1中的批量重建数据库的方法可以在本发明实施例2的装置中执行。
图8是根据本发明实施例的一种批量重建数据库的装置示意图,如图8所示,该装置包括:获取模块801、确定模块803和创建模块805。
其中,获取模块801,用于获取分布式部署的一个或多个服务器上的数据库信息,其中,数据库信息至少包括:数据库的名称、数据库中存储的文件的大小、数据库中存储的数据表的总行数;确定模块803,用于根据文件的大小和/或数据表的总行数确定需要重建的数据库;创建模块805,用于对需要重建的数据库进行重建。
由上可知,在本申请上述实施例中,通过获取同一个域内的不同服务器上的数据库中存储的文件大小和表的行数,并根据数据库中存储的文件大小和表的行数两个指标来确定需要重建的数据库,最后基于模板数据,将需要重建的数据库进行重建。容易注意,本申请上述实施例公开的方案,未使用本次磁盘获取数据库占用磁盘空间的文件大小,而是从数据库管理***中获取多个不同服务器上的数据库信息,对不同服务器上数据库的文件大小和表的行数进行分析,来确定需要重建的数据库,达到了对分布式部署的一个或多个服务器上的数据库进行批量处理的目的,从而实现了对不同服务器上的数据库进行批量重建的技术效果,进而解决了现有技术无法实现将分布式部署的多个服务器上的数据库进行批量重建的技术问题。
在一种可选的实施例中,上述第一获取模块包括:调用模块,用于通过数据库管理***调用服务器上的数据库***表;第二获取模块,用于从数据库***表获取数据库信息。
在一种可选的实施例中,上述装置还包括:第三获取模块,用于获取服务器的标识信息;存储模块,用于将标识信息和服务器的数据库信息存储至数据库临时表中。
在一种可选的实施例中,上述确定模块还包括:判断数据库是否满足预设条件,其中,预设条件包括以下任意之一:文件的大小大于预设阈值、数据表的总行数大于预设行数;从数据库临时表中筛选出满足预设条件的数据库。
在一种可选的实施例中,上述创建模块还包括:第四获取模块,用于获取数据库临时表中需要重建的数据库;第一删除模块,用于删除需要重建的数据库中的原有数据;处理模块,用于利用模板数据对需要重建的数据库进行重建。
在一种可选的实施例中,上述装置还包括:第二存储模块,用于将需要重建的数据库中存储的原有数据备份至本地磁盘或备份服务器中。
在一种可选的实施例中,上述装置还包括:校验模块,用于对重建的数据库进行校验;第二删除模块,用于在校验成功的情况下,删除本地磁盘或备份服务器中备份的数据库。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (6)

1.一种批量重建数据库的方法,其特征在于,包括:
获取分布式部署的一个或多个服务器上的数据库信息,其中,所述数据库信息至少包括:所述数据库的名称、所述数据库中存储的文件的大小、所述数据库中存储的表的总行数;
根据所述数据库中存储的文件的大小和/或表的总行数确定需要重建的数据库;
对所述需要重建的数据库进行重建;
其中,获取分布式部署的一个或多个服务器上的数据库信息,包括:
通过数据库管理***调用所述服务器上的数据库***表;
从所述数据库***表获取所述数据库信息;
其中,在获取分布式部署的一个或多个服务器上的数据库信息之后,所述方法还包括:
获取所述分布式部署的一个或多个服务器的标识信息;
将所述标识信息和所述服务器上的数据库信息存储至数据库临时表中,其中,建立所述数据库临时表用于将所述服务器上的数据库信息进行汇总记录。
2.根据权利要求1所述的方法,其特征在于,根据所述数据库中存储的文件的大小和/或所述表的总行数确定需要重建的数据库包括:
判断所述数据库是否满足预设条件,其中,所述预设条件至少包括以下任意之一:所述数据库中存储的文件的大小大于预设阈值、所述数据库中存储的表的总行数大于预设行数;
从所述数据库临时表中筛选出满足所述预设条件的数据库。
3.根据权利要求1所述的方法,其特征在于,对所述需要重建的数据库进行重建包括:
获取所述数据库临时表中需要重建的数据库;
删除所述需要重建的数据库;
利用模板数据库对所述需要重建的数据库进行重建。
4.根据权利要求3所述的方法,其特征在于,在删除所述需要重建的数据库之前,所述方法包括:将所述需要重建的数据库备份至本地磁盘或备份服务器中。
5.根据权利要求4所述的方法,其特征在于,在利用模板数据库对所述需要重建的数据库进行重建之后,所述方法还包括:
对所述重建的数据库进行校验;
在校验成功的情况下,删除所述本地磁盘或所述备份服务器中备份的数据库。
6.一种批量重建数据库的装置,其特征在于,包括:
第一获取模块,用于获取分布式部署的一个或多个服务器上的数据库信息,其中,所述数据库信息至少包括:所述数据库的名称、所述数据库中存储的文件的大小、所述数据库中存储的数据表的总行数;
确定模块,用于根据所述数据库中存储的文件的大小和/或表的总行数确定需要重建的数据库;
创建模块,用于对所述需要重建的数据库进行重建;
其中,所述第一获取模块包括:
调用模块,用于通过数据库管理***调用所述服务器上的数据库***表;
第二获取模块,用于从所述数据库***表获取所述数据库信息;
其中,所述装置还包括:
第三获取模块,用于获取所述服务器的标识信息;
第一存储模块,用于将所述标识信息和所述服务器上的数据库信息存储至数据库临时表中,其中,建立所述数据库临时表用于将所述服务器上的数据库信息进行汇总记录。
CN201611044272.7A 2016-11-23 2016-11-23 批量重建数据库的方法和装置 Active CN108090095B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611044272.7A CN108090095B (zh) 2016-11-23 2016-11-23 批量重建数据库的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611044272.7A CN108090095B (zh) 2016-11-23 2016-11-23 批量重建数据库的方法和装置

Publications (2)

Publication Number Publication Date
CN108090095A CN108090095A (zh) 2018-05-29
CN108090095B true CN108090095B (zh) 2020-09-15

Family

ID=62170953

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611044272.7A Active CN108090095B (zh) 2016-11-23 2016-11-23 批量重建数据库的方法和装置

Country Status (1)

Country Link
CN (1) CN108090095B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109522295B (zh) * 2018-11-16 2021-07-20 中国银行股份有限公司 一种数据库对象自动构建、部署方法及装置
CN109828865A (zh) * 2019-01-24 2019-05-31 北京三快在线科技有限公司 数据恢复方法、装置及电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136335A (zh) * 2013-01-31 2013-06-05 北京千分点信息科技有限公司 一种基于数据平台的数据控制方法
CN103646111A (zh) * 2013-12-25 2014-03-19 普元信息技术股份有限公司 大数据环境下实现实时数据关联的***及方法
CN103914393A (zh) * 2014-04-11 2014-07-09 四川华拓光通信股份有限公司 一种基于mcu的flash不丢失更新存储方法
CN104166661A (zh) * 2013-05-20 2014-11-26 方正宽带网络服务股份有限公司 数据存储***和数据存储方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102142008B (zh) * 2010-12-02 2013-04-17 华为技术有限公司 分布式内存数据库的实现方法、***、令牌控制器及内存数据库

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103136335A (zh) * 2013-01-31 2013-06-05 北京千分点信息科技有限公司 一种基于数据平台的数据控制方法
CN104166661A (zh) * 2013-05-20 2014-11-26 方正宽带网络服务股份有限公司 数据存储***和数据存储方法
CN103646111A (zh) * 2013-12-25 2014-03-19 普元信息技术股份有限公司 大数据环境下实现实时数据关联的***及方法
CN103914393A (zh) * 2014-04-11 2014-07-09 四川华拓光通信股份有限公司 一种基于mcu的flash不丢失更新存储方法

Also Published As

Publication number Publication date
CN108090095A (zh) 2018-05-29

Similar Documents

Publication Publication Date Title
CN106570086B (zh) 数据迁移***及数据迁移方法
EP3251031B1 (en) Techniques for compact data storage of network traffic and efficient search thereof
CN106936441B (zh) 一种数据压缩方法和装置
CN106815326B (zh) 一种检测无主键数据表一致性的***及方法
EP2453370B1 (en) Method and system for specifying, preparing and using parameterized database queries
CN108664480B (zh) 一种多数据源用户信息整合方法和装置
US11593029B1 (en) Identifying a parent event associated with child error states
CN105049287A (zh) 日志处理方法及装置
US20170031948A1 (en) File synchronization method, server, and terminal
CN107977396B (zh) 一种KeyValue数据库的数据表的更新方法与表数据更新装置
CN111190962B (zh) 一种文件同步方法、装置及本地终端
CN110609865A (zh) 一种信息同步方法,装置及***
US11366821B2 (en) Epsilon-closure for frequent pattern analysis
CN108090095B (zh) 批量重建数据库的方法和装置
CN106933916B (zh) Json字符串的处理方法及装置
CN109344163B (zh) 一种数据校验方法、装置和计算机可读介质
CN111026711A (zh) 基于区块链数据存储方法、装置、计算机设备及存储介质
CN109582504A (zh) 一种用于苹果设备的数据恢复方法和装置
CN112307297A (zh) 一种基于优先级规则的用户标识统一方法及***
CN104750834A (zh) 一种规则的存储方法、匹配方法及装置
CN107391551B (zh) 一种基于数据挖掘的web业务数据分析方法及***
CN107203550B (zh) 一种数据处理方法和数据库服务器
CN106294096B (zh) 一种信息处理方法及装置
CN111858609A (zh) 区块链模糊查询方法及装置
CN112328641A (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
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant