在DB2v9.7上面简单测试CLPPLUS

2009.06.25 4:54 pm »Author: admin »

在DB2为了提高Oracle的兼容度,在9.7推出了和SQLPLUS非常相似的CLPPLUS。这个命令行环境为那些数据Oracle习惯的技术人员提供了一个非常熟悉的界面来操作DB2数据库。我简单测试了一下基本的功能:

1) DUAL
SQL> select to_char(to_date('2009-09-05','yyyy-mm-dd'),'day') from sysibm.dual;

确实基本上和sqlplus的操作体验差不多,为那些Oracle转到Db2的技术人员提供了一个比较容易上手的交互界面。

1
———–
saturday

2) Set timing on 这个功能最有用:)

SQL> set timing on;
SQL> select count(*) from empcp;

          1
———–
         42
Elapsed time: 6 millisecond(s)

3) Spool

SQL> spool 1.out;
SQL> select count(*) from empcp;

          1
———–
         42
SQL> spool off;

4) Describe table

SQL> desc emp;

Name                 Data Type       Type schema       Length    Scale Nullable
——————– ————— ————— ——– ——– ——–

EMPNO                CHARACTER       SYSIBM                 6        0 N
FIRSTNME             VARCHAR         SYSIBM                12        0 N
MIDINIT              CHARACTER       SYSIBM                 1        0 Y
LASTNAME             VARCHAR         SYSIBM                15        0 N
WORKDEPT             CHARACTER       SYSIBM                 3        0 Y
…………

5) Host command

SQL> host ls
1.out
clpplus.log

<<时间旅行者的妻子>>

2009.06.20 10:09 am »Author: admin »

在China-Pub上面买<<Mysql性能调优与架构设计>>的时候,觉得只买一本,好像有点划不来。所以附加买了一本<<时间旅行者的妻子>>。
相对于那部有名的<<本杰明巴顿的奇事>>,时间作标在这本书里面是跳跃的,描写角度也更是多重,这给我的阅读带来了一点小小的麻烦。有时候我不得不要翻到前面一节,以确定准确的时间点;有时候,一些情节也会给我带来一点点逻辑上的困惑。但是,这只是一本流行小说,不是霍金写的”时间简史”,所以不要追究太深。吸引我读下去的还是,亨利和克莱尔之间的爱情。
最激动人心的情节,亨利回到克莱尔的童年,和她成为朋友;在克莱尔叛逆的青春期,陪她一起度过。仿佛他们之间的关系好像从生下来就开始。当然,作为时间旅行者的妻子,克莱尔也要忍受亨利莫名的消失,做早饭的时候,早上醒来的时候。但就像这本书的最后克莱尔说的”可我别无选择。他就要来了,我就在这里”不管在哪个时代,天长地久的爱情,还是让我们心向往之,这也许是这本小说这么畅销最大的原因
也许会有一些朋友认为,这本书对于两个人在一起的好多时间片段的描写是那么的平淡,直白,甚至有些大段的口述显得有点冗长。其实我们普通人的感情也许就是这样琐碎….
我靠这本书打发了一周上下班公交车上的时间,呵呵

PS:好吧,我承认我最近有点宅….

在DB2v9.7上面测试Index压缩功能

2009.06.19 3:54 pm »Author: admin »

简单的测试了一下索引压缩的功能,同时Monitor测试系统WorkLoad。简单步骤如下:

db2 => select INDNAME,COMPRESS_ATTR, INDEX_COMPRESSED, INDEX_OBJECT_L_SIZE, INDEX_OBJECT_P_SIZE from table (admin_get_index_info ('T', 'SAPR3', 'SOC3')) as t

INDNAME COMPRESS_ATTR INDEX_COMPRESSED INDEX_OBJECT_L_SIZE INDEX_OBJECT_P_SIZE
-------------------------------- ------------- ---------------- -------------------- --------------------
SOC3~0 N N 610473 610473

1 record(s) selected.

db2 => alter index "SAPR3"."SOC~0" compress yes
DB20000I The SQL command completed successfully.

db2 => reorg indexes all for table SAPR3.SOC3
DB20000I The REORG command completed successfully.

db2 => select INDNAME,COMPRESS_ATTR, INDEX_COMPRESSED, INDEX_OBJECT_L_SIZE, INDEX_OBJECT_P_SIZE from table (admin_get_index_info ('T', 'SAPR3', 'SOC3')) as t

INDNAME COMPRESS_ATTR INDEX_COMPRESSED INDEX_OBJECT_L_SIZE INDEX_OBJECT_P_SIZE
-------------------------------- ------------- ---------------- -------------------- --------------------
SOC3~0 Y Y 258896 258896

1 record(s) selected.

从Nmon收集的数据来看,峰值也就比Normal的时候多2%-3%,基本在可接受范围内。对于Update和Insert的并发影响测试留待以后进行。

打开Oracle的审计功能

2009.06.18 10:14 am »Author: admin »

因为公司审计的原因,需要在Oracle上面打开Audit功能。


sqlplus "/ as sysdba"

SQL*Plus: Release 10.2.0.3.0 - Production on Thu Jun 18 09:51:28 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
Connected to:
Oracle Database 10g Release 10.2.0.3.0 - 64bit Production

SQL> show parameter audit

NAME                      TYPE        VALUE
------------------------- ----------- -----------------------
audit_file_dest           string      /data/SID/trace/adump
audit_sys_operations      boolean     FALSE
audit_syslog_level        string
audit_trail               string      NONE

1.打开审计

SQL> alter system set audit_sys_operations=TRUE scope=spfile;


SQL> alter system set audit_trail=XML scope=spfile;

2.重启实例

3.SQL> show parameter audit

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      /data/SID/trace/adump
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string
audit_trail                          string      XML

4.检查日志文件
在adump目录下的日志文件里面,可以看到你的操作都记录在案了。

参加DB2 Cobra Early Access Program

2009.06.15 10:22 am »Author: admin »

提出申请后,很快得到批准。拿到Access Key后,开始下载DB2 V9.7的image文件。最近准备好好看看这个版本。

以下是DB2 V9.7 Release的New Feaure

Read More »

也说说DB2的备份和恢复

2009.06.12 2:04 pm »Author: admin »

作为成熟数据库产品,备份和恢复的功能基本上是最重要的部分之一。和ORACLE强大的RMAN比起来,DB2在这方面基本上没有什么太闪亮的地方。但是作为一个从DB2 V7就开始使用的老用户而言,DB2在备份和恢复这块随着版本的更新还是不断加强的。对我而言,下面这几个地方的增强,直接对我的工作量有好处:)

备份

对于备份而言Include Logs基本上是最大的一个增强:

这个选项的引入,基本上杜绝了新手们,老是在做恢复的时候 rollforward找不到日志文件的问题。而且比较有意思的是,我们不仅可以Include Logs而且我们还可以从备份文件里面单独retrieve日志文件出来。当然有朋友可能会问,Include Logs选项会让备份文件增长。这是必然,但是我们可以用Compress来明显压缩备份文件大小,一般带上Compress,备份文件将只要以前的1/3-1/4左右。当然有的朋友可能进一步会问,compress会带来Cpu的消耗,这个时候,我们可以用UTIL_IMPACT_PRIORITY在Online的时候来平衡备份的速度,减少资源的消耗.
对于DPF而言,include logs已经很完美的在DPF环境里面得到支持。同时在备份的时候,我们也可以将备份命令简化为:db2 backup database db_name on all dbpartitionnums to “PATH”

恢复

简化前滚的命令,比如:DB2 ROLLFORWARD DATABASE dbname TO END OF BACKUP。当然,你也可以用Recover命令来自动做ROLLFORWARD。在新的版本里面用recover来做PIT的恢复比传统方式还是简单一些。那么在恢复这个部分来讲,引入的新Rebuild这个特性,是一个很大的增强。众所周知,备份和恢复的一个重要应用的场景是数据的迁移,跨DB的数据库迁移一般都会用到重定向恢复,在v9之前的版本,我们需要自己手工来完成重定向恢复的脚本,在v9之后,我们可以使用rebuild的方式来自动生成重定向恢复脚本,相当方便。
在以前的版本里面自己写了一个脚本,来做重定向恢复,现在DB2可以自动帮你生成,做DBA好像越来越简单了.

当然,对于一个完整的软件生命周期管理的解决方案来说,DB2+TSM还是非常不错的选择。

现在DB2V9.7已经Announce,希望新的版本,有新的惊喜。

一位同事在广东的经历

2009.05.31 5:14 pm »Author: admin »

这个假期,一个好久未见的老朋友来北京参加一个展会,大家一起出来找个地方吃吃饭,喝喝酒。这个哥们,广州本地人,以前和我在珠海一个港资公司呆过,后来这个公司被收购,又和我们一起在广州一家所谓的”大公司”工作了半年,做java开发。这么多年没见,听他聊聊自己的经历,很感慨…
我离开广东来到北京后,这个同事后来因为对公司文化不认同,出来后去了一些国模不大的公司,最后和几个朋友一起做一些小的项目。曾经给一个比较大的公司开发CRM的产品,结果甲方因为漏税,偌大的公司转眼间风吹云散,同事就拿了几千元底薪,分红啥的都没有了,后来的经历也不太顺利。最后彻底转型离开IT业和几个朋友一起做外贸,国外接单,国内生产。按照他说的啥都做,包括生产,发货啥的。结果最近又碰到经济危机,公司光是欧元的汇兑损失就是一大笔。在这个哥们轻松的言语背后,我其实能体会到,生活的起起落落。但是,他依然觉得世道会变好,很乐观。也许有的人觉得他混得不怎么样。但是从他的身上,我深深能够体会到,南方人的坚韧和毅力。这样的人我坚信他最终一定会成功,不管他在什么行业。
在我的朋友里面,有的确实混得不错。经过自己艰苦的努力,工作稳定,有房有车,有的能拿着巨额的分红。但是成功人士毕竟是少数,不是每个人都能有机会付出和回报成正比。大多数人可能都是象我和我这位同事这样的生活,普普通通,平平常常。在这次的聊天中,和这位朋友比起来,我反而显得有些患得患失了。
心态很重要,做好每件事,并且乐在其中,其实也挺好….

继续学习MainFrame

2009.05.18 1:34 pm »Author: admin »

继续学习M/F相关的一些东东,陆续看了一些TSP/RACF/DATA SET…的一些东西.感觉架构和开放式平台差异太大,思路一直转不过来.最近手头的项目也比较多,只能见缝插针了.

在笔记本上配了一个MVS 3.8 under Hercules,先玩着.

DB2 9.7终于支持分区表的Local Indexes

2009.05.06 9:11 am »Author: admin »

在一年多以前,我曾经在<<对DB2 V9的疑问>>这篇blog里面提到我对db2v9这个版本的2个feature的疑问。其中一个是在db2v9里面的分区表上如何建立local索引。在和IBM的一些工程师交流的时候,他们好像对这个没啥概念。我也一直觉得这是一个很大的缺陷。在一年多后的今天,参加了一个DB2 9.7 OVERVIEW的conference。我终于在DB2 9.7的release里面看到了DB2 9.7终于有这样一个new feature:”Ability to create local (partitioned) index”

我很欣慰,不容易啊,呵呵。

关于一个存储过程问题的解决

2009.05.04 9:01 pm »Author: admin »

一个哥们转过来一个问题,一个金融行业的客户在部署应用的时候,发现当应用在作汇总数据的时候,随着数据的增加,处理性能呈非线性的降低,现在在处理到6000万条记录的时候,系统变得停滞,存在大量的I/O Wait.和排序溢出。
接到case后,因为不能直接连接客户的系统上直接察看。所以,我的第一反应是,让系统作一次runstats/reorg。但是客户说,他们每天定时作。于是,我让他们取出”select stats_time, tabname from syscat.tables where tabname = ‘tab_name’,发现果然是比较新的统计结果。没有办法只有让他们发db2support.zip,但是最后客户说他们在内网,大的压缩文件传不出来。晕…,只好让他们先传db/dbm cfg文件过来。发现其中虽然有不合理的地方,但是根据他们的硬件配置来看,不应该导致这样严重的局面。
没有办法,只好让他们把存储过程拿过来看看,发现他们的存储过程,大量的用到游标,然后根据不同的条件,将不同结果集insert到不同的表里面。一个典型的汇总处理过程,没看两眼,我就发现问题所在,客户的存储过程没有用到”临时表”,把这些存储过程改成用到临时表后,把修改后的程序和建立临时表空间的SQL发过去后。让客户重新编译后,客户称将近一亿条的大表处理,都能顺利完成。
可见临时表在大型系统中的数据汇总/排序处理应用中,是相当重要的。
不过,后来这个客户又碰到另外一个问题,也是关于存储过程中对临时表的调用,也蛮有意思的,下次说了。

Oracle收购Sun后,IBM也在行动

2009.04.24 9:45 am »Author: admin »

轰轰烈烈的Oracle和Sun并购案后,IBM的失意溢于言表。作为一个如此大牌的,历史悠久的大公司。他的反应不仅业界,华尔街都在关注,而且像我们这些升斗小民也很有兴趣想看看IBM的应对。

很快,我注意到了最近IBM作出的两个Announce:

1.IBM Announce DB2 9.7 for LUW and InfoSphere Warehouse 9.7.

2.EnterpriseDB and IBM Collaborate to Integrate Technology in New Version of DB2.
请注意EnterpriseDB旗下的产品就是大名鼎鼎的opensource DB:PostgreSQL

很显然,IBM不会眼睁睁的看着Oracle去继续瓜分本来就不太占优势的数据库市场份额。已经有所应对。但是这2个Announce的分量很明显不能和Oracle和Sun并购案同日而语。其实,如果这个时候,IBM和SAP要是联合起来做一些事情,估计就要好戏看了:)
Who Knows,让我们继续旁观。

IBM Announce DB2 9.7 For LUW

2009.04.23 10:50 am »Author: admin »

在Oracle收购Mysql之际,IBM不甘寂寞的推出DB2 9.7 for LUW.虽然这个版本不是一个革命性的升级,但是有一些新的特性,依然值得我们去关注。

从Announce出来的信息来看,在Compress,Partition table,数据库的管理,开发,XML几个方面都有一些新的改进。另外,我们依然在等待SAP对DB29.7的certification.

也许,对我来说,又一个Migration的项目在等待着我(:

  •  

    July 2009
    M T W T F S S
    « Jun    
     12345
    6789101112
    13141516171819
    20212223242526
    2728293031  
  • Google Friends

  • Flickr Photo


    By Erik Rasmussen
  • ADs by Google