IBM Support

使用超大型数据库

Technical Blog Post


Abstract

使用超大型数据库

Body

原文链接http://db2fori.blogspot.hk/2013/03/living-large.html

 

使用超大型数据库

 

Tom McKinley说过,一般数据库和超大型数据库是截然不同的。他是我在商业数据库领域的长期工作伙伴, 他还经常说“程序缺陷无法衡量“-这句话的意思是,在小规模环境下运行良好的应用程序,不一定在大规模下也运行良好,甚至可能有时候根本无法运行。

首先你得认识到你生活在庞大的数据库领域(一般简称为“VLDB”内,这一点是极其重要的。一旦你意识到这一点,你就能理解维护开发IBM i VLDB环境的关键要素和最佳实践方式。

 

背景

自从1997年起, 我一直致力于大型数据的相关工作,在Rochester Minnesota帮助组建和领导AS/400 Teraplex 中心。在Teraplex鼎盛的5年期间,我们有权利独立拥有和使用那时最大的AS/400系统,但令人尴尬的是,那都是些大块头。我们不只拥有一台而是多台这样的系统,而且还有最高级的配置。你会如何分配如此庞大的系统资源呢?我们的任务是在OS/400环境上研究、量化和解释大型数据库的性能。当时的驱动力除了主要是数据仓库和商业智能外,还有正在发展的并行处理技术。我们最先证明了运用20GB内存的好处,在当时是一个新的系统最大值。当然, 20GB在当前看来并不是太多,但是请记得,WinTel数据库服务器一直坚持4GB内存,当达到那个限制点,就需要购置另一台服务器(请读者停下来仔细思考这意味着什么). 当然,如今一台IBM Power system可以拥有16TB内存。时代在发展,技术日新月异。

那时候,我们首先构建和使用了21.5亿行的数据表格,然后增长到43亿行。最开始表的大小是512GB,然后是1TB,慢慢发展到后来的1.7TB。我们利用DB2的对称多处理功能最早创建了大型索引,创建过程中充分利用了全部8个处理器,后来是12,最后是24个处理器。啊, 当把24CPU聚集成一股大的能量,单个作业就可以点亮所有的前面板灯,我真的怀念那些灯…。

你瞧,通过互联网的无限力量,我搜寻到一篇发布于1998年的文章,它公布了我们团队的创造成果,即使用了至今最大的单一DB2/400表格------100亿行数据组成的单一DB2/400 表格,大小为2.5T字节。如果你想回忆以往这些辉煌历史,你可以点击下面这个链接查看。http://www.tgc.com/dsstar/98/0512/100179.html

如你所见,在Power系统上运行的IBM i 的数据库性能不管是过去还是现在都是具有重大的历史意义的,但是不幸的是,这一事实却鲜有人知(我想尊敬的读者,您现在应该会加速传播这一事实了吧?)

 

什么是VLDB,我必须拥有吗?

对于大型数据库的定义一直没有定论,几乎天天都会产生新的高准则和特征。特别是考虑到来自各种各样源头和事件的数据的爆炸性膨胀,使得这种变化更具意义。(请看 Big Data)。对于IBM i的环境下,我们怎么判断我们的数据量已经足够大到需要考虑VLDB?或者由于表格和索引的不断增大,我们应该什么时候开始思考,是时候去改变了?

一般来说,当一个表格的大小接近500GB,或者表中的行数接近或者超过10亿行(对于英国朋友来说是1 000 000 000),我们将会开始认真考虑VLDB技术和实践。

另外一个需要考虑的主要因素是当表格或者物理文件的大小达到上限时的数据的增长率和趋势图。例如需要密切关注的商业事件-如收购,当公司决定扩大规模或者获得了大量的客户,用户或者共享市场的时候,如果当前数据库的状态是未知的或者不清楚的,由于收购而造成大规模数据的增加将促使你考虑VLDB,否则你将马上面临一个受限制的境况。

 

限制,什么是限制?

Yes, Virginia, there is a limit.虽然DB2 for i 拥有市场上关系数据库系统的一些最高的限制参数,但是对于一个数据空间(即包含数据的物理容器)也是有最大值的。我们经常谈论的大型数据库的两个受限条件是:表的大小和行的数量。

请看这里,限制就是如下所述:

一个表格或者物理文件有1.7tb 或者包含43亿(4 294 967 288)行数据。

1tb大小的索引或者关键逻辑文件。

您可以在SQL Reference附录A部分找到所有DB2 for i 的限制。

如果限制是1.7TB 或者43亿行数据,那你怎么创建一个2.5TB并且包含100亿行数据的表格呢?

很简单,我的团队不仅知道数据库的限制,更重要的是,我们知道如何以及何时克服它。相信您一样可以做到!

 

避免做什么?

在过去的两个月内,DB2 for i  Center of Excellence(DB2 for i卓越中心,位于美国Rochester IBM 实验室)参与处理了不少于4个危险情况,IBM i 用户突然遭遇了表受限的情况。十分抱歉,请允许我换一种说法表达,客户知道他们遇到了一些难题,从而导致他们的应用停止工作,但是他们并不清楚他们遇到了什么问题。坦率的说,这就是问题所在。大家不清楚限制的存在,实际上他们已经很接近这个极限值,当达到这个极限值,那业务也就停止了。

 

做什么?

如果你认为表格太大,或者你想知道有多大,你可以通过系统展示元数据(描述数据的数据)。请尝试以下步骤:

请使用最新版本的IBM i Navigator(又叫做IBM i Access - System i Navigator-下图展示了IBM i 7.1 Windows 客户端,并且安装最新的补丁包。连接DB2 for i系统,调用Health Center
图像

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

DB2 for i Health Center可以展示很多信息,不过现在我们关注的是某个schema下的对象的大小限制。

图像

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

如果你想换一个schema,你可以点击change这个按钮:

图像

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

当选择了Size Limits这个标签,我们会看到表和索引的与最大值或者极限值相比的当前的大小。

图像

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

请观察表的大小和行数,它们中的任意一个数值接近了极限值,就会显示CRITICAL的警告状态。如果schema中的表格数太多,这个操作会花费稍微多花一点时间。

图像

 

 

 

 

 

 

 

 

 

 

 

如果你想知道index的大小,请选择对象类型:

图像

 

 

 

 

 

 

 

如果想通过编程的方式来查看极限的表和索引的大小,可以使用这个存储过程来实现QSYS2.Health_Size_Limits (),具体使用方法可以查看这里.

 

更多选项

战略上讲,下面列出了IBM i 大型数据库成功的关键要素(亦称 非做不可的因素):

  1. 指定一个ibm i 数据库管理员。
  2. 给与其培训,使他获得DB2 for i 相关的技能和经验。
  3. 查看当前数据的状态,并指出数据增长和使用的趋势图。
  4. 设计并实施一个计划来处理当表格和索引达到极限值的情况。
  5. 设计并实施一个现代化的重构数据模型和数据存取方法。

DB2 for i  Center of Excellence(DB2 for i卓越中心,位于美国Rochester IBM 实验室)是世界上最好的团队(没有之一),可以协助你在IBM i环境上处理大型数据库系统。事实上,正因为AS/400 Teraplex 中心的领导管理能力以及DB2 for i开发实验室的工作人员的专业知识技能使得目前的极限和VLDB性能能够达到现在这个程度。

如果你需要帮助去了解不断增长的数据库的当前状态,或者想要实现满足大表以及其可扩张性的需求,请联系我们(本地客户可以联系LBS团队)。我们拥有DB2 for i超大型数据库咨询课程服务,可以帮助提供克服受限的方案,并且使您能充分的利用IBM i。我们还可以提供远程数据库以及应用评估服务,来帮助找出一些总有一天会发生的潜在问题-这就意味着在您的应用受阻之前发现这个问题。

总而言之,请放心,假如你开始着手为IBM i 制定适当的计划来实现超大型数据库实例和程序,DB2 for i能处理你的所有数据,不论你的表格的行数是以百万还是十亿来计数。

作者:Mike Cain

翻译:阮慧

[{"Business Unit":{"code":"BU058","label":"IBM Infrastructure w\/TPS"},"Product":{"code":"SWG60","label":"IBM i"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":"","Line of Business":{"code":"LOB57","label":"Power"}}]

UID

ibm11144684