Ubuntu11.10下安装DB2 Express C v10.1实录

来源:互联网 发布:java sleep 释放cpu 编辑:程序博客网 时间:2024/05/20 18:18


        DB2是IBM公司的一套关系数据库管理系统,在各种企业中使用广泛。 DB2 Express-C 是基于 DB2 for Linux, UNIX, and Windows 的成熟核心

技术,可供免费下载、使用和重新分发。DB2 Express-C 非常简单、灵活、强大且可靠。是小型企业、开发人员、教师和学生的理想选择。提供了

以下功能:

1. 支持 Linux、Windows、Solaris 和 Mac 操作系统。

2. 有效管理关系和 XML 数据。

3. 自助管理功能和自动性能优化。

4.  为构建和部署各种使用关系数据库数据的网站和应用程序提供稳固基础。

5.  与其他 DB2 版本实现全面的互操作性。

6.  一个可选的低成本产品,包含更高的资源限制、24x7 IBM 客户支持,以及其他特性(如高可用性集群和复制等)。


        Ubuntu 操作系统是最流行,发展最快的开源操作系统之一。基于 Debain发行版本构建。每年4月和10月发布新版本,并以年份加月份的方式

命名。每两年出一个长期支持的稳定版本,版本代号用动物命名。比如12.04 就是12年4月发行的长期支持版本,代号:Precise Pangolin (精确的

穿山甲)。

        需要说明的是手工安装的目的是为了学习和研究。其实在12.04 的软件源中已经提供了 DB2 Express-C Edition 9.7 Fix Pack5 这个包,不需要

自己手工安装。用命令行安装,可以看到安装的交互过程,可以学到的更多。


      硬件需求:可在具有任意数量处理器和内存量的任意大小的系统上运行 DB2 Express-C。但是,DB2 Express-C 限制了总资源利用率,如下所示:

                       处理器:2 核

                       内存:    2 GB


      磁盘需求:DB2 Express-C 需要的磁盘空间取决于您选择的安装类型和所拥有的文件系统类型。DB2 Setup 向导提供的大小估算值基于您在

                        典型、精简或自定义安装期间选择的组件。


      内存需求:内存需求受数据库系统的大小和复杂性、数据库活动的范围,以及访问系统的客户端数量的影响。在最低限度下,一个 DB2 数据库

                        系统需要256 MB RAM。对于只运行一个 DB2产品和 DB2 GUI 工具的系统,需要至少 512 MB RAM。但是,建议使用 1GB RAM,

                        以改进性能。这些需求不包含针对系统上运行的其他软件的任何其他内存需求。 必须为 DB2 数据库服务器启用换页(也称为交换)

                        功能。大部分系统其合理的最小交换或换页空间应为 RAM 的 25% - 50%。可能需要更多的交换或换页空间,以防内存过量使用。


      准备操作系统&更新软件仓库:从官网下载并安装 Ubuntu Server12.04 或 Ubuntu12.04桌面版。安装完成后,做简单的配置并安装常用软件,

                                                      安装安全更新。最后将配置、安装软件过程写成脚本,方便以后使用。


        使用 APT 进行安装配置:使用 APT 下载和安装 DB2 Express-C。然后,创建 SAMPLE 数据库,使用一个 SQL 查询测试连接。

                                             1. 执行下列命令以下载和安装 DB2 Express-C: sudo apt-get install db2exc

                                                        此命令创建默认的 DB2 数据库用户 db2inst1 并启动 DB2 服务器。

                                             2. 验证 DB2 Express-C 的安装: 

                                               2.1) 登录到 db2inst1 帐户:su db2inst1;

                                               2.2) 创建 SAMPLE 数据库:db2sampl;

                                               2.3) 激活数据库:db2 activate db sample;

                                               2.4) 连接到数据库,执行SQL语句:   db2 connect to SAMPLE          db2  "SELECT * FROM EMP" ;

                                                                (若 DB2 Express-C 已正确安装和配置,SELECT 语句会从 EMP 表返回结果集。)    

                                                          3.  设置 db2inst1 密码:

                                               3.1) 以根用户身份登录:sudo su

                                               3.2) 更改 db2inst1 用户密码:passwd db2inst1

                                               3.3) 退出根用户帐户: exit  


      下载安装包手动安装配置 

                                                DB2版本:DB2 Express C v10.1; 

                                                DB2安装方式:1.  图形界面安装(对应的安装文件是安装包根目录的db2setup); 

                                                                        2.  终端命令行安装(对应的安装文件是安装包根目录的db2_install);


                    1. 解压db2_v101_linuxia32_expc.tar.gz 文件到用户目录;

                                  tar -xvzf db2_v101_linuxia32_expc.tar.gz (对应安装包需从 IBM 官网下载,可以参考 DB2 Express-C 快速入门。)


                    2. 执行db2_install 命令,完成安装

                                  sudo sh db2_install


        在Ubuntu系统中,/bin/sh 是一个指向 Dash (Debian Almquist Shell) 的符号链接。由于Dash执行速度比Bash快,且依赖的库更少。所以,

        Ubuntu将 /bin/sh 指向它,以获得更快的执行速度。但是Dash相对的功能较少,没有function关键字,不支持数组等等。所以在执行某些

        shell 脚本时,Dash会报错,导致脚本无法执行。需要切换更通用的Bash做为默认的shell。


        一个shell 的例子(请原谅我将变量命名为 boo):

  read -p "Input (Y/N): " boo  if [ "$boo" ==  "y" ]||[ "$boo" == "Y" ]; then     echo "input Y/y."       exit 0  elif [ "$boo" == "n" ]||[ "$boo" == "N" ]; then     echo "input N/n."       exit 0  else     echo "input error."       exit 0  fi 


        假设上面的shell 叫 test, bash  test.sh 正常执行。  dash test.sh 就会报以下错误:

dash test.sh Input (Y/N): xtest.sh: 5: [: x: unexpected operatortest.sh: 5: [: x: unexpected operatortest.sh: 8: [: x: unexpected operatortest.sh: 8: [: x: unexpected operatorinput error.

        可以做如下操作,或者使用chsh命令修改。

             ls -l /bin/sh                                                                                                           #  查看系统默认的shell

             lrwxrwxrwx 1 root root 4 2011-04-27 00:56 /bin/sh -> dash                                #  默认shell指向dash

             sudo dpkg-reconfigure dash                                                                               #  修改,在弹出的设定dash页面内选择"否"   

             ls -l /bin/sh                                                                                                          #  再次查看

             lrwxrwxrwx 1 root root 4 2012-09-02 23:03 /bin/sh -> bash                                #  系统默认的shell指向bash


                                   

                    3. 创建用户:

                                      /usr/sbin/groupadd db2iadm1                                                                          # 创建数据库实例所有组

                                      /usr/sbin/groupadd db2fadm1                                                                          # 创建数据库操作组

                                     /usr/sbin/useradd –m -g db2iadm1 –d /home/db2inst1 db2inst1                      # 创建数据库实例所有者

                                      /usr/sbin/useradd –m -g db2fadm1 –d /home/db2fenc1 db2fenc1                  # 创建数据库操作员


                             4.创建实例:          

                                                          /opt/ibm/db2/V10.1/instance/db2icrt –a server –u db2fenc1 db2inst1


                      5.产品许可证:

                                                          /opt/ibm/db2/V10.1/adm/db2licm -a   /home/ggf/expc/db2/license/db2expc_uw.lic


                      6.允许SMS的多页分配:

                                                          /opt/ibm/db2/V10.1/cfg/db2ln


                      7.添加DB2端口:

                                                         sudo  vi /etc/services 加入下面一行," db2inst1   50000/tcp " 


                              8.DB2配置:

                                         sudo passwd db2inst1          #修改密码,上面建了用户,但没有设置密码。

                                         su – db2inst1

                                         db2set DB2_EXTENDED_OPTIMIZATION=ON

                                         db2set DB2_DISABLE_FLUSH_LOG=ON

                                         db2set AUTOSTART=YES 

                                         db2set DB2_STRIPED_CONTAINERS=ON

                                         db2set DB2_HASH_JOIN=Y

                                         db2set DB2COMM=tcpip

                                         db2set DB2_PARALLEL_IO=*

                                         db2set DB2CODEPAGE=819

                                         #Update dbm cfg

                                         db2 update dbm cfg using SVCENAME db2inst1

                                         db2 update dbm cfg using INDEXREC ACCESS


                     9.启动 DB2:

                                          db2start        

                                          # 若 db2start 启动失败,提示缺少 libaio.so.1包,则在命令行输入 sudo apt-get install libaio1 安装共享库即可。

                                              同理,缺少什么包,就安装什么包。若不清楚提示信息描述的包名,可以复制提示信息去谷歌问。


                     10.创建数据库实例:

                                           db2  " CREATE DATABASE  example "


                     11.连接&查询:

                                           db2 "connect to example"        #  连接建好的数据库

                                           db2 "select * from tb"               #  查询表



修订: 2014年6月15日重新排版,并修改部分明显错误。知识总会更新,以前写的东西一定有写错的,有时间就修改完善。

             好文章都是改出来的。哪有一气呵成写完还没有错的,呵呵。  


参考文档:

                    《最佳实践-在 Ubuntu Linux 上部署 IBM DB2 Express-C》 

                    《DB2_Express-C_9.7_3rd_Edition_Chinese》



注:关于在Ubuntu上安装 Oracle 遇到的包依赖的问题。sudo apt-get install rpm,用 rpm -ivh *.rpm来安装,可完美解决包依赖问题。 

         


原创粉丝点击