UNIX/Linux安装DB2的各种方式,不同,及具体的一些细节。



向导化安装:   



        setup.exe -i cn -u 响应文件名


         -i cn  表示向导显示为中文, -i en 则显示为英文


        产生的安装日志文件db2.log放在db2安装路径下的DB2LOG目录下.


 常见问题:


 Windows会生成db2admin用户,XP安装后会很烦的把登录用户给改成了这个, 原来的administrator用户登录时不见了


   解决方法如下:


控制面板 -> 用户帐户 -> 选择登录和注销选项 -> 取消使用欢迎屏幕的勾选




UNIX/Linux的安装:


前期安装环境检查:


一. 前期工作:


   1.检查环境


        /tmp空间大小,至少2G


        内存大小,最少1GB. (1G仅能支持5个客户端并发连接,以后每多一个,到少要增加16mb的内存支持)



        /etc/sysctl.conf 参数设置


   --首先要--修改系统内核参数,这和Oracle安装时参数差不多

   -- /etc/sysctl.conf (主要是改,内存,信号量,消息)

  kernel.sem = 250 256000 32 1024 # 每个信号对象集的最大信号对象数;系统范围内最大信号对象数;每个信号对象支持的最大操作数;系统范围内最大信号对象集数。

  kernel.shmall = 3774873 # 可以使用的共享内存的总量。 16gb内存的90%为例(14.4gb/4kb得到)

  kernel.shmmax = 1073741824 # 最大共享内存段大小。 64位系统为例 ,至少1gb,建议与物理内存相等


  kernel.msgmni=1024 #可以启动的代理进程数

  kernel.msgmax=65535 #影响一个队列中可以发送的消息大小

  kernel.msgmnb=65535 #队列大小

 

  修改完成后,使其生效: sysctl -p 


    2. 向导显示中文还是英文


  ksh sh bash

  LANG=<locale>

  Export LANG


  CSH

  Setenv LANG <locale>

  //如当前env为英文,想DB2安装向导显示中文

   LANG=zh_CN

   Export LANG


    3. 执行检查脚本db2prereqcheck

二. DB2安装 


Unix/Linux支持三种安装方式:
a.向导化安装:
    db2setup
b.响应文件方式安装:
    db2setup -r 响应文件名 -t 过程文件名 

   -r 响应文件名 : 保存了安装过程中所有的指定选项.

  -t 过程文件名  : 安装过程的相关信息会保存在这个文件中.

上面两种,可提前创建好用户和组,也可在向导中创建.

都好简单的.后面说的内容都可以在向导中完成.

c.还有一种db2_install 脚本方式:

./db2_install -b /u01/db2v9 -p ESE

./db2_install -b /opt/ibm/db2/v9.5 -p ESE

/*

默认不输参数也会提示

CLIENT : 客户端

RTCL     : 运行期客户端 

ESE       : ESE服务器 

*/

 后面的创建用户什么的都用这个来做说明,原因是它不基于图形界面,是一种很常见的安装方式.
 产生的安装日志文件db2setup.log放在/tmp目录下.


 


三. 创建用户和组


 任务说明:


 db2inst1 db2iadm1 DB2实例用户,用户组


 db2fenc1 db2fadm1 受防护的用户,用户组. 运行自定义函数和过程


 dasusr1 dasadm1 创建DB2管理服务器用户,用户组.



Linux:


  groupadd db2iadm1


  groupadd db2fadm1


  groupadd dasadm1


  useradd -g db2iadm1 -m -d /home/db2inst1 db2inst1


  useradd -g db2fadm1 -m -d /home/db2fenc1 db2fenc1


  useradd -g dasadm1 -m -d /home/db2usr1 dasusr1



db2inst1


db2fenc1


dasusr1



AIX :


  groupadd -g 999 db2iadm1


  groupadd -g 998 db2fadm1


  groupadd -g 997 dasadm1



  --pgrp = primary group 主用户组(只有指定一个)


  --groups = 用户所属组,可以有多个


  mkuser id=1004 pgrp=db2iadm1 groups=db2iadm1 home=/home/db2inst1 db2inst1


  mkuser id=1003 pgrp=db2fadm1 groups=db2fadm1 home=/home/db2fenc1 db2fenc1


  mkuser id=1002 pgrp=dasadm1 groups=dasadm1 home=/home/dasusr1 dasusr1



 (不想用mkuser命令行,用smitty mkuser 也不错噢)


 


db2inst1


db2fenc1


dasusr1



四.使用root用户,执行dascrt命令,创建DB2管理服务器


 --cd  /opt/ibm/db2/V9.7/instance/


  dascrt -u dasusr1


 


五. 使用root用户,执行db2icrt命令创建实例(也在instance目录下)


    db2icrt -a server -u db2fenc1 db2inst1   


    -a : 服务端认证模式



    -u : 指定的受防护用户


   //当用户目录下已有"sqllib"目录,实例会创建失败.



六. 为创建的实例配置TCP/IP通信


  --只有配置了通信协议,才能接受DB2客户端的请求



  --1.root用户,在AIX的TCP/IP服务文件(/etc/services)中指定监听端口


  --内容:


  db2c_db2inst1 50000/tcp # DB2 connection service port



  --2.db2inst1用户,为数据库配置参数 SVCENAME.


  db2 update dbm cfg using SVCENAME db2c_db2inst1 


  --3.db2inst1用户,设置通信代理.


   db2set DB2COMM=TCPIP



装完后进去测试下



 su db2inst1;


 cd /home/db2inst1/sqllib/adm


 db2start


 db2 create db testdb


 db2 connect to testdb


 db2 "create table emp(emp_id int,emp_name varchar(8))"


 db2 "insert into emp(emp_id,emp_name) values (1,'xcl')"


 db2 "select * from emp"


 db2 terminate


 db2stop




后续,创建例子数据库:  


  • To create a sample database with the default characteristics, issue:
db2sampl
  • On Windows operating systems, to create a sample database named mysample on the E: drive containing only SQL database objects in default schema and to view status messages, issue:
db2sampl -dbpath E -name mysample -sql -force -verbose
  • To create the DB2 Version 8 sample database, issue:
db2sampl -v8




 附上DB2常见目录:


root用户:


AIX®、HP-UX 和 Solaris Operating Environment


/opt/IBM/db2/V9.1


Linux


/opt/ibm/db2/V9.1



db2inst1 用户:


$ pwd


/home/db2inst1/sqllib/adm


$ id


uid=110(db2inst1) gid=104(db2grp1) groups=1(staff),101(dasadm1)


$



文件注册表 信息


$ ./db2set


DB2COMM=tcpip


$ ./db2set -all


[i] DB2COMM=tcpip


[g] DB2SYSTEM=AIX_RAC1


[g] DB2INSTDEF=db2inst1


[g] DB2ADMINSERVER=dasusr1