一种基于表空间迁移处理大数据量的系统及方法 【技术领域】
本发明涉及到综合智能网项目处理大数据量的系统及方法,更具体的说,涉及一种基于表空间迁移处理大数据量的系统及方法。
背景技术
在综合智能网项目的日常管理维护工作中,或多或少总会遇到数据库升级、数据割接和数据迁移等问题。而且需要处理的数据量变得越来越大,一些原始的方法如exp/imp(导出/导入),由于用户不能承载其长时间的宕机时间,已经变得不再适用。
新型的数据迁移方法如Data guard(备用数据库)、Streams复制(流复制)、表空间传输、Oracle 10g的跨平台数据文件转换等复制方法开始大量出现。表空间传输是Oracle 8i新增加的一种在数据库间快速移动数据的方法,是把一个数据库上的格式数据文件附加到另外一个数据库中,而不是把数据导出成Dmp文件。因为传输表空间移动数据就像复制文件一样快,所以表空间传输在大数据量处理时非常管用。
因此,如何设置出新的处理大数据量的系统及方法,解决上述的由于综合智能网项目需求变得越来越复杂,数据量变得越来越大,数据库升级、数据割接或数据迁移等操作时,导致宕机时间过长,客户体验差的问题,成为技术人员需要考虑的问题。
【发明内容】
本发明所要解决的技术问题是提供一种基于表空间迁移处理大数据量的系统及方法,解决在综合智能网项目的日常管理维护工作中,需要处理的数据量变得越来越大,导到宕机时间过长,客户体验差的问题。
为了解决上述技术问题,本发明提供了一种基于表空间迁移处理大数据量的系统,包括:源平台、目标平台、数据文件上传模块和元数据上传模块;
所述源平台,用于导出表空间进行发送;并用于接收目标平台处理后的表空间;
所述目标平台,用于接收所述源平台发送的表空间,对数据文件进行处理,并把处理后的表空间进行发送;
数据文件上传模块和元数据上传模块,用于将源平台导出的表空间上传至目标平台;并将所述目标平台处理后的表空间转发给所述源平台。
为了解决上述技术问题,本发明还提供了一种基于表空间迁移处理大数据量的方法,包括:
源平台导出表空间并进行发送;
目标平台接收所述源平台发送的表空间,对数据文件进行处理,并把处理后的表空间进行发送;
源平台接收目标平台处理后的表空间,导入数据文件。
与现有技术相比较,采用本发明所述系统及方法,可以解决由于数据量变得越来越大,数据库升级、数据割接或数据迁移等操作时,导致宕机时间过长,客户体验差的问题。运用此技术,以2千万数据为例,仅仅需要5分钟即可导出元数据,复制数据文件与导出的元数据到另外一台机器,然后启动业务,不影响业务的情况下,在另外一台机器上进行数据处理;该方法大大缩短了宕机时间。同时,该方法支持增量与全量的数据处理。
【附图说明】
图1是本发明基于表空间迁移处理大数据量的系统模块示意图;
图2是本发明基于表空间迁移处理大数据量的方法的流程示意图;
图3是本发明应用实例中基于表空间迁移处理大数据量的方法的具体流程示意图。
【具体实施方式】
本发明的主要思想是首先利用表空间传输,把大数据从源数据库迁到目标数据库,然后在目标数据库完成大数据的升级、割接和迁移等。最后,利用表空间传输,把处理完的大数据量迁到源数据库。这种方法可以推广到任意大数据量的升级、割接和迁移等的领域。
下面结合附图及优选实施例对本发明技术方案进行详细说明。
参阅图1,是本发明基于表空间迁移处理大数据量的系统模块示意图。
本发明基于表空间迁移处理大数据量的系统包括源平台、目标平台和源平台与目标平台进行交互的模块。
其中,源平台包括:
第一表空间只读模块11、第一元数据生成模块12、第一表空间读写模块13、第一数据文件入库模块14和数据同步模块15。
所述第一表空间只读模块11,用于校验源平台表空间并设置为只读状态,为第一元数据生成模块12作准备工作。
所述第一元数据生成模块12,用于导出源平台的单个或多个表空间,并将导出的元数据文件通过元数据上传模块发送到目标平台。
所述第一表空间读写模块13,用于设置源平台表空间状态为读写。
所述第一数据文件入库模块14,用于导入目标平台发送到源平台的处理后的大数据文件。
所述数据同步模块15,用于同步目标平台进行数据处理期间源平台变化的数据,保持前后数据的一致性。
目标平台包括:
第二数据文件入库模块21、第二表空间读写模块22、大数据处理模块23、第二表空间只读模块24和第二元数据生成模块25。
所述第二数据文件入库模块21,用于导入源平台发送到目标平台的数据文件。
所述第二表空间读写模块22,用于设置目标平台表空间状态为读写,为大数据处理模块23作准备工作。
所述大数据处理模块23,用于按照需求处理导入的数据。
所述第二表空间只读模块24,用于设置目标平台表空间状态为只读,为第二元数据生成模块25作准备工作。
所述第二元数据生成模块25,用于导出目标平台处理后的表空间。
源平台和目标平台进行交互的模块包括:数据文件上传模块和元数据上传模块。
所述第一表空间只读模块及第二表空间只读模块,为元数据生成模块作一些准备工作,校验表空间并设置为只读状态。只有表空间状态为只读状态,才能导出表空间。否则导出表空间失败。
所述第一元数据生成模块及第二元数据生成模块,负责把需要升级、割接或迁移地数据的表空间导出,此模块导出过程其实只导出了数据字典,也就是导出的文件只包含元数据,而非真正的内容数据,因此生成.dmp文件非常小并且导出速度非常快。导出的表空间包括需要处理的数据所在的表及索引等对应的所有表空间。
所述数据文件上传模块,该模块负责把表空间包含的所有数据文件即.dbf文件拷贝到目标机器上指定的目录下。
所述元数据上传模块,该模块负责把导出的元数据根据FTP(文件传送协议,File Transfer Protocol)上传到目标机器上指定的目录下。
所述第一数据文件入库模块与第二数据文件入库模块,负责把目标机器上的元数据和数据文件导入到本地的数据库。
所述第一表空间读写模块与第二表空间读写模块,为元数据处理作一些准备工作,把导入的表空间置为读写状态。只有表空间状态为读写状态,才能对表空间进行操作,否则无法处理数据。
所述大数据处理模块,该模块是核心模块,负责根据升级、割接或迁移的要求,在目标机器的数据库中进行相应的升级、割接或迁移操作。升级为在目标机器上执行升级脚本。割接为在目标机器上运行割接工具得到自己需要的数据。
所述数据同步模块,该模块是重要模块,负责处理升级时间内进行的业务操作,保持数据的一致性。
请参阅图2,其是本发明基于表空间迁移处理大数据量的方法流程示意图。
概况来说,本发明基于表空间迁移处理大数据量的方法,包括以下步骤:
步骤S1:源平台,停业务,备份业务、数据库等,源平台模块第一表空间只读模块11、第一元数据生成模块12、第一表空间读写模块13进行处理,并把生成的数据文件根据FTP上传到目标平台,然后启动业务;
步骤S2:目标平台的各个模块进行处理,并把生成的数据文件根据FTP上传到源平台;
步骤S3:源平台停业务,第一数据文件入库模块14、数据同步模块15进行处理,处理完成后,启动业务。
具体来说,利用本发明处理大数据的方法,包括以下步骤:
步骤A.准备工作,停业务,检验表空间并设置为只读;
步骤B.将需要处理的大数据对应的单个或多个表空间导出,生成指定的元数据文件,并且存储到指定的目录下;
步骤C.将表空间对应的数据文件和步骤B生成的元数据文件拷贝到目标机器上,源机器激活业务;
步骤D.在目标机器上,利用imp或者impdb导入数据文件;
步骤E.在目标机器上,把导入的表空间置为读写状态;
步骤F.在目标机器上,处理大数据,得到需要的数据;
步骤G.将目标机器上的表空间状态置为只读状态;
步骤H.导出目标机器上的表空间;
步骤I.将目标机器上导出的表空间文件和表空间对应的数据文件,拷贝到源机器;
步骤J.停业务,删除表空间和数据文件,利用imp或者impdb导入从目标机器拷贝的处理后的数据文件;
步骤K.处理升级时间内进行的业务操作,激活业务。
下面通过具体应用中的实例对本发明技术方案进行示例性说明。
请参阅图3,其是本发明基于表空间迁移处理大数据量的方法的具体流程示意图。
本发明基于表空间迁移处理大数据量的方法,具体包括以下步骤:
步骤S11、源平台停业务,备份业务、数据库等。
步骤S12、第一表空间只读模块校验源平台表空间并设置为只读。
步骤S13、第一元数据生成模块导出源平台的需要处理的大数据所在的单个或多个表空间,生成.dmp文件,存储到指定的目录下。此模块只是导出了数据字典信息,也就是导出的文件只包含元数据,而非真正的内容数据,因此生成的文件非常小,并且导出速度快,效率高。
步骤S14、把步骤S13生成的元数据文件通过元数据上传模块发送到目标平台,使用FTP下载上传时,必须采用BIN(二进制)传输方式。
步骤S15、把步骤S13导出的表空间对应的数据文件通过数据文件上传模块发送到目标平台,使用FTP下载上传时,必须采用BIN传输方式。
步骤S16、第一表空间读写模块设置源平台表空间状态为读写,然后激活业务。
步骤S21、第二数据文件入库模块把源平台发送到目标平台的元数据文件和数据文件,导入到数据库。导入时,目标平台不允许含有同名的表空间存在,否则导入失败。
步骤S22、第二表空间读写模块设置表空间状态为读写。
步骤S23、大数据处理模块用于按照需求处理大数据。升级时,可以通过脚本的方式来完成升级。数据割接或数据迁移时,可以直接获取需要的数据。若此步骤操作失败,可以由步骤S21重新开始。
步骤S24、第二表空间只读模块设置表空间状态为只读。
步骤S25、第二元数据生成模块导出目标平台处理后的大数据所在的单个或多个表空间,生成.dmp文件,存储到指定的目录下。此模块只是导出了数据字典信息,也就是导出的文件只包含元数据,而非真正的内容数据,因此生成的文件非常小,并且导出速度快,效率高。
步骤S26、把步骤S25生成的元数据文件通过元数据上传模块发送到源平台,使用FTP下载上传时,必须采用BIN传输方式。
步骤S27、把步骤S25导出的表空间对应的数据文件通过数据文件上传模块发送到源平台,使用FTP下载上传时,必须采用BIN传输方式。
步骤S31、源平台停业务,备份业务、数据库等。
步骤S32、第一表空间只读模块校验源平台表空间并设置为只读。
步骤S33、第一数据文件入库模块把目标平台发送到源平台的元数据文件和数据文件,导入到数据库。导入时,源平台不允许含有同名的表空间存在,否则导入失败。
步骤S34、第一表空间读写模块设置源平台表空间状态为读写。
步骤S35、数据同步模块用于同步目标平台进行数据处理期间源平台变化的数据,保持前后数据的一致性。
步骤S36、源平台激活业务,流程结束。
运用此方法,以2千万数据为例,仅仅需要5分钟即可导出元数据,复制数据文件与导出的元数据到另外一台机器,然后启动业务,不影响业务的情况下,在另外一台机器上进行数据处理;同时,该方法支持增量与全量的数据处理。
需要指出的是,上述的举例说明较为具体,并不能因此而认为是对本发明的专利保护范围的限制,任何对本发明技术特征所做的等同替换和相应改进,都在本发明的保护范围之内。本发明的专利保护范围应以所附权利要求为准。