一种大型机DB2数据库表分区方法和装置与流程

文档序号:23003603发布日期:2020-11-20 11:52阅读:207来源:国知局
一种大型机DB2数据库表分区方法和装置与流程

本发明涉及计算机数据处理技术领域,尤其涉及一种大型机db2数据库表分区方法和装置。



背景技术:

本部分旨在为权利要求书中陈述的本发明的实施方式提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。

在诸如大型航空、保险、银行系统,因其稳定性要求,以及数据量极其庞大的特点,其采用的系统多为大型机mainframe的z/os操作系统,数据库系统多为db2,为保障db2数据库表的数据的相对隔离以及数据访问的访问效率,通常db2数据库表需进行分区操作。在海外核心银行系统,使用db2数据库进行数据存储,因涉及多个行号多个国家客户多个行号海量数据的存储,也需对数据表进行分区操作,

现有的z/os操作系统tso环境下,只有手动编写db2数据库表的分区语句,无法按特定的表分区需求批量生成分区语句,且人工编写费时费力,效率低下,容易出错。

因此,如何提供一种新的方案,其能够解决上述技术问题是本领域亟待解决的技术难题。



技术实现要素:

本发明实施例提供一种大型机db2数据库表分区方法,实现自动化批量生成分区语句进行db2数据库表的分区,包括:

根据db2数据库表分区需求,配置表分区参数文件和批量作业文件;

利用批量作业文件,批量执行rexx脚本程序,根据表分区参数文件对db2数据库中pds下的表进行客户化,确定分区语句;

根据分区语句,对db2数据库表进行分区。

本发明实施例还提供一种大型机db2数据库表分区装置,包括:

参数配置模块,用于根据db2数据库表分区需求,配置表分区参数文件和批量作业文件;

分区语句确定模块,用于利用批量作业文件,批量执行rexx脚本程序,根据表分区参数文件对db2数据库中pds下的表进行客户化,确定分区语句;

分区模块,用于根据分区语句,对db2数据库表进行分区。

本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种大型机db2数据库表分区方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行上述一种大型机db2数据库表分区方法的计算机程序。

本发明实施例提供的一种大型机db2数据库表分区方法和装置,首先,根据db2数据库表分区需求,配置表分区参数文件和批量作业文件;然后,利用批量作业文件,批量执行rexx脚本程序,根据表分区参数文件对db2数据库中pds下的表进行客户化,确定分区语句;最后根据分区语句,对db2数据库表进行分区。本发明利用rexx语言配置灵活的特点,调用rexx脚本程序,根据具体的db2表分区需求,配置表分区参数文件和批量作业文件,自动批量实现生成db2数据库表的分区语句,本法只需简单配置分区参数,即可批量生成所需表的分区语句,方便快捷,配置灵活,操作方便。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1为本发明实施例一种大型机db2数据库表分区方法示意图。

图2为本发明实施例一种大型机db2数据库表分区方法的日表清单参数文件示意图。

图3为本发明实施例一种大型机db2数据库表分区方法的账号分区参数文件示意图。

图4为本发明实施例一种大型机db2数据库表分区方法的客户号分区参数文件示意图。

图5为本发明实施例一种大型机db2数据库表分区方法的特殊表分区参数文件示意图。

图6为本发明实施例一种大型机db2数据库表分区方法的批量作业文件程序实例。

图7为本发明实施例一种大型机db2数据库表分区方法的分区语句示意图。

图8为运行本发明实施的一种大型机db2数据库表分区方法的计算机装置示意图。

图9为本发明实施例一种大型机db2数据库表分区装置示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。

图1为本发明实施例一种大型机db2数据库表分区方法示意图,如图1所示,本发明实施例提供一种大型机db2数据库表分区方法,实现自动化批量生成分区语句进行db2数据库表的分区,包括:

步骤101:根据db2数据库表分区需求,配置表分区参数文件和批量作业文件;

步骤102:利用批量作业文件,批量执行rexx脚本程序,根据表分区参数文件对db2数据库中pds下的表进行客户化,确定分区语句;

步骤103:根据分区语句,对db2数据库表进行分区。

本发明实施例提供的一种大型机db2数据库表分区方法,首先,根据db2数据库表分区需求,配置表分区参数文件和批量作业文件;然后,利用批量作业文件,批量执行rexx脚本程序,根据表分区参数文件对db2数据库中pds下的表进行客户化,确定分区语句;最后根据分区语句,对db2数据库表进行分区。本发明利用rexx语言配置灵活的特点,调用rexx脚本程序,根据具体的db2表分区需求,配置表分区参数文件和批量作业文件,自动批量实现生成db2数据库表的分区语句,本法只需简单配置分区参数,即可批量生成所需表的分区语句,方便快捷,配置灵活,操作方便。

rexx(restructuredextendedexecutor,重组扩展执行器)脚本是指ibm在1980年代开发的一种程序设计语言实现的脚本。主要用在ibm的大型计算机(mainframecomputer)上,在vse、vm、os/400、aix、os/2其他的ibm平台上也可以找到它的解译器或编译器。在大型机z/os操作系统下,rexx脚本是解释性语言,不需要编译就可以在命令行直接运行或在jcl里通过特殊的member(脚本)调用运行,rexx的变量不需要预先定义就直接可以使用,简洁方便,有丰富的文本字符处理功能。db2数据库建表脚本分区ddl语句具有特定的格式,在z/os操作系统tso环境下可使用rexx实现按特定的需求批量生成表的分区语句。

db2(database2)是美国ibm公司开发的一套关系型数据库管理系统,它主要的运行环境为unix(包括ibm自家的aix)、linux、ibmi(旧称os/400)、z/os,以及windows服务器版本。db2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于所有常见的服务器操作系统平台下。db2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和sql命令。db2采用了数据分级技术,能够使大型机数据很方便地下载到lan数据库服务器,使得客户机/服务器用户和基于lan的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。db2以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。db2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。

db2ddl:ddl-datadefinitionlanguage(数据定义语言),db2ddl(db2数据库数据定义语言)db2数据库中,用于create(创建)、alter(修改)、drop(删除)表空间/表的sql语句。

pds(partitioneddataset,分区数据集),用于将数据库中的数据集分为按顺序组织的成员(member),每个数据集可以有一个或多个成员,每个成员有唯一的名字,作为数据集的一部分存储在地址目录中。分区数据集可以理解为pc机中的“文件夹”,里边可以存放多个member,member中可以存放数据或者源码,member也类似pc上的“文本文件”,在本发明实施例中member可以是脚本文件。

为了实现自动化批量生成分区语句进行db2数据库表的分区,本发明实施例提供一种大型机db2数据库表分区方法,具体实施时可以包括:

根据db2数据库表分区需求,配置表分区参数文件和批量作业文件;

利用批量作业文件,批量执行rexx脚本程序,根据表分区参数文件对db2数据库中pds下的表进行客户化,确定分区语句;

根据分区语句,对db2数据库表进行分区。

具体实施本发明实施例提供的一种大型机db2数据库表分区方法时,在一个实施例中,前述的表分区参数文件,包括:日表清单参数文件dtabpart,夜表清单参数文件ntabpart,账号分区参数文件partacct,客户号分区参数文件partcust,特殊表分区参数文件partparm;

根据db2数据库表分区需求,配置表分区参数文件,包括:根据数据库表分区需求,配置日表清单参数文件、夜表清单参数文件、账号分区参数文件、客户号分区参数文件和特殊表分区参数文件。

rexx语言是一个层次非常高的脚本语言,有特别强大的用于文本处理任务的工具,其包含了更丰富的内置控制结构和(文本处理)函数。具体如表1所示可以包括如下单元:

表1

其中,在本发明实施例的一个实例中,表的第一分区维度为银行号,第二分区维度为账号或客户号或者其他特殊字段。dtabpart、ntabpart、partacct、partcust、partparm皆为表分区参数文件,在批量作业文件jchgddl2里调用。

图2为本发明实施例一种大型机db2数据库表分区方法的日表清单参数文件示意图,如图2所示,总共有4列数据,日表清单参数文件dtabpart主要包括:

第1列:表名;

第2列:表分区字段;

第3列:每家银行的表分区个数(优先级次于partparrm):1为所有行1个分区,2为所有行2个分区,1-2为各行分区数为partacct/partcust中设定的对应行的分区数;

第4列:如果为acct和cust,此时每家银行的表分区个数及方式以参数文件partacct和partcust里的内容为准;如果为maxvalue,表示每家银行的表分区方式为endingat('银行号',maxvalue);如果为ptid,及acsp表示每家银行的表包含10个分区。

夜表清单参数文件ntabpart一般规划为只按银行号分区且每家银行号包含一个分区(除tfio,afio,每家银行包含10个分区),具体实施时可以参考日表清单参数文件dtabpart。

图3为本发明实施例一种大型机db2数据库表分区方法的账号分区参数文件示意图,如图3所示,账号分区参数文件partacct主要包括:

第1列:银行号;

第2列:分区个数;

第3列:帐号起始号;

第4列:帐号终止号;

其它列:分区方式。一般帐号第一个分区留500万号段,第二个分区到maxvalue(与亚太批次保持一致),可视情况而定。

图4为本发明实施例一种大型机db2数据库表分区方法的客户号分区参数文件示意图,如图4所示,客户号分区参数文件partcust主要包括:

第1列:银行号;

第2列:分区个数;

第3列:客户号起始号;

第4列:客户号终止号;

其它列:分区方式。一般客户号第一个分区留300万号段,第二个分区到maxvalue(与亚太批次保持一致),可视情况而定。

图5为本发明实施例一种大型机db2数据库表分区方法的特殊表分区参数文件示意图,如图5所示,特殊表分区参数文件partparm主要包括:

第1列:银行号;

第2列:表名;

第3列:分区数量;

第4列:可不填写按分区区间等分;填写格式举例说明,如5:1000000或5-9:1000000,分别表示第5分区或第5到第9分区每个区步长为1000000。

特殊表分区参数文件partparm指定具体银行和表的分区方式,具有最高优先级。

具体实施本发明实施例提供的一种大型机db2数据库表分区方法时,在一个实施例中,前述的利用批量作业文件,批量执行rexx脚本程序,根据表分区参数文件对db2数据库中pds下的表进行客户化,确定分区语句,包括:

利用批量作业文件,调起rexx脚本程序,设定rexx脚本程序的批量作业次数;

读取表分区参数文件,根据批量作业次数,批量执行rexx脚本程序,对db2数据库中pds下的表进行增量客户化或全量客户化,确定分区语句。

图6为本发明实施例一种大型机db2数据库表分区方法的批量作业文件程序实例,其中,prdocs、prd为目标环境alias/alias前缀,f302359为标准版本包的时间标号(即从版本包中解出的pds名字的第二段字符串),如果是对目标环境进行全量客户化,tflag参数留空即可。图7为本发明实施例一种大型机db2数据库表分区方法的分区语句示意图,如图7所示,利用批量作业文件,批量执行rexx脚本程序,根据表分区参数文件对db2数据库中pds下的表进行客户化,确定分区语句,具体实施时可以包括:

利用批量作业文件,调起rexx脚本程序,设定rexx脚本程序的批量作业次数;批量作业可以实现无人值守情况下的分区语句自动批量生成,也可以在监控模式下按照设定批量作业次数进行作业。

读取表分区参数文件,根据批量作业次数,批量执行rexx脚本程序,对db2数据库中pds下的表进行增量客户化或全量客户化,确定分区语句。

本实施例只需简单的配置表分区参数文件和批量作业文件,只提交一个jcl作业即可批量实现数据库分区语句的生成,配置灵活,操作方便。参数已配好的前提下,可自动化实现数据库分区语句的生成与替换的操作,从而实现db2数据库表的自动分区。图7中的“partitioonby(inst_,custonmer_no)(…)”为客户化并生成的其中一个db2表chaa的分区语句。

具体实施本发明实施例提供的一种大型机db2数据库表分区方法时,在一个实施例中,前述的日表清单参数文件、夜表清单参数文件、账号分区参数文件和客户号分区参数文件的优先级相同,特殊表分区参数文件的优先级高于上述其他四个表分区参数文件;

所述读取表分区参数文件,包括:

扫描表分区参数文件,若特殊表分区参数文件存在,则先读取特殊表分区参数文件,再依次读取其他四个表分区参数文件。

实施例中,特殊表分区参数文件的优先级是最高的,当特殊表分区参数文件存在时,需要先读取特殊表分区参数文件,再依次读取其他四个表分区参数文件,当特殊表分区参数文件不存在时,则按照顺序读取表分区参数文件中的日表清单参数文件、夜表清单参数文件、账号分区参数文件和客户号分区参数文件。

实施例中,具体执行前述的rexx主程序单元chgddl2,包括如下步骤:

1)被执行时,会对*prdocs.f302359.com.db2ddl.prm的pds下的所有表进行增量客户化,或者对名为*prdocs.com.db2ddl.prm的pds下的所有表进行全量客户化。

2)对于每一张表,会在日表参数dtabpart确认其分区类型,同时也会在夜表ntabpart确认其分区类型。

3)对于账号分区类型,读取partacct参数文件进行客户化

4)对于客户号分区类型,读取partcust参数文件进行客户化

5)读取partcust参数文件,若该表存在于此文件,其优先级将高于3)4),将以partcust参数进行客户化。

6)在一张表里,将会客户化所有的行。

本发明实施例还可以包括:

1)备份原来的库(增量)*prdocs.f302359.com.db2ddl.prm/(全量)*prdocs.com.db2ddl.prm

2)提交作业prdocs.sysa.maint.cntl.utl(jchgddl2),对名为*prdocs.f302359.com.db2ddl.prm的pds进行增量客户化,或者对名为*prdocs.com.db2ddl.prm的pds进行全量客户化。

图8为运行本发明实施的一种大型机db2数据库表分区方法的计算机装置示意图,如图8所示,本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述一种大型机db2数据库表分区方法。

本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有执行实现上述一种大型机db2数据库表分区方法的计算机程序。

本发明实施例中还提供了一种大型机db2数据库表分区装置,如下面的实施例所述。由于该装置解决问题的原理与一种大型机db2数据库表分区方法相似,因此该装置的实施可以参见一种大型机db2数据库表分区方法的实施,重复之处不再赘述。

图9为本发明实施例一种大型机db2数据库表分区装置示意图,如图9所示,本发明实施例还提供一种大型机db2数据库表分区装置,具体实施时可以包括:

参数配置模块901,用于根据db2数据库表分区需求,配置表分区参数文件和批量作业文件;

分区语句确定模块902,用于利用批量作业文件,批量执行rexx脚本程序,根据表分区参数文件对db2数据库中pds下的表进行客户化,确定分区语句;

分区模块903,用于根据分区语句,对db2数据库表进行分区。

具体实施本发明实施例提供的一种大型机db2数据库表分区装置时,在一个实施例中,前述的表分区参数文件,包括:日表清单参数文件,夜表清单参数文件,账号分区参数文件,客户号分区参数文件,特殊表分区参数文件;

前述的参数配置模块,具体用于:根据数据库表分区需求,配置日表清单参数文件、夜表清单参数文件、账号分区参数文件、客户号分区参数文件和特殊表分区参数文件。

具体实施本发明实施例提供的一种大型机db2数据库表分区装置时,在一个实施例中,前述的分区语句确定模块,具体用于:

利用批量作业文件,调起rexx脚本程序,设定rexx脚本程序的批量作业次数;

读取表分区参数文件,根据批量作业次数,批量执行rexx脚本程序,对db2数据库中pds下的表进行增量客户化或全量客户化,确定分区语句。

具体实施本发明实施例提供的一种大型机db2数据库表分区装置时,在一个实施例中,前述的日表清单参数文件、夜表清单参数文件、账号分区参数文件和客户号分区参数文件的优先级相同,特殊表分区参数文件的优先级高于上述其他四个表分区参数文件;

前述的分区语句确定模块,还用于:

扫描表分区参数文件,若特殊表分区参数文件存在,则先读取特殊表分区参数文件,再依次读取其他四个表分区参数文件。

综上,本发明实施例提供的一种大型机db2数据库表分区方法和装置,首先,根据db2数据库表分区需求,配置表分区参数文件和批量作业文件;然后,利用批量作业文件,批量执行rexx脚本程序,根据表分区参数文件对db2数据库中pds下的表进行客户化,确定分区语句;最后根据分区语句,对db2数据库表进行分区。本发明利用rexx语言配置灵活的特点,调用rexx脚本程序,根据具体的db2表分区需求,配置表分区参数文件和批量作业文件,自动批量实现生成db2数据库表的分区语句,本法只需简单配置分区参数,即可批量生成所需表的分区语句,方便快捷,配置灵活,操作方便。实际的使用方只需按需求简单的配置参数文件,只提交一个jcl作业即可批量实现数据库分区语句的生成。参数已配好的前提下,可自动化实现数据库分区语句的生成与替换的操作。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1