CN108241618A - 数据库迁移的方法及装置、服务程序迁移的方法及装置 - Google Patents
数据库迁移的方法及装置、服务程序迁移的方法及装置 Download PDFInfo
- Publication number
- CN108241618A CN108241618A CN201611203424.3A CN201611203424A CN108241618A CN 108241618 A CN108241618 A CN 108241618A CN 201611203424 A CN201611203424 A CN 201611203424A CN 108241618 A CN108241618 A CN 108241618A
- Authority
- CN
- China
- Prior art keywords
- database
- data
- information
- migration
- service routine
- 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/21—Design, administration or maintenance of databases
- G06F16/217—Database tuning
-
- 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/21—Design, administration or maintenance of databases
- G06F16/214—Database migration support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请实施例提供一种数据库迁移方法及装置和服务程序迁移方法及装置,涉及互联网技术领域。所述方法包括:根据第一数据库中数据的结构信息创建第二数据库以及将第一数据库中的数据导入到第二数据库中;判断第一数据库中的数据与第二数据库中的数据是否存在差异,如果是,则对第二数据库中与第一数据库存在差异的数据进行更新操作,否则,完成第一数据库到第二数据库的迁移。本申请实施例可在数据库迁移完成后对数据库进行校验,简化了操作,提高了数据库迁移的准确性。
Description
技术领域
本申请实施例涉及互联网技术领域,尤其涉及一种数据库迁移的方法及装置、一种服务程序迁移的方法及装置。
背景技术
在Java企业应用领域,服务器可选的软硬件平台,种类都非常的多。首先从服务器硬件的选用来讲,国外品牌的IBM,国内品牌的联想,CPU的技术多是使用Intel、AMD等;其次软件方面,中间件多使用国外的Tomcat、WebLogic、WebSphere等;数据库多采用Oracle、SQLServer等。这些软硬件平台的技术虽然比较成熟,但来源大多是国外,对于一些涉密的企业或机构来讲使用起来存在很大的安全隐患,并且制定个性化需求非常困难。
近年来,随着我国的国产基础软硬件取得了飞速的发展,如以龙芯CPU、飞腾CPU、中标麒麟操作系统等一批基础软硬件产品取得了飞速的发展,很多涉密的企业或机构为避免安全隐患,并且定制个性化需求,都选择将服务程序从国外的软硬件平台迁移到国内的软硬件平台。服务程序的迁移也成为一个势在必行的趋势。由于中间件技术、数据库技术的差异,数据库和服务程序的迁移过程比较复杂,并且很容易出现问题,如在数据库迁移的过程中容易出现数据不一致的情况。
因此,如何简捷、准确地完成企业应用中的数据库迁移和服务程序迁移,成为现有技术中亟需解决的技术问题。
发明内容
鉴于上述问题,本申请提供一种数据库迁移的方法及装置和一种服务程序迁移的方法及装置,克服上述问题或者至少部分地解决上述问题。
本申请实施例提供一种迁移数据库的方法,包括:根据第一数据库中数据的结构信息创建第二数据库以及将所述第一数据库中的数据导入到所述第二数据库中;
判断所述第一数据库中的数据与所述第二数据库中的数据是否存在差异,如果是,则对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作,否则,完成第一数据库到第二数据库的迁移。
可选地,在本申请一具体实施例中,所述根据第一数据库中数据的结构信息创建第二数据库包括:根据所述第一数据库中的表、视图、索引、约束、存储过程、函数和触发器的信息任一一种或多种的组合创建所述第二数据库,所述第一数据库中数据的结构信息包括表、视图、索引、约束、存储过程、函数和触发器的信息中的任一一种或多种的组合。
可选地,在本申请一具体实施例中,所述根据第一数据库中数据的结构信息创建第二数据库以及将所述第一数据库中的数据导入到所述第二数据库中包括:
根据第一数据库中数据的结构信息创建第二数据库;
获取所述第一数据库中每个表中的数据;
将所述第一数据库中每个表中的数据添加到所述第二数据库中对应的表中。
可选地,在本申请一具体实施例中,所述判断所述第一数据库中的数据与所述第二数据库中的数据是否存在差异包括:
对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理;
比较所述第一数据库中数据的采样数据与所述第二数据库中数据的采样数据是否存在差异。
可选地,在本申请一具体实施例中,所述第一数据库中表与所述第二数据库中的表分别包含若干行和若干列;
所述对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理包括:按列采样、按行采样中之一或者两者结合的方式对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理。
可选地,在本申请一具体实施例中,所述对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作包括:
获取所述第一数据库中的数据与所述第二数据库中的采样数据的差异的类型,根据所述差异的类型更新所述第二数据库。
可选地,在本申请一具体实施例中,在所述完成数据库的迁移之后包括:
对所述第二数据库进行优化处理,所述优化处理包括优化查询语句、创建索引、优化数据库运行参数。
本申请实施例提供一种服务程序的迁移方法,包括:
获取所述第一系统上服务程序的配置信息,根据所述配置信息将所述服务程序配置到第二系统上;
获取根据以上所述方法得到所述第二数据库的数据库信息,根据所述数据库信息配置所述第二系统上服务程序的数据源。
可选地,在本申请一具体实施例中,所述获取所述第二数据库的数据库信息,根据所述数据库信息配置所述第二系统上服务程序的数据源之后包括:
实时获取所述第二系统上服务程序的运行状态,判断所述运行状态是否异常;
如是,则获取引起所述服务程序的异常原因并根据所述异常原因发送报警信息。
本申请实施例提供一种数据库迁移的装置,包括:
数据迁移模块,用于根据第一数据库中数据的结构信息创建第二数据库以及将所述第一数据库中的数据导入到所述第二数据库中;
数据校验模块,用于判断所述第一数据库中的数据与所述第二数据库中的数据是否存在差异,如果是,则对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作,否则,完成第一数据库到第二数据库的迁移。
可选地,在本申请一具体实施例中,所述数据迁移模块具体用于:根据所述第一数据库中的表、视图、索引、约束、存储过程、函数和触发器的信息任一一种或多种的组合创建所述第二数据库,所述第一数据库中数据的结构信息包括表、视图、索引、约束、存储过程、函数和触发器的信息中的任一一种或多种的组合。
可选地,在本申请一具体实施例中,所述数据迁移模块包括:
数据库创建单元,用于根据第一数据库中数据的结构信息创建第二数据库;
数据获取单元,用于获取所述第一数据库中每个表中的数据;
数据添加单元,用于将所述第一数据库中每个表中的数据添加到所述第二数据库中对应的表中。
可选地,在本申请一具体实施例中,所述数据校验模块包括:
采样单元,用于对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理;
比较单元,用于比较所述第一数据库中数据的采样数据与所述第二数据库中数据的采样数据是否存在差异。
可选地,在本申请一具体实施例中,所述第一数据库中表与所述第二数据库中的表分别包含若干行和若干列;
所述采样单元对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理包括:按列采样、按行采样中之一或者两者结合的方式对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理。
可选地,在本申请一具体实施例中,所述数据校验模块包括:
差异更新单元,用于获取所述第一数据库中的数据与所述第二数据库中的采样数据的差异的类型,根据所述差异的类型更新所述第二数据库。
可选地,在本申请一具体实施例中,所述数据库迁移的装置还包括:
数据库优化模块,用于在所述完成数据库的迁移之后,对所述第二数据库进行优化处理,所述优化处理包括优化查询语句、创建索引、优化数据库运行参数。
本申请实施例提供一种服务程序的迁移装置,包括:
服务配置模块,用于获取所述第一系统上服务程序的配置信息,根据所述配置信息将所述服务程序配置到第二系统上;
数据源设置模块,用于获取以上所述的装置得到所述第二数据库的数据库信息,根据所述数据库信息配置所述第二系统上服务程序的数据源。
可选地,在本申请一具体实施例中,所述装置还包括:
服务监听模块,用于实时获取所述第二系统上服务程序的运行状态,判断所述运行状态是否异常;
报警模块,如服务监听模块判定结果为是,则获取引起所述服务程序的异常原因并根据所述异常原因发送报警信息。
由以上技术方案可见,本申请实施例根据第一数据库中数据的结构信息创建第二数据库,根据第一数据库中数据的结构信息将所述第一数据库中的数据导入到所述第二数据库中;当第一数据库中的数据与第二数据库中的数据是存在差异时,对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作。本申请实施例第一系统上服务程序的配置信息,根据所述配置信息将所述服务程序配置到第二系统上,并将数据源设置为第二数据库。因此,本申请实施例可在数据库迁移完成后对数据库中数据进行校验,当存在差异时对第二数据库进行更新操作,提高了数据库迁移后的准确性,并简化了服务程序迁移的步骤。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请实施例中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1是本申请一种数据库迁移方法的一实施例的流程图;
图2是本申请一种数据库迁移方法的另一实施例的流程图;
图3是本申请一种数据库迁移方法的另一实施例的流程图;
图4是本申请一种数据库迁移方法的另一实施例的流程图;
图5是本申请一种服务程序迁移方法的另一实施例的流程图;
图6是本申请一种服务程序迁移方法的另一实施例的流程图;
图7是本申请一种数据库迁移装置的一实施例的结构图;
图8是本申请一种数据库迁移装置一实施例中数据迁移模块的结构图;
图9是本申请一种数据库迁移装置一实施例中数据校验模块的结构图;
图10是本申请一种数据库迁移装置的另一实施例的结构图;
图11是本申请一种服务程序迁移装置的另一实施例的结构图;
图12是本申请一种服务程序迁移装置的另一实施例的结构图;
图13是本申请一种执行数据库迁移方法、服务程序迁移方法完成后的系统结构示意图;
图14是本申请一执行数据库迁移方法、服务程序迁移方法的一电子设备的硬件结构示意图。
具体实施方式
本申请实施例根据第一数据库中数据的结构信息创建第二数据库,根据第一数据库中数据的结构信息将所述第一数据库中的数据导入到所述第二数据库中,并在对一数据库中的数据与第二数据库中的数据比较,当存在差异时对第二数据库进行更新处理,提高了数据库迁移后的准确性。
当然,实施本申请实施例的任一技术方案不必一定需要同时达到以上的所有优点。
为了使本领域的人员更好地理解本申请实施例中的技术方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请实施例一部分实施例,而不是全部的实施例。基于本申请实施例中的实施例,本领域普通技术人员所获得的所有其他实施例,都应当属于本申请实施例保护的范围。
下面结合本申请实施例附图进一步说明本申请实施例具体实现。
参见图1,在本申请一具体实现中,所述数据库迁移的方法包括:
S101、根据第一数据库中数据的结构信息创建第二数据库,根据第一数据库的结构信息将所述第一数据库中的数据导入到所述第二数据库中。
本实施例中,所述第一数据库中数据的结构信息可以包含对象和数据;对象为具有一定的功能集合的实体,比如对象可以包括:表(Table)、视图(View)、索引(Index)、约束(Constraints)、存储过程(Procedure)、函数(Function)或触发器(Trigger)等。
本实施例中,对于第一数据库,对象中的表包括了一条或者多条记录,该表由行(Row)和列(Column)组成,列由同类的信息组成,每列又称为一个字段(Fields),每列的标题称为字段名;行包括了若干列信息项,一行数据称为一个或一条记录,它表达有一定意义的信息组合。
本实施例中,对于第一数据库,对象中的视图为在第一数据库中快速操作数据而创建的虚拟表。
本实施例中,对于第一数据库,对象中的索引是为避免在表中逐行获取数据而创建的一种用于快速定位数据的数据结构。
本实施例中,对于第一数据库,对象中的约束为对数据的进一步限定,例如可限定某个字段的取值范围。
本实施例中,对于第一数据库,对象中的存储过程是一组为了完成特定功能的SQL(Structured Query Language,结构化查询语言)语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,提高操作数据的效率。
本实施例中,对于第一数据库,对象中的函数是指当需要分析表中的数据是否符合某特定条件时,用于计数和计算的方法。
本实施例中,触发器是一种特殊的存储过程,是在响应数据库中某个特定表或视图上的特定事件时自动执行的程序代码,以维护数据的完整性。
本实施例中,由于第一数据库中数据的结构信息可以包括上述对象和数据,因此,在获取第一数据库中数据的结构信息时,可以获取第一数据库中所有对象和数据。例如,获取第一数据库中与数据最相关的表的信息时,可以获取表的信息包括:表的名称、表中包含的字段以及字段的类型。具体地,在获取表的名称时,可以使用SQL语句获得表的信息,比如使用SQL语句SELECT TABLE_NAME查询获得所有表的名称,使用SQL语句SELECT COLUMN_NAME查询获得表中字段的名称。
本实施例中,在通过上述方法获取到第一数据库中数据的结构信息后,根据获取到结构信息创建第二数据库。具体地,根据第一数据库中对象的信息,在所述第二数据库中创建与其对应的对象。例如,根据获取的第一数据库中的表的信息,在第二数据库中创建与其对应的表,所述表的信息包括表的名称、表中的字段以及字段的类型。可使用SQL语句CREATE TABLE创建表。
本申请实施例中,完成数据库的创建后,遍历第一数据库中的每张表,查询获得获取表中的数据,并将查询获得数据添加到第二数据库中对应的表中。
S102、判断所述第一数据库中的数据与所述第二数据库中的数据是否存在差异,如果是,则对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作,否则,完成第一数据库到第二数据库的迁移。
本实施例中,本步骤通过第一数据库中的表的数据与所述第二数据库中的数据进行比较,以判断数据库迁移的正确性。当第一数据库中的数据与第二数据库中的数据存在差异时,根据第一数据库中的数据,对第二数据库中的数据进行更新处理,以使上述的两个数据库中的数据的相同。当更新完第二数据库后,重新判断第一数据库中的数据与第二数据库是否存在差异,直至差异消除,完成第一数据库到第二数据库的迁移。
本实施例中,所述第一数据库可以是非国产数据库,如Oracle,MySql等,所述第二数据库可以是国产数据库,如神通数据库等。国产数据库相对于非国产数据库更安全可控。
由上述步骤可得出,本实施例根据第一数据库中数据的结构信息创建第二数据库,根据第一数据库中数据的结构信息将所述第一数据库中的数据导入到所述第二数据库中,并在对一数据库中的数据与第二数据库中的数据比较,当存在差异时对第二数据库进行更新处理,以确保数据库迁移后的准确性。
参见图2,在本申请一具体实现中,所述步骤S101包括:
S111、根据第一数据库中数据的结构信息创建第二数据库。
本实施例中,本步骤见上述图2实施例中的S101。在此不再赘述。
S121、依次获取所述第一数据库中每个表中的数据。
本实施例中,完成第二数据库的创建后,首先获取第一数据库中包含的所有表,然后遍历所述第一数据库中的每个表,查询获得获取每个表中的数据。例如,可使用SQL语句SELECT*TABLENAME查询获得每个表中的全部数据。
S131、将所述第一数据库中每个表中的数据添加到所述第二数据库中对应的表中。
本实施例中,将步骤S121中查询获得数据添加到第二数据库中对应的表中。例如,使用SQL语句INSERT将查询获得的数据添加到第二数据库中对应的表中。
本实施例通过查询第一数据库中每个表的数据,将数据添加到第二数据库对应的表中,完成数据库中数据的迁移。
参见图3,在本申请一具体实现中,所述步骤S102包括:
S112、对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理。
本实施例中,具体地,为避免将第一数据库中的全部数据与第二数据库中的全部数据进行对比处理,对上述两个数据库中的数据进行采样处理,并对采样数据进行对,从而减少运算量。具体地,在对采样数据对比时,是对上述两个数据库中同名的两个表中相同位置(相同行、相同列)的数据进行对比,因此,对上述两个数据库按照相同采样规则进行采样。
本实施例中,在采样时,采样的规则比如可以是按行采样、按列采样或行列结合采样;例如,遍历第一数据库中所有的表,获得每一个表的总行数,在1到总行数之间生成一随机数n,作为采样的当前行数;获取当前表中第n行的数据,作为第一采样数据,并获取第二数据库中第n行的数据,作为第二采样数据。比较第一采样数据与第二采样数据,如不同,则表示第一数据库中的数据与第二数据库中的数据存在差异。
在本实施例中,对上述数据库进行采样比较的次数越多,判定第一数据库中的数据与第二数据库中的数据是否存在差异的结果越准确。
S122、比较所述第一数据库中数据的采样数据与所述第二数据库中数据的采样数据是否存在差异。
比较第一采样数据与第二采样数据,如不同,则表示第一数据库中的数据与第二数据库中的数据存在差异。
如步骤S122判断结果为是,则执行下述步骤S132。
S132、获取所述第一数据库中的采样数据与所述第二数据库中的采样数据的差异的类型,根据所述差异的类型更新所述第二数据库。
在本实施例中,所述差异类型包括行数据差异、列数据差异。如第一数据库与第二数据库中同名的两个表中的数据存在差异,并且差异类型为行数据差异,则获得第二数据库中该表中差异数据所在行的行号n,查询第一数据库中对应表中第n行的数据,将获得的数据更新到第二数据库对应表的第n行中,例如可使用SQL使用UPDATE TABLE修改第二数据库对应表中第n行的数据。当第一数据库与第二数据库中同名的两个表中的数据存在差异,并且差异类型为列数据差异时,如某一列中数据的精确度存在差异时,则获得第二数据库中该表中差异数据所在行的列号m,并获得第一数据库中对应表中第m列数据的精确度,可使用SQL语句ALTER TABLE将第二数据库对应表中m列中数据的精确度修改为获得的第一数据库中对应表中第m列数据的精确度。
从上述步骤可得出,本实施例对第一数据库中的数据与第二数据库中的数据按照相同采样规则进行采样处理,对所述采样数据进行对比,当所述采样数据存在差异时获得差异类型,根据差异类型对第二数据库进行更新。减少了处理器的运算量,提高了数据迁移的效率。
参见图4,在本申请另一具体实现中,与上述图1实施例不同的是,增加了数据库优化处理步骤,具体地所述方法包括:
S101、根据第一数据库中数据的结构信息创建第二数据库,根据第一数据库的结构信息将所述第一数据库中的数据导入到所述第二数据库中。
S102、判断所述第一数据库中的数据与所述第二数据库中的数据是否存在差异,如果是,则对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作,否则,完成第一数据库到第二数据库的迁移。
所述步骤S101、S102见图1对应实施例,在此不再赘述。
S103、对所述第二数据库进行优化处理,所述优化处理包括优化查询语句、创建索引、优化数据库运行参数。
具体地,以优化查询语句为例,包括:将SQL语句中的minus替换为not in。在实现本发明的过程中发明人发现,minus与not in都可以实现筛选数据的功能,但minus在完成筛选数据后会对筛选结果进行重新排序操作,查询效率比较低;而not in只进行筛选数据,查询效率比较高。再例如:如果条件语句in关键字的传入参数过多,将传入参数替换成子查询的方式。in关键字会在传入参数中逐一遍历符合条件的数据,而使用子查询的方法可对传入参数进行预查询处理,以减少in关键字进行筛选数据时的运算量,从而提高查询效率。
以创建索引为例,当查询语句涉及到较多表,并且查询条件复杂时,建立索引,以对表中的数据进行快速的定位,以高效地查询数据,在SQL语句中,可使用CREATE INDEX创建索引。
以优化数据库运行参数为例,修改数据库运行参数,将数据库中执行器的排序最大内存参数(SORT_MEM)由4096KB调至102400KB;数据缓存页参数(BUF_DATA_BUFFER_PAGES)由8192调至170000;将连接最大闲置时间参数(SESSION_TIMEOUT)由0调至7200;将一次性获取结果集行数参数(fetchSize)由16调至256;控制SQL语句中全角符号兼容性参数(FULL_WIDTH_CHAR_COMPATIBLE)修改为TRUE;控制in传入参数个数(MIN_IN_ELEMENT)由10调至1000。
由本申请实施例在完成第一数据库到第二数据库的迁移后,对所述第二数据库进行优化处理,大大提高了数据查询的效率。
参见图5,在本申请一具体实现中,所述服务程序迁移的方法包括:
S201、获取所述第一系统上服务程序的配置信息,根据所述配置信息将所述服务程序配置到第二系统上。
在本实施例中,所述服务程序包含一个或若干个服务子单元,所述服务子单元具体可通过编程语言编译获得。以Java语言为例,将服务子单元对应的源码编译成war包,所述war包即为服务子单元。通过中间件技术,可为服务子单元配置一个访问地址,以通过该访问地址来访问所述服务子单元。所述中间件技术属于现有技术,在此不做赘述。
在本实施例中,首先获取第一系统上服务程序的配置信息,所述第一系统可以是Windows,所述服务程序的配置信息包括服务程序中的服务子单元及与其对应的访问地址;然后根据所述配置信息,将所述服务子单元及与其对应的访问地址逐一设置到第二系统上,所述第二系统可以是Linux。
S202、获取根据图1至图4对应实施例得到的所述第二数据库的数据库信息,根据所述数据库信息配置所述第二系统上服务程序的数据源。
本实施例中,所述第一系统可以是非国产操作系统,如Windows Server等,所述第二系统可以是国产操作系统,如麒麟Linux等,其运行于国产服务器上,所述国产服务器可以是龙芯3B服务器,其,内配置64位寻址、1GHZ主频、16核的CPU,运行内存32G,配置16T硬盘。国产操作系统相对于非国产操作系统更安全可控,处理器执行速率更高。
在本实施例中,获取完成迁移的第二数据库的信息,包括数据库IP地址、数据名称。将所述第二数据库的IP地址和数据库名称替换掉第二系统上服务程序的数据源的IP地址、数据库名称。
参见图6,在本申请另一具体实现中,与上述图5实施例不同的是,增加了对第二系统服务程序运行状态的监听步骤,具体地所述方法包括在本申请一具体实现中,所述方法包括:
S201、获取所述第一系统上服务程序的配置信息,根据所述配置信息将所述服务程序配置到第二系统上。
S202、获取根据图1至图4对应实施例得到的所述第二数据库的数据库信息,根据所述数据库信息配置所述第二系统上服务程序的数据源。
所述步骤S201、S202见图5对应实施例,在此不再赘述。
S203、实时获取所述第二系统上服务程序的运行状态,判断所述运行状态是否异常。
在本实施例中,以Linux为例,可以使用service status命令获取服务的运行状态,如果获得的运行状态为running,则表示服务程序运行状态正常,否则,则服务程序运行状态异常。
如步骤S203判断结果为是,则进行下述步骤S602:
S204、获取引起所述服务程序的异常原因并根据所述异常原因发送报警信息。
在本实施例中,异常原因包括硬件异常、第二数据库异常、以及第二系统上服务程序的异常,当获得异常原因后通过发送短信等方式,向服务程序的运维人员发送报警信息。
在本实施例中通过实时检测服务程序的运行状态,当服务程序出现异常时尽快通知运维人员,从而确保系统出现问题时可及时解决。
参见图7,在本申请一具体实现中,所述数据库迁移的装置包括数据迁移模块701以及数据校验模块702,其中:
数据迁移模块701用于根据第一数据库中数据的结构信息创建第二数据库,根据第一数据库的结构信息将所述第一数据库中的数据导入到所述第二数据库中。
本实施例中,所述第一数据库中数据的结构信息可以包含对象和数据;对象为具有一定的功能集合的实体,比如对象可以包括:表(Table)、视图(View)、索引(Index)、约束(Constraints)、存储过程(Procedure)、函数(Function)或触发器(Trigger)等。
本实施例中,对于第一数据库,对象中的表包括了一条或者多条记录,该表由行(Row)和列(Column)组成,列由同类的信息组成,每列又称为一个字段(Fields),每列的标题称为字段名;行包括了若干列信息项,一行数据称为一个或一条记录,它表达有一定意义的信息组合。
本实施例中,对于第一数据库,对象中的视图为在第一数据库中快速操作数据而创建的虚拟表。
本实施例中,对于第一数据库,对象中的索引是为避免在表中逐行获取数据而创建的一种用于快速定位数据的数据结构。
本实施例中,对于第一数据库,对象中的约束为对数据的进一步限定,例如可限定某个字段的取值范围。
本实施例中,对于第一数据库,对象中的存储过程是一组为了完成特定功能的SQL(Structured Query Language,结构化查询语言)语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,提高操作数据的效率。
本实施例中,对于第一数据库,对象中的函数是指当需要分析表中的数据是否符合某特定条件时,用于计数和计算的方法。
本实施例中,触发器是一种特殊的存储过程,是在响应数据库中某个特定表或视图上的特定事件时自动执行的程序代码,以维护数据的完整性。
本申请实施例中,由于第一数据库中数据的结构信息可以包括上述对象和数据,因此,在获取第一数据库中数据的结构信息时,可以获取第一数据库中所有对象和数据。例如,获取第一数据库中与数据最相关的表的信息时,可以获取表的信息包括:表的名称、表中包含的字段以及字段的类型。具体地,在获取表的名称时,可以使用SQL语句获得表的信息,比如使用SQL语句SELECT TABLE_NAME查询获得所有表的名称,使用SQL语句SELECTCOLUMN_NAME查询获得表中字段的名称。
本实施例中,在通过上述方法获取到第一数据库中数据的结构信息后,根据获取到结构信息创建第二数据库。具体地,根据第一数据库中对象的信息,在所述第二数据库中创建与其对应的对象。例如,根据获取的第一数据库中的表的信息,在第二数据库中创建与其对应的表,所述表的信息包括表的名称、表中的字段以及字段的类型。可使用SQL语句CREATE TABLE创建表。
本申请实施例中,完成数据库的创建后,遍历第一数据库中的每张表,查询获得获取表中的数据,并将查询获得数据添加到第二数据库中对应的表中。
数据校验模块702用于判断所述第一数据库中的数据与所述第二数据库中的数据是否存在差异,如果是,则对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作,否则,完成第一数据库到第二数据库的迁移。
本实施例中,数据校验模块702通过第一数据库中的表的数据与所述第二数据库中的数据进行比较,以判断数据库迁移的正确性。当第一数据库中的数据与第二数据库中的数据存在差异时,根据第一数据库中的数据,对第二数据库中的数据进行更新处理,以使上述的两个数据库中的数据的相同。当更新完第二数据库后,重新判断第一数据库中的数据与第二数据库是否存在差异,直至差异消除,完成第一数据库到第二数据库的迁移。
本实施例中,所述第一数据库可以是非国产数据库,如Oracle,MySql等,所述第二数据库可以是国产数据库,如神通数据库等。国产数据库相对于非国产数据库更安全可控。
由上述描述可得出,本申请实施例根据第一数据库中数据的结构信息创建第二数据库,根据第一数据库中数据的结构信息将所述第一数据库中的数据导入到所述第二数据库中,并在对一数据库中的数据与第二数据库中的数据比较,当存在差异时对第二数据库进行更新处理,以确保数据库迁移后的准确性。
参见图8,在本申请一具体实现中,所述数据迁移模块701包括数据库创建单元711、数据获取单元721及数据添加单元731,其中:
数据库创建单元711用于根据第一数据库中数据的结构信息创建第二数据库。具体见图7对应实施例中迁移模块创建第二数据库,在此不再赘述。
数据获取单元721用于依次获取所述第一数据库中每个表中的数据。
本实施例中,完成第二数据库的创建后,首先获取第一数据库中包含的所有表,然后遍历所述第一数据库中的每个表,查询获得获取每个表中的数据。例如,可使用SQL语句SELECT*TABLENAME查询获得每个表中的全部数据。
数据添加单元731用于将所述第一数据库中每个表中的数据添加到所述第二数据库中对应的表中。
本实施例中,将数据获取单元721查询获得数据添加到第二数据库中对应的表中。例如,使用SQL语句INSERT将查询获得的数据添加到第二数据库中对应的表中。
本实施例通过查询第一数据库中每个表的数据,将数据添加到第二数据库对应的表中,完成数据库中数据的迁移。
参见图9,在本申请一具体实现中,所述数据校验模块702包括采样单元712、比较单元722以及差异更新单元732,其中:
采样单元712用于对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理。
本实施例中,具体地,为避免将第一数据库中的全部数据与第二数据库中的全部数据进行对比处理,对上述两个数据库中的数据进行采样处理,并对采样数据进行对,从而减少运算量。具体地,在对采样数据对比时,是对上述两个数据库中同名的两个表中相同位置(相同行、相同列)的数据进行对比,因此,对上述两个数据库按照相同采样规则进行采样。
本实施例中,在采样时,可以按行采样、按列采样或行列结合采样;例如,遍历第一数据库中的所有的表,获得当前表的总行数,在1到总行数之间生成一随机数n,作为采样的当前行数;获取当前表中第n行的数据,作为第一采样数据,并获取第二数据库中第n行的数据,作为第二采样数据。比较第一采样数据与第二采样数据,如不同,则表示第一数据库中的数据与第二数据库中的数据存在差异。
在本实施例中,对上述数据库进行采样比较的次数越多,判定第一数据库中的数据与第二数据库中的数据是否存在差异的结果越准确。
比较单元722用于比较所述第一数据库中数据的采样数据与所述第二数据库中数据的采样数据是否存在差异。
比较第一采样数据与第二采样数据,如不同,则表示第一数据库中的数据与第二数据库中的数据存在差异。
差异更新单元732用于当比较单元722判断结果为是时,获取所述第一数据库中的数据与所述第二数据库中的采样数据的差异的类型,根据所述差异的类型更新所述第二数据库。
在本实施例中,所述差异类型包括行数据差异、列数据差异。如第一数据库与第二数据库中同名的两个表中的数据存在差异,并且差异类型为行数据差异,则获得第二数据库中该表中差异数据所在行的行号n,查询第一数据库中对应表中第n行的数据,将获得的数据更新到第二数据库对应表的第n行中,例如可使用SQL使用UPDATE TABLE修改第二数据库对应表中第n行的数据。当第一数据库与第二数据库中同名的两个表中的数据存在差异,并且差异类型为列数据差异时,如某一列中数据的精确度存在差异时,则获得第二数据库中该表中差异数据所在行的列号m,并获得第一数据库中对应表中第m列数据的精确度,可使用SQL语句ALTER TABLE将第二数据库对应表中m列中数据的精确度修改为获得的第一数据库中对应表中第m列数据的精确度。
从上述描述可得出,本实施例对第一数据库中的数据与第二数据库中的数据按照相同采样规则进行采样处理,对所述采样数据进行对比,当所述采样数据存在差异时获得差异类型,根据差异类型对第二数据库进行更新。减少了处理器的运算量,提高了数据迁移的效率。
参见图10,在本申请另一具体实现中,与上述图7实施例不同的是,增加了数据库优化模块703,其中:
数据迁移模块701用于根据第一数据库中数据的结构信息创建第二数据库,根据第一数据库的结构信息将所述第一数据库中的数据导入到所述第二数据库中。
数据校验模块702用于判断所述第一数据库中的数据与所述第二数据库中的数据是否存在差异,如果是,则对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作,否则,完成第一数据库到第二数据库的迁移。
所述数据迁移模块701、数据校验模块702见图7对应实施例,在此不再赘述。
数据库优化模块703用于对所述第二数据库进行优化处理,所述优化处理包括优化查询语句、创建索引、优化数据库运行参数。
具体地,以优化查询语句为例,包括:将SQL语句中的minus替换为not in。在实现本发明的过程中发明人发现,minus与not in都可以实现筛选数据的功能,但minus在完成筛选数据后会对筛选结果进行重新排序操作,查询效率比较低;而not in只进行筛选数据,查询效率比较高。再例如:如果条件语句in关键字的传入参数过多,将传入参数替换成子查询的方式。in关键字会在传入参数中逐一遍历符合条件的数据,而使用子查询的方法可对传入参数进行预查询处理,以减少in关键字进行筛选数据时的运算量,从而提高查询效率。
以创建索引为例,当查询语句涉及到很多表,并且查询条件复杂时,建立索引。索引可以对表中的数据进行快速的定位,以高效地查询数据,在SQL语句中,可使用CREATEINDEX创建索引。
以优化数据库运行参数为例,修改数据库运行参数,将数据库中执行器的排序最大内存参数(SORT_MEM)由4096KB调至102400KB;数据缓存页参数(BUF_DATA_BUFFER_PAGES)由8192调至170000;将连接最大闲置时间参数(SESSION_TIMEOUT)由0调至7200;将一次性获取结果集行数参数(fetchSize)由16调至256;控制SQL语句中全角符号兼容性参数(FULL_WIDTH_CHAR_COMPATIBLE)修改为TRUE;控制in传入参数个数(MIN_IN_ELEMENT)由10调至1000。
由本申请实施例在完成第一数据库到第二数据库的迁移后,对所述第二数据库进行优化处理,大大提高了数据查询的效率。
参见图11,在本申请一具体实现中,所述服务程序迁移的装置包括服务配置模块801、数据源设置模块802,其中:
服务配置模块801用于获取所述第一系统上服务程序的配置信息,根据所述配置信息将所述服务程序配置到第二系统上。
在本实施例中,所述服务程序包含一个或若干个服务子单元,所述服务单元具体可通过编程语言编译获得。以Java语言为例,将服务子单元对应的源码编译成war包,所述war包即为服务子单元。通过中间件技术,可为服务子单元配置一个访问地址,以通过该访问地址来访问所述服务子单元。所述中间件技术属于现有技术,在此不做赘述。
在本实施例中,首先获取第一系统上服务程序的配置信息,所述第一系统可以是Windows,所述服务程序的配置信息包括服务程序中的服务子单元及与其对应的访问地址;然后根据所述配置信息,将所述服务子单元及与其对应的访问地址逐一设置到第二系统上,所述第二系统可以是Linux。
数据源设置模块802用于获取根据图7至图10对应实施例得到的所述第二数据库的数据库信息,根据所述数据库信息配置所述第二系统上服务程序的数据源。
本实施例中,所述第一系统可以是非国产操作系统,如Windows Server等,所述第二系统可以是国产操作系统,如麒麟Linux等,其运行于国产服务器上,所述国产服务器可以是龙芯3B服务器,其,内配置64位寻址、1GHZ主频、16核的CPU,运行内存32G,配置16T硬盘。国产操作系统相对于非国产操作系统更安全可控,处理器执行速率更高。
在本实施例中,获取完成迁移的第二数据库的信息,包括数据库IP地址、数据名称。将所述第二数据库的IP地址和数据库名称替换掉第二系统上服务程序的数据源的IP地址、数据库名称。
参见图12,在本申请另一具体实现中,与上述图1实施例不同的是,增加了803,报警模块804,其中:
服务配置模块801用于获取所述第一系统上服务程序的配置信息,根据所述配置信息将所述服务程序配置到第二系统上
数据源设置模块802用于获取根据图7至图10对应实施例得到的所述第二数据库的数据库信息,根据所述数据库信息配置所述第二系统上服务程序的数据源。
服务配置模块801、数据源设置模块802具体见图11对应实施例,在此不再赘述。
服务监听模块803用于实时获取所述第二系统上服务程序的运行状态,判断所述运行状态是否异常。
在本实施例中,以Linux为例,可以使用service status命令获取服务的运行状态,如果获得的运行状态为running,则表示服务程序运行状态正常,否则,则服务程序运行状态异常。
报警模块804用于当监听模块803判定结果为是时,获取引起所述服务程序的异常原因并根据所述异常原因发送报警信息。
在本实施例中,异常原因包括软件原因和硬件原因,获得异常原因后看通告发送短信等方式,向服务程序的运维人员发送报警信息。
在本实施例中通过实时检测服务程序的运行状态,当服务程序出现异常时尽快通知运维人员,从而保障系统出现问题时可及时解决。
参见图13,在本申请另一具体实现中,提供一种执行数据库迁移方法、服务程序迁移方法完成后的系统。如图13所示,该系统包括:
服务端501至少两个包括两个国产服务器502,分别用于部署所述第二系统的服务程序和第二数据库。其中一个两个国产服务器502作为应用服务器,另外一个两个国产服务器502作为数据库服务器。所述国产服务器502具体可以是龙芯3B服务器,内配置64位寻址、1GHZ主频、16核的CPU,32G内存,16T硬盘。以上配置只是对本实施例中国产服务器进行地适应性说明,国产服务器可以是其他配置,本实施例并不对此进行限定。
在本实施例中,所述国产服务器502均安装有国产操作系统503,所述国产操作系统503可以是麒麟Linux操作系统,作为上述第二系统。其中,麒麟Linux操作系统不仅安全可控,而且相对于windows server系统运行速度更快。
在本实施例中,其中一国产操作系统503上安装有国产数据库504,作为所述第二数据库,国产数据库504内存储有应用数据505。具体地,国产数据库504可以是神通数据库。另一国产操作系统503上安装有国产中间件506,所述国产中间件506设置有Java企业应用507。具体地,国产中间件可以是Tongweb。可将应用数据505设置为Java企业应用507的数据源,从而Java企业应用507可以访问应用数据505。
在本实施例中,可通过远程配置终端508,对上述国产操作系统503进行远程控制,可对其进行操作、控制、监控等处理。例如,可对服务进行实时部署、实时分析、实时监控等。具体地,远程配置终端508可以是Xmanager,其可通过ssh服务对国产操作系统503进行远程操控。
在本实施例中,可通过客户端509对上述国产中间件506进行访问,获取用户数据。
由上述描述可得出,本实施例通过将第二数据库与第二服务程序设置到国产服务器及操作操作系统上,并在硬件的选用及参数的配置上进行优化,以使在完成数据库及服务程序的迁移后,系统运行效率更高,更稳定。
图14是本申请执行数据库迁移方法、服务程序迁移方法的一些电子设备的硬件结构示意图。根据图14所示,该设备包括:
一个或多个处理器910以及存储器920,图14中以一个处理器910为例。
执行数据库迁移方法、服务程序迁移方法的设备还可以包括:输入装置930和输出装置930。
处理器910、存储器920、输入装置930和输出装置940可以通过总线或者其他方式连接,图14中以通过总线连接为例。
存储器920作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的数据库迁移方法、服务程序迁移方法对应的程序指令/模块。处理器910通过运行存储在存储器920中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中数据库迁移方法、服务程序迁移的方法。
存储器920可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据数据库迁移装置、服务程序迁移装置的使用所创建的数据等。此外,存储器920可以包括高速随机存取存储器920,还可以包括非易失性存储器920,例如至少一个磁盘存储器920件、闪存器件、或其他非易失性固态存储器920件。在一些实施例中,存储器920可选包括相对于处理器910远程设置的存储器920,这些远程存储器920可以通过网络连接至数据库迁移装置、服务程序迁移装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置930可接收输入的数字或字符信息,以及产生与数据库迁移装置、服务程序迁移装置的用户设置以及功能控制有关的键信号输入。输入装置930可包括按压模组等设备。
所述一个或者多个模块存储在所述存储器920中,当被所述一个或者多个处理器910执行时,执行上述任意方法实施例中的数据库迁移方法、服务程序迁移方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器910、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,所述计算机可读记录介质包括用于以计算机(例如计算机)可读的形式存储或传送信息的任何机制。例如,机器可读介质包括只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪速存储介质、电、光、声或其他形式的传播信号(例如,载波、红外信号、数字信号等)等,该计算机软件产品包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请实施例的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (18)
1.一种数据库迁移的方法,其特征在于,包括:
根据第一数据库中数据的结构信息创建第二数据库以及将所述第一数据库中的数据导入到所述第二数据库中;
判断所述第一数据库中的数据与所述第二数据库中的数据是否存在差异,如果是,则对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作,否则,完成第一数据库到第二数据库的迁移。
2.根据权利要求1所述的方法,其特征在于,所述根据第一数据库中数据的结构信息创建第二数据库包括:根据所述第一数据库中的表、视图、索引、约束、存储过程、函数和触发器的信息任一一种或多种的组合创建所述第二数据库,所述第一数据库中数据的结构信息包括表、视图、索引、约束、存储过程、函数和触发器的信息中的任一一种或多种的组合。
3.根据权利要求2所述的方法,其特征在于,所述根据第一数据库中数据的结构信息创建第二数据库以及将所述第一数据库中的数据导入到所述第二数据库中包括:
根据第一数据库中数据的结构信息创建第二数据库;
依次获取所述第一数据库中每个表中的数据;
将所述第一数据库中每个表中的数据添加到所述第二数据库中对应的表中。
4.根据权利要求1所述的方法,其特征在于,所述判断所述第一数据库中的数据与所述第二数据库中的数据是否存在差异包括:
对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理;
比较所述第一数据库中数据的采样数据与所述第二数据库中数据的采样数据是否存在差异。
5.根据权利要求4所述的方法,其特征在于,所述第一数据库中表与所述第二数据库中的表分别包含若干行和若干列;
所述对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理包括:按列采样、按行采样中之一或者两者结合的方式对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理。
6.根据权利要求1所述的方法,其特征在于,所述对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作包括:
获取所述第一数据库中的数据与所述第二数据库中的采样数据的差异的类型,根据所述差异的类型更新所述第二数据库。
7.根据权利要求6所述的方法,其特征在于,在所述完成数据库的迁移之后包括:
对所述第二数据库进行优化处理,所述优化处理包括优化查询语句、创建索引、优化数据库运行参数。
8.一种服务程序的迁移方法,其特征在于,包括:
获取所述第一系统上服务程序的配置信息,根据所述配置信息将所述服务程序配置到第二系统上;
获取根据权利要求1-7任一项所述的方法得到所述第二数据库的数据库信息,根据所述数据库信息配置所述第二系统上服务程序的数据源。
9.根据权利要求8所述的方法,其特征在于,所述获取所述第二数据库的数据库信息,根据所述数据库信息配置所述第二系统上服务程序的数据源之后包括:
实时获取所述第二系统上服务程序的运行状态,判断所述运行状态是否异常;
如是,则获取引起所述服务程序的异常原因并根据所述异常原因发送报警信息。
10.一种数据库迁移的装置,其特征在于,包括:
数据迁移模块,用于根据第一数据库中数据的结构信息创建第二数据库以及将所述第一数据库中的数据导入到所述第二数据库中;
数据校验模块,用于判断所述第一数据库中的数据与所述第二数据库中的数据是否存在差异,如果是,则对所述第二数据库中与所述第一数据库存在差异的数据进行更新操作,否则,完成第一数据库到第二数据库的迁移。
11.根据权利要求10所述的装置,其特征在于,所述数据迁移模块具体用于:根据所述第一数据库中的表、视图、索引、约束、存储过程、函数和触发器的信息任一一种或多种的组合创建所述第二数据库,所述第一数据库中数据的结构信息包括表、视图、索引、约束、存储过程、函数和触发器的信息中的任一一种或多种的组合。
12.根据权利要求11所述的装置,其特征在于,所述数据迁移模块包括:
数据库创建单元,用于根据第一数据库中数据的结构信息创建第二数据库;
数据获取单元,用于依次获取所述第一数据库中每个表中的数据;
数据添加单元,用于将所述第一数据库中每个表中的数据添加到所述第二数据库中对应的表中。
13.根据权利要求10所述的装置,其特征在于,所述数据校验模块包括:
采样单元,用于对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理;
比较单元,用于比较所述第一数据库中数据的采样数据与所述第二数据库中数据的采样数据是否存在差异。
14.根据权利要求13所述的装置,其特征在于,所述第一数据库中表与所述第二数据库中的表分别包含若干行和若干列;
所述采样单元对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理包括:按列采样、按行采样中之一或者两者结合的方式对所述第一数据库中的数据与所述第二数据库中的数据按照相同采样规则进行采样处理。
15.根据权利要求10所述的装置,其特征在于,所述数据校验模块包括:
差异更新单元,用于获取所述第一数据库中的数据与所述第二数据库中的采样数据的差异的类型,根据所述差异的类型更新所述第二数据库。
16.根据权利要求15所述的装置,其特征在于,还包括:
数据库优化模块,用于在所述完成数据库的迁移之后,对所述第二数据库进行优化处理,所述优化处理包括优化查询语句、创建索引、优化数据库运行参数。
17.一种服务程序的迁移装置,其特征在于,包括:
服务配置模块,用于获取所述第一系统上服务程序的配置信息,根据所述配置信息将所述服务程序配置到第二系统上;
数据源设置模块,用于获取根据权利要求10-16任一项所述的装置得到所述第二数据库的数据库信息,根据所述数据库信息配置所述第二系统上服务程序的数据源。
18.根据权利要求17所述的装置,其特征在于,所述装置还包括:
服务监听模块,用于实时获取所述第二系统上服务程序的运行状态,判断所述运行状态是否异常;
报警模块,如服务监听模块判定结果为是,则获取引起所述服务程序的异常原因并根据所述异常原因发送报警信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611203424.3A CN108241618B (zh) | 2016-12-23 | 2016-12-23 | 数据库迁移的方法及装置、服务程序迁移的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611203424.3A CN108241618B (zh) | 2016-12-23 | 2016-12-23 | 数据库迁移的方法及装置、服务程序迁移的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108241618A true CN108241618A (zh) | 2018-07-03 |
CN108241618B CN108241618B (zh) | 2022-05-17 |
Family
ID=62703322
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611203424.3A Active CN108241618B (zh) | 2016-12-23 | 2016-12-23 | 数据库迁移的方法及装置、服务程序迁移的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108241618B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502563A (zh) * | 2019-08-26 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 一种多数据源的数据的处理方法及装置、存储介质 |
CN111382140A (zh) * | 2018-12-29 | 2020-07-07 | 方正国际软件(北京)有限公司 | 数据库序列迁移的方法及电子设备 |
CN111831755A (zh) * | 2020-07-23 | 2020-10-27 | 北京思特奇信息技术股份有限公司 | 一种跨数据库数据同步方法、系统、介质及设备 |
CN112380186A (zh) * | 2020-11-06 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种基于主动适配的国产数据库迁移方法 |
WO2021179461A1 (zh) * | 2020-03-12 | 2021-09-16 | 深圳中兴网信科技有限公司 | 信息处理方法、信息处理装置和计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818325B1 (en) * | 2001-10-10 | 2010-10-19 | Google Inc. | Serving geospatially organized flat file data |
CN103019845A (zh) * | 2012-12-10 | 2013-04-03 | 中国人民解放军理工大学 | 一种异构数据库平台下应用程序零修改迁移的方法 |
CN103440273A (zh) * | 2013-08-06 | 2013-12-11 | 北京航空航天大学 | 一种数据跨平台迁移方法及装置 |
CN104573056A (zh) * | 2015-01-22 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于oracle数据库大数据量在线迁移的方法 |
CN105373599A (zh) * | 2015-10-28 | 2016-03-02 | 北京汇商融通信息技术有限公司 | 基于多种数据存储平台的数据迁移系统 |
CN104572672B (zh) * | 2013-10-15 | 2018-10-02 | 北大方正集团有限公司 | 异构数据库的同步方法和应用系统 |
-
2016
- 2016-12-23 CN CN201611203424.3A patent/CN108241618B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7818325B1 (en) * | 2001-10-10 | 2010-10-19 | Google Inc. | Serving geospatially organized flat file data |
CN103019845A (zh) * | 2012-12-10 | 2013-04-03 | 中国人民解放军理工大学 | 一种异构数据库平台下应用程序零修改迁移的方法 |
CN103440273A (zh) * | 2013-08-06 | 2013-12-11 | 北京航空航天大学 | 一种数据跨平台迁移方法及装置 |
CN104572672B (zh) * | 2013-10-15 | 2018-10-02 | 北大方正集团有限公司 | 异构数据库的同步方法和应用系统 |
CN104573056A (zh) * | 2015-01-22 | 2015-04-29 | 浪潮电子信息产业股份有限公司 | 一种基于oracle数据库大数据量在线迁移的方法 |
CN105373599A (zh) * | 2015-10-28 | 2016-03-02 | 北京汇商融通信息技术有限公司 | 基于多种数据存储平台的数据迁移系统 |
Non-Patent Citations (1)
Title |
---|
闪四清: "《SQL Server 2000系统管理指南》", 31 January 2001, 清华大学出版社 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111382140A (zh) * | 2018-12-29 | 2020-07-07 | 方正国际软件(北京)有限公司 | 数据库序列迁移的方法及电子设备 |
CN111382140B (zh) * | 2018-12-29 | 2023-06-16 | 方正国际软件(北京)有限公司 | 数据库序列迁移的方法及电子设备 |
CN110502563A (zh) * | 2019-08-26 | 2019-11-26 | 腾讯科技(深圳)有限公司 | 一种多数据源的数据的处理方法及装置、存储介质 |
CN110502563B (zh) * | 2019-08-26 | 2023-09-29 | 腾讯科技(深圳)有限公司 | 一种多数据源的数据的处理方法及装置、存储介质 |
WO2021179461A1 (zh) * | 2020-03-12 | 2021-09-16 | 深圳中兴网信科技有限公司 | 信息处理方法、信息处理装置和计算机可读存储介质 |
CN111831755A (zh) * | 2020-07-23 | 2020-10-27 | 北京思特奇信息技术股份有限公司 | 一种跨数据库数据同步方法、系统、介质及设备 |
CN111831755B (zh) * | 2020-07-23 | 2024-01-16 | 北京思特奇信息技术股份有限公司 | 一种跨数据库数据同步方法、系统、介质及设备 |
CN112380186A (zh) * | 2020-11-06 | 2021-02-19 | 福建亿榕信息技术有限公司 | 一种基于主动适配的国产数据库迁移方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108241618B (zh) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10839071B2 (en) | Computer telemetry analysis | |
CN108241618A (zh) | 数据库迁移的方法及装置、服务程序迁移的方法及装置 | |
US9916368B2 (en) | Non-exclusionary search within in-memory databases | |
US20100082577A1 (en) | Multidimensional data space queries with expression evaluation | |
US11216474B2 (en) | Statistical processing of natural language queries of data sets | |
JP5791149B2 (ja) | データベース・クエリ最適化のためのコンピュータで実装される方法、コンピュータ・プログラム、およびデータ処理システム | |
CN112154420A (zh) | 自动智能云服务测试工具 | |
CN109145009B (zh) | 一种基于SQL检索ElasticSearch的方法 | |
CN106294151A (zh) | 日志测试方法及装置 | |
CN109857757A (zh) | 数据库间的语句转换方法、系统和终端 | |
US20240176797A1 (en) | Method for automated query language expansion and indexing | |
US9069817B2 (en) | Database row access control | |
CN112949269A (zh) | 可视化数据分析报表的生成方法、系统、设备及存储介质 | |
CN110263104A (zh) | Json字符串处理方法及装置 | |
CN109597739A (zh) | 人机对话中的语音日志服务方法及系统 | |
CN110019318A (zh) | 一种日志匹配处理方法、装置以及电子设备 | |
CN112970011A (zh) | 记录查询优化中的谱系 | |
US10606833B2 (en) | Context sensitive indexes | |
CN104539449B (zh) | 一种故障信息处理方法与相关装置 | |
US11194785B2 (en) | Universal self-learning database recovery | |
US20200409972A1 (en) | Method for synchronization of repository data using data criteria | |
US20160239557A1 (en) | Accessing Category-Specific Search Servers | |
US20190334856A1 (en) | Dynamic query hints in ldap search operations | |
US20130080474A1 (en) | Accelerating recursive queries | |
US11423025B2 (en) | Direct data loading of middleware-generated records |
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 |