前段时间在网上看到CSDN举办的写书评得技术图书赢下载分活动,申请了一本,没过几天就收到了CSDN寄来的《循序渐进DB2 (第2版)——DBA系统管理、运维与应用案例》一书。厚厚的一本近600页,很是欣慰,恰巧本人本来也想好好学习下DB2,所以就将此作为一个新的开始。首先呢,按照约定,要给书写个书评,可是笔者最近实在是太忙了,没有时间更新博客,更没有时间去阅读这本新书,但是答应了CSDN的又不能反悔,做人不能失了信用,所以只能在晚上挤出点儿时间来写下。这一篇估计篇幅不会过长,因为笔者并没有看多少页,后面会一一补上,因为之前说过了,这只是个开始!
本章系DB之美[从菜鸟到高手演练]系列之初识DB2,是本人写的第一篇关于DB的文章,一边评书,一边简介一下DB2的安装方式。DB2作为IBM为数不多的自主研发的软件,有着很不错的性能。从这一篇起,笔者会不断的出一些关于DB2 的文章,和大家一起学习。欢迎读者朋友们阅读、评论以及随时提出宝贵的意见和建议!
新浪微博:http://weibo.com/xtfggef 欢迎给我留言、私信。
首先,我还是讲讲我初次拿到这本书的感受。
就我个人看书习惯而言,拿到书后,首先看作者,只有牛的人才能写出牛的书,这本书的作者是牛新庄,初看好像没有听说过这个人,百度了一下,才发现真是个数据库奇才,成长经历精彩而励志,我觉得可以作为技术达人的典范,有兴趣的可以自己百科下。就凭作者的技术积累及成功经验,此书必须好好去读!
大致的翻了下这本书,感觉讲解的很不错,非常详细,从安装过程,到DB2的基础知识,以及高级的部分如性能调优,都有详细的讲解。书中的图文排版都比较合理,字号较大,图片清晰,非常适合阅读!因为没有详细的去看,只能这么粗略的说一下,等笔者后面通读了,还会继续写一篇博文来说明。总体对这本书的评价还是蛮高的,希望感兴趣的朋友们去看看!
关于DB2,我不希望介绍太多,因为过于common的知识,大家完全可以通过搜索引擎去获取。我只想说,DB2的性能以及稳定性绝不亚于Oracle,这一点是有数据支撑的,DB2在银行、电信、保险、证券的行业有广泛的应用。
下面我将进行一下DB2的安装过程,按平台划分,常用的安装分为windows、linux安装、unix安装,还有一种分法,就是图形界面和非图形界面(silently)安装。不论在windows上还是linux上,图形界面安装都是比较简单的,一直next就行了。比较难的是在linux下的silently安装。所谓silently安装就是在命令行下,按照配置在响应文件(response file)里的配置信息,进行安装。事实上,图形界面就是用来一步一步获取安装参数的,然而展现图形会带来很大的资源消耗问题,所以将配置信息写在响应文件里,会大大提高安装速度。按照我之前的安装经验,速度快的,有几分钟就装好了。silently安装适合在server端进行安装。最新的DB2v10.1,笔者因为时间关系还没有在linux下安装过,下面我贴出的是我之前在ubuntu10.04 server 64bit上安装DB2v9.7 ese版本的步骤,探索过程比较漫长,但最后还是成功安装了。按照官方提供的文档,有一些问题,只能是自己根据过程中报的错误一步一步去解决。
先附一个响应文件示例(db2ese.rsp):
*-----------------------------------------------------* Generated response file used by the DB2 Setup wizard安装过程如下:
* generation time: 3/11/13 5:04 AM
*-----------------------------------------------------
* Product Installation
LIC_AGREEMENT = ACCEPT
PROD = ENTERPRISE_SERVER_EDITION
FILE = /opt/ibm/db2/V9.7
INSTALL_TYPE = CUSTOM
COMP = APPLICATION_DEVELOPMENT_TOOLS
COMP = DB2_UPDATE_SERVICE
COMP = COMMUNICATION_SUPPORT_TCPIP
COMP = JDK
COMP = JAVA_SUPPORT
COMP = CONTROL_CENTER
COMP = SPATIAL_EXTENDER_CLIENT_SUPPORT
COMP = FIRST_STEPS
COMP = INFORMIX_DATA_SOURCE_SUPPORT
COMP = BASE_DB2_ENGINE
COMP = REPL_CLIENT
COMP = LDAP_EXPLOITATION
COMP = INSTANCE_SETUP_SUPPORT
COMP = DB2_SAMPLE_DATABASE
COMP = SQL_PROCEDURES
COMP = DB2_DATA_SOURCE_SUPPORT
COMP = BASE_CLIENT
COMP = TEXT_SEARCH
COMP = CONNECT_SUPPORT
*-----------------------------------------------
* Das properties
*-----------------------------------------------
DAS_CONTACT_LIST = LOCAL
* DAS user
DAS_USERNAME = dasusr1
DAS_GROUP_NAME = dasadm1
DAS_HOME_DIRECTORY = /home/dasusr1
DAS_PASSWORD = pwd
TOOLS_CATALOG_DATABASE = toolsDB
TOOLS_CATALOG_SCHEMA = SYSTOOLS
* toolsDB properties
DATABASE = toolsDB
toolsDB.INSTANCE = inst1
toolsDB.DATABASE_NAME = TOOLSDB
toolsDB.LOCATION = Local
* ----------------------------------------------
* Instance properties
* ----------------------------------------------
INSTANCE = inst1
inst1.TYPE = ese
* Instance-owning user
inst1.NAME = db2inst1
inst1.GROUP_NAME = db2iadm1
inst1.HOME_DIRECTORY = /home/db2inst1
inst1.PASSWORD = pwd
inst1.AUTOSTART = YES
inst1.SVCENAME = db2c_db2inst1
inst1.PORT_NUMBER = 50000
inst1.FCM_PORT_NUMBER = 60000
inst1.MAX_LOGICAL_NODES = 4
inst1.CONFIGURE_TEXT_SEARCH = YES
inst1.TEXT_SEARCH_HTTP_SERVICE_NAME = db2j_db2inst1
inst1.TEXT_SEARCH_HTTP_PORT_NUMBER = 55000
* Fenced user
inst1.FENCED_USERNAME = db2fenc1
inst1.FENCED_GROUP_NAME = db2fadm1
inst1.FENCED_HOME_DIRECTORY = /home/db2fenc1
inst1.FENCED_PASSWORD = pwd
inst1.FEDERATED = YES
*-----------------------------------------------
* Installed Languages
*-----------------------------------------------
LANG = EN
*-----------------------------------------------
* SA MP Base Component
*-----------------------------------------------
INSTALL_TSAMP = NO
1、安装缺失的包 dpkg -i xxx.deb 注意版本和顺序
这点与操作系统及其版本有关,不同的系统,不同的版本,需要的包也不一样。
ksh (ksh_93t+-2_amd64.deb)--
libaio1(libaio1_0.3.107-3ubuntu2_amd64.deb) --
libaio-dev (libaio-dev_0.3.107-3ubuntu2_amd64.deb)--
libc-bin(libc-bin_2.11.1-0ubuntu7.8_amd64.deb) --
libc6 (libc6_2.11.1-0ubuntu7.8_amd64.deb)--
libc6-i386 (libc6-i386_2.11.1-0ubuntu7.8_amd64.deb)--
ed (ed_1.4-1build1_amd64.deb)(解决Command to Run...hung住问题)--
libstdc++6 (libstdc++6_4.4.3-4ubuntu5.1_amd64.deb)--
g++-4.4 (g -4.4_4.4.3-4ubuntu5.1_amd64.deb)--
libstdc++6-4.4-dev (libstdc++6-4.4-dev_4.4.3-4ubuntu5.1_amd64.deb)--
libstdc++6-4.4-pic (libstdc++6-4.4-pic_4.4.3-4ubuntu5.1_amd64.deb)--
lib32gcc1 (lib32gcc1_4.4.3-4ubuntu5.1_amd64.deb)--
lib32stdc++6 (lib32stdc++6_4.4.3-4ubuntu5.1_amd64.deb)--
2、编写response file(使用已经写好的response file不用作任何改动)
3、修改/etc/sysctl.conf文件(解决NO database manager问题)
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
立即使内核配置生效:sysctl -p
4、将hostname和/etc/hosts文件中的对应起来(解决Segmentation Fault问题)
在terminal里直接输入hostname,看看结果和/etc/hosts文件中的是否对应。
5、执行安装
-- sudo ./db2setup -r db2ese.rsp
6、卸载db2
到db2_home/instance下有很多命令,./db2ilist列出所有instance
-- 卸载db2 instance:./db2idrop -instancename
-- 卸载db2 das:./dasdrop
在linux上安装DB2还是有不少的难度的,如果换成red hat,上面的步骤还需要有不少改动。
总结一下,这篇博文有两个方面的内容:第一,应邀对《循序渐进DB2 (第2版)——DBA系统管理、运维与应用案例》一书作书评。第二,开始我的DB2学习之旅,后面估计会不断的出炉一些DB方面的文章,希望能和大家一起探讨、学习,敬请朋友们持续关注!