DB2安装及使用1概述1.1编写目的目前由于项目的需要,多次用到DB2数据库,但因为与之前广泛、熟练使用的Oracle数据库的差异,使得DB2数据库在应用过程中出现了一些安装及使用上的问题;为了解决这些问题,特此编写此文档;1.2适用范围此文档适应于开发人员、测试人员、实施人员等;1.3名词解释此节将对下文中出现的,以及涉及DB2数据库必须了解的名词做出解释;用户:指操作系统用户,非DB2数据库用户,DB2无数据库用户的概念;系统:DB2数据库的一个安装;实例:数据库管理器,是数据库管理器在内存中的映像,是管理数据的DB2代码,为数据库的运行提供环境;数据库:是一个对象集合,这些对象指表空间、表、视图、索引等,这些对象存储在表空间中;表空间:用来存储数据库对象,由多个容器组成;容器:这里指表空间容器,可以理解为物理存储空间,是表等数据库对象实实在在存储的地方;模式:是数据库对象的逻辑分组集合;数据库中所建的每一个对象都有模式,这些模式会隐式会显式的增加为对象的前缀;数据页(datapage):数据库最小的存储、读写单位,有4KB,8KB,16KB,32KB几种类型;2DB2安装前2.1搭建环境2.1.1软件准备操作系统:CentOS-6.5-i386-minimal.iso环境载体:VirtualBox-4.3.24-98716-Win.1425444683.exe注:此处使用虚拟机virtualbox作为环境载体做安装演示,由于以后的生产环境并不涉及虚拟机方面的安装和使用,故在此不对virtualbox的安装做详述;有兴趣研究的同事可以在互联网上搜索相关教程即可;以下直接介绍操作系统的安装;2.1.2软件安装打开安装好的virtualbox软件,点击【新建】在弹出的窗口中,根据实际情况依次填写名称、选择相应的类型和版本,此处选择linux类型,OtherLinux(32位)版本,点击【下一步】接下来为虚拟机分配内存,按实际情况和需要滑动标尺或直接填写相应的数值即可,此处选择2048MB大小,点击【下一步】分配虚拟硬盘,这一步是为了给操作系统分配一个活动的空间,操作系统中信息和数据将存储在此空间内,在这里我们选择第二个【现在创建虚拟硬盘】,点击【创建】虚拟硬盘文件类型,直接选择默认的即可,点击【下一步】此处选择【固定大小】,性能较好,点击【下一步】接下来,选择虚拟硬盘文件创建的位置和大小,可根据实际情况做配置,此处选择安装在E盘,硬盘大小为20G,点击【创建】,即开始创建接下来就是等待安装,直至安装完成2.1.3软件配置点击virtualbox主界面上的【设置】按钮,在弹出的窗口中进程参数设置在左边的树状模块中选择【系统】--【处理器(P)】,在拓展性前的选勾,如图所示再选择【存储】,点击【没有磁盘】,在右边显示的内容中,点击磁盘模样的图标,点击【选择一个虚拟光盘】,找到你的CentOS-6.5-i386-minimal.iso文件的位置,选中即可再选择树状模块中的【网络】--【网卡1】,在连接方式中选择与宿主机网卡的通讯方式,此处选择HOST_ONLY方式,名称是宿主机网卡的名称;设置完毕,点击确定即可;2.1.4OS安装点击virtualbox主界面的【启动】按钮,在弹出的窗口选择第一项,如图所示,回车即可在完成自检之后,在弹出的窗口中选择SKIP,跳过测试,ENTER回车然后点击NEXT设置语言,此处选择简体中文,点击Next选择键盘语言,一般为美式英语,点击【下一步】选择存储设备,此处选择基本存储设备,点击【下一步】即可,在检测完存储设备后,选择【是,忽略所有数据】,点击【下一步】即可设置主机名和网络配置,此处直接点击【下一步】,具体参数可在系统建好后在设置;时间设置,选择城市【亚洲/上海】,在【系统时间选择UTC时间】前打勾,点击下一步设置root用户密码,根据实际情况自定义设置即可,点击下一步选择安装类型,由于是在虚拟机中安装,且兼顾宿主机的情况,我们选择【创建自定义布局】,点击下一步接下来就是最重要的操作系统分区的创建,点击【空闲】一行,点击【创建】,选择【标准分区】,依次创建以下节点:根目录“/”,/boot目录,swap分区(一般为内存大小的1.5-2倍);如下所示分区建好后,如下图所示,点击【下一步】然后会弹出是否格式化的提示,选择【格式化】,并在弹出的窗口中选择【将修改写入磁盘】,等待分区的创建完成即可分区建好之后,会弹出安装引导装载程序的窗口,直接点击【下一步】即可然后,就进入系统的安装阶段,系统自检、分析依赖包后,就会进行安装包的安装,由于是简化版的linux,所以安装过程较为简单,等待安装完成即可安装完成后,点击【重新装载】,启动操作系统;启动后输入root及密码就可以登录系统使用了2.2OS参数设置2.2.1网络设置2.2.1.1虚拟机网卡设置使用root用户登录操作系统,输入#vi/etc/sysconfig/network-scripts/ifcfg-eth0;在该文件中编辑以下内容(IP信息可以自定义,只需要子网掩码、网关与之相对应即可)启动网络输入#servicenetworkstart回车;2.2.1.2宿主机网卡设置以win8为例,打开网络和共享中心,点击【更改适配器设置】,可以看到在安装virtualbox时安装的名为VirtualBoxHost-OnlyNetwork的网卡右键--【属性】,双击【Internet协议版本IPV4】,设置与虚拟机中的网卡在同一网段的相对应的IP、子网掩码等信息,如图所示通讯测试;在宿主机的cmd命令窗口中,输入ping172.16.217.140,若可以ping通,则表明二者之间的通讯畅通;2.2.2其他设置2.2.2.1关闭防火墙输入#serviceiptablesstatus---查看防火墙状态#serviceiptablesstop---关闭防火墙#serviceiptablesstart---启动防火墙注:至此OS的环境搭建就完成了,接下来就是DB2数据库的安装!3DB2安装中3.1软件准备DB2版本:db2_v9.7_linuxia32_server.tar.gz;SSH工具:SecureCRT;3.2软件安装3.2.1软件上传在home目录下新建一个文件夹,以供文件上传之用输入#mkdir/home/db2package使用SecureCRT工具登录到OS(具体用法在此不做详述),使用快捷键ALT+P,打开SFTP界面,如图所示输入sftpcd/home/db2package/----进入文件上传目标目录sftplcd/D:/exe/serverinstal/----进入本地存储DB2安装文件的目录sftpputdb2_v9.7_linuxia32_server.tar.gz--put命令上传DB2安装文件回车即可开始上传3.2.2软件解压输入#cd/home/db2package/---进入软件上传的目录#tar-xzvfdb2_v9.7_linuxia32_server.tar.gz---回车即可进行解压3.2.3安装解压完成后,会在软件上传的目录下生产一个server目录,进入目录#cd/home/db2package/server该目录下就包含了db2的安装程序,如图所示db2prereqcheck----先决条件检查,用于检测当前环境是否符合DB2安装要求db2setup----图形化界面安装,需要配置X环境,在此不再详述;db2_install----命令行安装,以下将使用此种方式进行安装说明;db2_deinstall----卸载安装DB2时,运行db2_install文件输入#./db2_install回车进行安装,片刻后会出现一些选项,首先是安装路径,默认路径是/opt/ibm/db2/v9.7;输入“否”,表示选择默认路径;输入“是”,表示不选择默认路径,则会提示你输入新的安装路径此处我们选择输入“否”;则会出现下图所以内容其中,以下表示DB2的产品ESE--企业版CONSV--连接服务器版WSE--工作组版EXP--易捷版PE--个人版CLIENT--客户机RTCL--运行时客户机此处,根据实际需要选择版本,我们选择EXP,安装易捷版,输入EXP,回车,即可进行安装,如下图注:到此处,DB2就安装完毕了,下面我们来介绍DB2的使用;4DB2安装后的使用4.1创建用户此处创建的用户属于操作系统用户,DB2无数据库用户,此点与Oracle等其他关系型数据库有所不同;使用root用户登录#groupadddb2grp---实例用户用户组#groupadddb2fgrp---受防护用户用户组#groupadddasadm---DAS用户用户组#useradd-m-gdb2grp-d/home/db2inst-s/bin/bashdb2inst--创建实例用户#useradd-m-gdb2fgrp-d/home/db2fenc-s/bin/bashdb2fenc--创建防护用户#useradd-m-gdasadm-d/home/dasusr-s/bin/bashdasusr--创建DAS用户#passwddb2inst---设置密码,不详述#passwddb2fenc#passwddasusr其中,实例用户:每个实例都必须对应一个操作系统用户,该用户用于操作所有的DB2进程,管理所有DB2的文件系统和设备,必须创建;受防护用户:用于在数据库的运行空间外运行用户自定义的函数和存储过程,主要用于UDF,虽无大用处,但是建议创建;DAS用户:用于远程管理,可以不创建,此处就没有创建此用户;4.2创建实例以root用户登录操作系统进入DB2的安装目录下输入#cd/opt/ibm/db2/V9.7/instance创建数据库实例输入#./db2icrt-p50000-udb2fencdb2inst其中50000表示监听端口,db2inst为实例名称,需要与实例用户名相同,db2fenc表示该受防护用户可使用该实例;设置数据库实例随系统重启而启动输入#su-db2inst$./db2iauto-ondb2inst启动数据库实例输入$db2start4.3创建数据库及表空间创建数据库启动数据库实例后输入$exit---登出,至root用户#mkdir/home/test/testdb---创建数据库安装目录#chowna+w/home/test/testdb---更改目录权限#su-db2inst---切换至实例用户$db2createdbtestdbon/home/test/testdbusingcodesetgbkterritorycn其中,testdb为数据库名称,/home/test/testdb为数据库创建目录,应该提前创建;创建表空间a.在创建表空间之前,我们可以先创建一个缓冲池,若不创建,将会使用数据库默认缓冲池IBMDEFAULTBP;输入$db2connecttotestdb-----连接数据库$db2createbufferpoolbp32ksize10000pagesize32k其中,bp32k为缓冲池名称,size表示缓冲池大小,pagesize表示数据页大小b.输入$exit---登出,至root用户#mkdir/usr/db2/---创建数据库安装目录#chowna+w/usr/db2/---更改目录权限#su-db2inst---切换至实例用户$db2createtablespacedb2instpagesize32kmanagedbydatabaseusing(file'/usr/db2/tablespace_db2inst'3g)bufferpoolbp32k其中,db2inst为表空间名,pagesize为数据页大小,需要与引用的缓冲池的数据也大小相同