我们今天主要向大家讲述的是正确管理DB2 For z/OS or OS/390的实际操作性能的描述,今天各大组织面临的很大问题,其主要在于对使他们的应用程序能够运行能能特别良好,并且保持在非常高的效率上。
这将是一个永远没有尽头的工作,你将不得不重复多次的收集,分析和检查性能相关的统计信息。当一个DBMS 的系统例如DB2 被包括在你的应用系统中时,那么性能管理将会更加困难。
实际上,性能优化是所有数据库管理员所面临的***的问题之一,他们整天的听到和面临客户关于性能低下等类似的抱怨,因为没有用户喜欢等待,当他们使用一个应用程序的时候,如果响应时间过长,那么你将得到的是用户无休止的抱怨和不满。

对于什么原因导致的应用程序响应时间过长,这可不是容易回答和解决的问题,许多DBA 加班加点的工作,却只能解决一部分性能问题。在本文中我们将主要从性能管理和优化的基础部分开始介绍,逐渐深入到调整DB2 数据库和应用程序性能的发展之路上。
每个数据库应用程序,都会由最基本的三部分组成:操作系统,数据库和应用程序。因此DBA 需要从这三方面入手,监视和调整整个系统的性能。
一、调整系统
DB2 性能管理的开始便是系统的调整,这里所说的系统是由操作系统软件和硬件组成,这个系统为应用程序提供服务。从硬件的角度来看,主要包括主机本身,以及相应的磁盘子系统,网络连接和所有的周边设备。从软件角度来看,最主要的是包括操作系统,文件子系统以及数据管理子系统,网络协议和相关的中间件,例如交易处理器和消息队列管理器等。
为了得到稳定的系统性能,数据库管理员必须能够监视所有这些软硬件资源,并且能够管理和优化这些不同的软硬件部分,使他们相互配合,例如:内存的分配和存储管理以及郑和DBMS 和其他系统软件,正确的是用数据库log 等。此外,数据库管理员必须能够合理的配置系统的安装,移植和升级数据库软件。系统是应用程序的基石,如果系统不能够运行的良好,那么基于他的各种应用都将会运行缓慢,甚至导致程序错误。
对于管理DB2 系统性能,DBA 的***个工作便是保证所有独立并且互相联系的地址空间能够正确地相互通讯,并且每个地址空间都能够良好的运行。例如,CICS ,IMS ,TSO ,WebSphere 和DB2 Connect 等。如果这些子程序不能正确地培植,所有这些子程序和子系统都有可能影响到DB2 应用程序的性能。
例如,当数据库数据被CICS 程序访问时,多个线程将同步工作,使许多用户都能够通过CICS 程序来同步访问DB2 中的数据。 使用CICS Attach Facility (通过这种机制,CICS 连接到DB2 )你可以连接每个CICS region 到一个DB2 系统。这样多个DB2 系统通过配置,可以同布的连接到多个CICS region 上,DB2 为CICS 提供数据服务。
通过MVS 的TCB 来执行SQL 的数据操作,这些TCB 都存在CICS 地址空间中,利用跨内存指令来调用DB2 数据服务(DSNDBM1 )。
此外,资源控制表(RCT )也需要能够正确备置以使DB2 程序使用。RCT 会运行在CICS 空间中,并且仅仅适用于CICS 访问DB2 数据。它定义了CICS 交易如何使用DB2 资源,他为每个CICS 交易定义了一个Plan ,使用这个Plan 来访问DB2 ,同时定义了一些应用程序Plan 访问DB2 的详细参数和类型。
DB2 数据管理员需要特别注意DB2 系统参数的配置,无论是通过DB2 命令或者DSNZPARMs 。对于性能优化来说最重要的就是内存的使用,DB2 需要为Buffer ,EDM ,RID 以及排序缓存等分配内存,内存的数量是有限的,如何能够有效地利用这些内存,对于DB2 高效的性能至关重要。
DB2数据管理员需要特别注意DB2系统参数的配置,无论是通过DB2命令或者DSNZPARMs。对于性能优化来说最重要的就是内存的使用,DB2需要为Buffer,EDM,RID以及排序缓存等分配内存,内存的数量是有限的,如何能够有效地利用这些内存,对于DB2高效的性能至关重要。
参考资料:
Moulder, Tom, Performance Management of a>
按以下要求建立DB2 系统管理员用户组adm1
楼主说的是Windows上的吧。 这个太难了。 。 。 linux中如下:groupadd -g 999 db2iadm1groupadd -g 998 db2fadm1groupadd -g 997 dasadm1useradd -u 999 -g db2iadm1 -m -d 2home2inst1 db2inst1useradd -u 998 -g db2fadm1 -m -d 2home2fenc1 db2fenc1useradd -u 997 -g dasadm1 -m -d 2home/dasusr1 dasusr1
DB2与oracle有什么区别?
1、体系结构,DB2的实例和数据库分开的做法,我个人还是比较喜欢的,因为实例可以创建多个,数据库的恢复直接恢复到实例下就可以了,相对ORACLE简单多了。 2、管理工具,DB2的管理工具做得太简陋了,控制中心只能说能用而已,而且还有好多BUG,不如ORACLE的企业管理器做得好,连WEB版都没有。 3、备份管理,DB2的备份只能说是简陋了,没有备份集的管理功能,没有恢复预览和校验功能,不能写到网络驱动器上,唉太多的没有了,ORACLE的RMAN确实强大; 4、DB2的命令执行方式,我很喜欢,可以在命令行上执行SQL,也可以在命令窗口上执行SQL,相对SQLPLUS灵活多了; 5、DB2的自动维护功能做的很好,可以定期自动整理数据库碎片和重建索引,唯一不大理想的是自动维护的备份功能不能指定压缩备份,相对而言ORACLE的自动维护功能就很一般了; 6、DB2的运行状况的功能我也很喜欢,ORACLE也有类似的AHM,但是 DB2的运行状况更为直接,可以一下就看出数据库目前有啥问题,DB2还给出了如何处理的建议顾问程序; 7、DB2的内存状况监控功能本来我也很喜欢,可以直接在内存状况监控上直接改相应的参数,但是发现一个巨大BUG后,我就很不喜欢了,如果你一直点刷新,发现内存占用量会不断上升,我有次为了监控一个内存参数,让这个工具运行了一天一夜,结果回来一看,晕倒,所有的内存参数增长到数百G,我想看的历史变化情况居然没有。 8、DB2的远程网络连接采用的编目方式描述连接串的方式我感觉很不爽,为了改个客户端的连接服务器的IP地址,所有的客户端都需要将编目删除,然后重新编目连接地址,晕倒100多台PC机搞下来,尽管可以使用脚本,但是还是把人都快搞疯了。 ORACLE采用的用文件来配置远程服务器的方式,所有的PC机都通过更新服务器直接更新本机的TNSNAME,1分钟搞定。 9、DB2的数据库创建如果要手工管理容器,居然没有指定缺省的系统表空间数据文件名,你要创建一堆相应的文件名,没办法,只好照抄oracle的OFA体系结构的文件名。 10、DB2的连接配置图形工具实在是差了,在上面配置一步步配出的连接居然不能用!只好使用脚本,这点ORACLE比DB2强多了。 11、DB2在WINDOWS 平台的可靠性不怎么样,3个多星期无缘无故DOWN了4次机,ORACLE配好了应该没有这么悲惨吧。 12、DB2的锁自动管理机制,我比较喜欢,打开后,互锁的概率大大降低,相同的程序,在DB2下锁明显少许多,但是不爽的是DB2的select命令也是加锁的。 13、DB2 9.7的ORACLE兼容模式,我也很喜欢,迁移麻烦少了许多许多。 14、DEB2 的自动内存管理我看要比ORACLE 要强一些,几乎所有的内存参数都能自动管理,ORACLE11G貌似也可以全部自动管理了。 15、DB2的导出数据的工具实在太简陋了,连oracle的EXP/IMP 都不如,更不要说expdp/impdp 16、DB2的SQL语句运行速度明显快于ORACLE,5-6段相同的代码,同一台机器,参数都是缺省参数,个人测试DB2执行速度大约要快10%-15%,也许和DB2缺省的参数调优有关,ORACLE10g调优后,还是还有5-10%左右的差异。
发表评论