• db db2 v9.7 / 9.8


    db2 v9 infocenter

    http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=/com.ibm.db2.luw.qb.server.doc/doc/r0025127.html

    db2 v9 setup / install

    http://ishare.iask.sina.com.cn/f/13994822.html

    http://publib.boulder.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.common.doc%2Fdoc%2Ft0008271.html

    http://dl.iteye.com/topics/download/f3b7ea0b-5d72-359e-b6d4-046b371fbc7a

    -    创建用于 DB2 安装的组和用户标识
     -   创建 DB2 管理服务器 (DAS)
      -  使用 db2icrt 创建实例
       - 为 DB2 文件创建链接 (可选)
        -为 DB2 实例配置 TCP/IP 通信
        -使用许可证中心注册许可证密钥

     

    db2 v9.1 jdk

    C:\Documents and Settings\Lindows>java -version
    java version "1.5.0"
    Java(TM) 2 Runtime Environment, Standard Edition (build pwi32devifx-20070706 (SR
    5 + IZ00983))
    IBM J9 VM (build 2.3, J2RE 1.5.0 IBM J9 2.3 Windows XP x86-32 j9vmwi3223-2007042
    6 (JIT enabled)
    J9VM - 20070420_12448_lHdSMR
    JIT  - 20070419_1806_r8
    GC   - 200704_19)
    JCL  - 20070706

    苏飞作品:DB2视频教程!

    http://www.rootman.cn/forum/redirect.php?tid=1128&goto=lastpost

     

    本集是第一讲,介绍DB2 for Windows 9.5的安装
    在线观看:  http://www.boobooke.com/v/bbk2086
    本集是第二讲,介绍DB2常用的命令行工具
    在线观看:  http://www.boobooke.com/v/bbk2087
    本集是第三讲,介绍DB2的基本管理
    在线观看:  http://www.boobooke.com/v/bbk2088

    http://www.sqlclub.cn/tags.php?/DB2视频教程/

    Windows查看DB2版本

    --dos启动db2过程
    C:\Documents and Settings\Lindows>db2cmd
    E:\Program_Files\IBM\SQLLIB\bin\db2bp.exe
    D:\Program Files\IBM\SQLLIB\BIN\db2env.bat
    set db2clp=%1
    prompt DB2CLP $p$g
    cls
    %2 %3 %4 %5 %6 %7 %8 %9
    
    D:\Program Files\IBM\SQLLIB\BIN\db2setcp.bat
    @db2clpsetcp
    @cls
    @if /i "%COMSPEC%" == "%WINDIR%\system32\cmd.exe" goto WINNT
    :WIN95
    @%1 %2 %3 %4 %5 %6 %7 %8 %9
    @goto END
    :WINNT
    @%*
    :END 
    
    
    
    
    
    
    
    
    --快捷方式启动db2
    C:\Documents and Settings\All Users\「开始」菜单\程序\IBM DB2\DB2COPY1 (缺省值)\命令行工具\ 命令窗口
    "D:\Program Files\IBM\SQLLIB\BIN\DB2CW.BAT"
    @echo off
    rem -----------------------------------------------------------------------
    rem (C) COPYRIGHT International Business Machines Corp. 2002
    rem All Rights Reserved
    rem
    rem US Government Users Restricted Rights - Use, duplication or
    rem disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
    rem
    rem NAME: db2cw
    rem
    rem FUNCTION: Launch the Command Window
    rem
    rem -----------------------------------------------------------------------
    db2cmd db2setcp "%1 %2 %3 %4 %5 %6 %7 %8 %9"
    
    
    
    
    
    
    
    
    C:\Documents and Settings\All Users\「开始」菜单\程序\IBM DB2\DB2COPY1 (缺省值)\命令行工具\ 命令行处理器
    "D:\Program Files\IBM\SQLLIB\BIN\DB2CMD.exe" DB2SETCP.BAT DB2.EXE
    (c) Copyright IBM Corporation 1993,2007
    DB2 客户机 9.5.0 的命令行处理器
     
    可从命令提示符处发出数据库管理器命令和 SQL 语句。例如:
        db2 => connect to sample
        db2 => bind sample.bnd
     
    要获得一般帮助,输入:?。
    要获得命令帮助,输入:? command,其中 command 可以是
    数据库管理器命令的前几个关键字。例如:
     ? CATALOG DATABASE 用于关于 CATALOG DATABASE 命令的帮助
     ? CATALOG          用于关于所有 CATALOG 命令的帮助。
     
    要退出 db2 交互方式,在命令提示符处输入
    QUIT。在非交互方式下,所有命令都必须以“db2”作前缀。
    要列出当前命令选项设置,输入 LIST COMMAND OPTIONS。
     
    要获取更详细的帮助,请参阅 Online Reference Manual。
     
    db2 =>
    C:\Documents and Settings\All Users\「开始」菜单\程序\IBM DB2\DB2COPY1 (缺省值)\命令行工具\ 命令编辑器

    "D:\Program Files\IBM\SQLLIB\BIN\db2ce.bat"

     

    @echo off
    rem -----------------------------------------------------------------------
    rem (C) COPYRIGHT International Business Machines Corp. 2002
    rem All Rights Reserved
    rem
    rem US Government Users Restricted Rights - Use, duplication or
    rem disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
    rem
    rem NAME: db2ce
    rem
    rem FUNCTION: Run the DB2 UDB Command Editor.
    rem
    rem -----------------------------------------------------------------------
    
    rem -Xquickstart -Xgcpolicy:optavgpause are options to make sure the JVM will be
    rem optimized for client applications.  Note that these options exist only in
    rem the IBM jdk.  Other jdks will refuse to start with these options.
    set RUNTIME_FLAGS=-Xmx128m -Xms8m -Xquickstart -Xgcpolicy:optavgpause
    
    IF "%1" == "wait" GOTO WAIT
       db2javit -j:com.ibm.db2.tools.ce.ui.NewEditorAction -s:     -i: -l: -o:"%RUNTIME_FLAGS%" -a:"-ce %1 %2 %3 %4 %5 %6 %7 %8"
       GOTO END
    
    :WAIT
       db2javit -j:com.ibm.db2.tools.ce.ui.NewEditorAction -s: -w: -i: -l: -o:"%RUNTIME_FLAGS%" -a:"-ce %2 %3 %4 %5 %6 %7 %8 %9"
       GOTO END
    
    :end
    

     

    --开机启动 DB2 桌面 右下角图标 

    【注册表】 DB2 9.1.0.356

    ----开始----运行----regedit----我的电脑

    ----HKEY_LOCAL_MACHINE----SOFTWARE----Microsoft----Windows----CurrentVersion----Run

    ----数值名称

    DB2COPY1 - db2systray.exe DB2

    ----数值数据

    E:\Program_Files\IBM\SQLLIB\BIN\db2systray.exe DB2

    --查看db2版本详细信息和补丁级别

    http://blog.chinaunix.net/u1/43842/showart_344622.html

    C:\Documents and Settings\Lindows>db2level

    DB21085I  实例 "DB2" 使用 "32" 位和 DB2 代码发行版 "SQL09050",级别标识为

    "03010107"。

    参考标记为 "DB2 v9.5.0.808"、"s071001" 和 "NT3295",修订包为 "0"。

    产品使用 DB2 副本名 "DB2COPY1" 安装在 "D:\PROGRA~1\IBM\SQLLIB" 中。

    --查看db2基本版本号

    C:\Documents and Settings\Lindows>db2licm -v

    9.5

     

    --查看db2安装包信息
    lslpp -l |grep db2(看包信息)
    查权限,查属主属组,查.profile
     
    RHEL 6.2 安装db2 9.7
    rhel-server-6.2-x86_64-dvd.iso
    C61SQML_DB2_ESE_9_7_0_0_LNXX86_64.iso
    [root@localhost lib]# cat /etc/issue
    Red Hat Enterprise Linux Server release 6.2 (Santiago)
    Kernel \r on an \m
    [root@localhost ~]# /mnt/db2v9.7/db2prereqcheck
    WARNING:
       The 32 bit library file libstdc++.so.6 is not found on the system.
       32-bit applications may be affected. 
    [root@localhost ~]# whereis libstdc++.so.6
    libstdc++.so: /usr/lib64/libstdc++.so.6

    [root@localhost ~]# ls /media/RHEL_6.2\ x86_64\ Disc\ 1/Packages/*c++*

    /media/RHEL_6.2 x86_64 Disc 1/Packages/compat-gcc-34-c++-3.4.6-19.el6.x86_64.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/compat-libstdc++-296-2.96-144.el6.i686.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/compat-libstdc++-33-3.2.3-69.el6.i686.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/compat-libstdc++-33-3.2.3-69.el6.x86_64.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/dbus-c++-0.5.0-0.10.20090203git13281b3.1.el6.x86_64.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/gcc-c++-4.4.6-3.el6.x86_64.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/gcc-objc++-4.4.6-3.el6.x86_64.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/ImageMagick-c++-6.5.4.7-5.el6.x86_64.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/libsigc++20-2.2.4.2-1.el6.x86_64.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/libstdc++-4.4.6-3.el6.i686.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/libstdc++-4.4.6-3.el6.x86_64.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/libstdc++-devel-4.4.6-3.el6.i686.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/libstdc++-devel-4.4.6-3.el6.x86_64.rpm
    /media/RHEL_6.2 x86_64 Disc 1/Packages/libstdc++-docs-4.4.6-3.el6.x86_64.rpm

    [root@localhost ~]# rpm -ivh /media/RHEL_6.2 x86_64 Disc 1/Packages/ libstdc++-4.4.6-3.el6.i686.rpm --nodeps
    [root@localhost ~]# rpm -qa | grep libstdc++
    libstdc++-docs-4.4.6-3.el6.x86_64
    libstdc++-4.4.6-3.el6.x86_64
    libstdc++-4.4.6-3.el6.i686

    [root@localhost ~]# ll /usr/lib/libstdc*
    lrwxrwxrwx. 1 root root     19 Mar 29 08:38 /usr/lib/libstdc++.so.6 -> libstdc++.so.6.0.13
    -rwxr-xr-x. 1 root root 930192 Aug 24  2011 /usr/lib/libstdc++.so.6.0.13
    [root@localhost ~]# ll /usr/lib64/libstdc*
    lrwxrwxrwx. 1 root root     18 Mar 29 08:43 /usr/lib64/libstdc++.so.5 -> libstdc++.so.5.0.7
    -rwxr-xr-x. 1 root root 825480 Jun 28  2010 /usr/lib64/libstdc++.so.5.0.7
    lrwxrwxrwx. 1 root root     19 Mar 26 13:57 /usr/lib64/libstdc++.so.6 -> libstdc++.so.6.0.13
    -rwxr-xr-x. 1 root root 989840 Aug 24  2011 /usr/lib64/libstdc++.so.6.0.13

     

    CentOS x64位Linux安装db2 v9.7的问题

    http://blog.csdn.net/airmy/article/details/6910320

    由于公司有一部分项目是用db2,所以我也在实验环境中要架设db2环境..这里只提db2安装时候遇到的问题..

    平台:centos6.0           数据库版本:db2 v.97

    db2_install安装时候遇到如下错误:

     

    WARNING:
    The 32 bit library file libstdc++.so.6 is not found on the system.  32-bit applications may be affected. 
    解决办法:
    sudo yum install  libstdc++.so.6

    db2安装最后报:

    A minor error occurred while installing "DB2 Enterprise Server Edition" on  this computer. Some features may not function correctly.

    查看db2的安装日志显示如下

    Installing or updating SA MP :.......Failure 
    Executing control tasks :.......Success 
    Updating global registry :.......Success 
    The installation of IBM Tivoli Monitoring for Databases  has completed. The log
    file can be found at /opt/ibm/db2/V9.7/itma/logs/itm_install.log.
    Starting DB2 Fault Monitor :.......Success 
    Updating the db2ls link :.......Success 
    Registering DB2 licenses :.......Success 
    Setting default global profile registry variables :.......Success 
    Initializing instance list :.......Success 
    Registering DB2 Update Service :.......Success 
    Updating global profile registry :.......Success 
    WARNING: A minor error occurred while installing "DB2 Enterprise Server Edition
    " on this computer. Some features may not function correctly.

    这个warning错误可以忽略了..不影响正常使用

     

    DB2 V9.7 在RedHat 5.4下安装(转载)

    http://chenjialin2000.iteye.com/blog/784392

     

    Linux(RedHat Enterprise Linux 5.4)下的DB2安装__使用图形界面

    可以使用图形界面,也可以使用手工安装的方式。我们先介绍最简单的安装方法。

    1.从IBM网站下载DB2 9.7 express C版本:文件名db2exc_971_LNX_x86.tar.gz,。

    2.在LINUX下解压缩及解包
    #gzip -d db2exc_971_LNX_x86.tar.gz

    #tar -xvf db2exc_971_LNX_x86.tar

    3.进入相关目录,运行安装文件
    #xhost +
    #cd expc
    #./db2setup
    先允许所有用户使用xwindows界面。
    在当前目录中要找到db2setup文件,然后执行它。
    如果权限不够,先运行chmod +x db2setup

    4.根据图形界面安装
    可以选择安装位置或内容等。
    过程中需要对其中的三个DB2用户的名字和密码进行设置,并记录下来。注意DB2没有自己独立的用户管理系统,因此这几个用户实际就是LINUX的用户。
    最后完成安装。

    5.验证安装成功。
    [root@bogon expc]# su - db2inst1
    [db2inst1@bogon ~]$ db2 create database test
    DB20000I The CREATE DATABASE command completed successfully.
    [db2inst1@bogon ~]$
    其中db2inst1为安装过程中创建的三个用户之一,为实例的管理者用户。
    创建数据库成功表明安装成功。

    更多的初始配置见DB2手工安装。

    ########################################################

    DB2 for linux手动安装步骤

    第一步下载db2数据包
    当前最新版本为9.7,从IBM网站下载免费的Express C版本。
    db2exc_971_LNX_x86.tar.gz及语言包db2exc_nlpack_971_LNX_x86.tar.gz(后者可选)。

    第二步上传安装文件
    把下载下来的包ftp上传到待安装的LINUX机器上

    第三步解包db2exc_971_LNX_x86.tar.gz
    # gzip -d db2exc_971_LNX_x86.tar.gz
    # tar -xvf db2exc_971_LNX_x86.tar

    第四步安装
    解包以后会有目录名为expc,进入找到db2_install和db2setup文件,前者为手动安装,后者为图形界面安装。
    #cd expc
    #./db2_install
    设定安装目录等以后,耐心等待安装任务完成。
    默认安装路径是/opt/ibm/db2/V9.7,可检查之。


    第五步注册license
    本安装无须这一步。
    对于企业版等版本,需要注册license才能使用。
    对于V8.1 ESE版,注册license的文件一般是:/opt/DB2_V81_PE_LNX_32_NLV/db2/license/db2ese.lic,否则需要自己找一下db2ese.lic,
    根据实际情况执行
    #/opt/IBM/db2/V8.1/adm/db2licm -a /opt/334_ESE_LNX26_32_NLV/db2/license/db2ese.lic
    若提示:
    DBI1402I License added successfully.
    DBI1426I This product is now licensed for use as specified in
    the License Acceptance and License Information
    documents pertaining to the licensed copy of this
    product. USE OF THE PRODUCT CONSTITUTES ACCEPTANCE OF
    THE TERMS OF THE IBM LICENSE ACCEPTANCE AND LICENSE
    INFORMATION DOCUMENTS, LOCATED IN THE FOLLOWING
    DIRECTORY: /opt/IBM/db2/V8.1/license/zh_CN.utf8
    表明注册成功

    第六步 创建DB2运行所需要的用户组和用户
    注意DB2并没有独立的用户管理系统,必须借用OS用户来提供安全性认证,所以这里需要创建LINUX用户和组。
    # groupadd -g 901 db2grp
    # groupadd -g 902 db2fgrp
    # groupadd -g 903 db2agrp# useradd -g db2grp -u 801 -d /home/db2inst1 -m -s /bin/sh db2inst1
    # useradd -g db2fgrp -u 802 -d /home/db2fenc -m -s /bin/sh db2fenc
    # useradd -g db2agrp -u 803 -d /home/db2das -m -s /bin/sh db2das
    这里的默认用户名是:
    DAS用户 dasusr1 组名: dasadm1
    管理实例的用户 db2inst1 组名:db2iadm1
    受防护用户 db2fenc1 组名: db2fadm1
    但是DB2用户可以任意起名。

    第七步添加密码
    # passwd db2inst1
    Changing password for db2inst1.
    New password:[输入新密码]
    Re-enter new password:[再次输入新密码]
    Password changed
    创建完成后,执行如下命令,检查用户组和用户是否创建成功。
    # more /etc/group |grep db2
    # more /etc/passwd |grep db2
    如果结果中包含那三个用户和组,则创建成功。正确的结果应该是:
    # more /etc/group |grep db2
    dialout:x:16:db2inst1,db2fenc,db2das
    video:x:33:db2inst1,db2fenc,db2das
    db2grp:!:901:
    db2fgrp:!:902:
    db2agrp:!:903:
    # more /etc/passwd |grep db2
    db2inst1:x:801:901::/home/db2inst1:/bin/sh
    db2fenc:x:802:902::/home/db2fenc:/bin/sh
    db2das:x:803:903::/home/db2das:/bin/sh


    第八步创建实例。
    b1. 进入/opt/ibm/db2/V9.7/instance目录
    # cd /opt/ibm/db2/V9.7/instance
    2. 执行以下命令
    # ./dascrt -u db2das
    # ./db2icrt -u db2inst1 db2inst1
    这里dascrt创建的是DB2 adminstration server,每台服务器只有一个这种server,为进行DB2管理(比如运行控制中心)所必须,同时指定其管理用户是db2das。
    db2icrt创建的是实例,其名字一般和管理用户名一样,这里均为db2inst1。
    3 启动DB2
    切换到db2das用户,执行db2admin启动DB2管理服务器。
    $ db2admin start
    切换到db2inst1用户,执行db2start启动数据库实例。
    $ db2start


    第九步 配置DB2
    1 设置DB2自启动。
    使用root用户执行以下命令:
    # cd /opt/ibm/db2/V9.7/instance
    # ./db2iauto -on db2inst1
    设置对db2inst1在LINUX启动时自动启动。

    2 配置网络
    切换到db2inst1用户。
    # su - db2inst1
    修改DB2的服务端口为50000,这里默认端口就是50000。
    $ db2 update dbm cfg using SVCENAME 50000
    DB20000I The UPDATE DATABASE MANAGER CONFIGURATION command completed
    successfully.
    修改DB2连接方式为TCPIP,然后可通过JDBC、ODBC等访问本DB2服务器上的数据库,安装了DB2客户端的其它机器也可访问数据库。
    $ db2set DB2COMM=TCPIP
    至此,安装过程结束。

    第十步 创建和访问数据库,安装验证
    1 启动与关闭数据库实例
    做任何事情之前,首先要启动数据库实例
    切换到db2inst1用户,执行db2start启动数据库实例。
    $ db2start
    SQL1063N DB2START processing was successful.
    若需要,可运行下面的命令来关闭数据库实例
    首先在db2inst1用户下强制关闭实例上的所有应用程序。
    $ db2 force applications all
    关闭数据库实例。
    $ db2stop
    SQL1064N DB2STOP processing was successful.
    2 创建数据库
    $ su - db2ins1
    $ db2 create database test1
    DB20000I The CREATE DATABASE command completed successfully.
    数据库创建成功了。
    3 远程访问数据库
    笔者是在VMWARE虚拟机上安装RHEL5.4和DB2的,在主机上也安装了DB2 ESE for windows V9.7,经实验这样配置后主机可以访问到虚拟机上的DB2数据库。方法是在主机上运行db2cmd,然后运行:

    C:\Documents and Settings\Administrator>db2 catalog tcpip node bogon remote 192.
    168.211.132 server 50000
    DB20000I CATALOG TCPIP NODE 命令成功完成。
    DB21056W 直到刷新目录高速缓存之后,目录更改才生效。

    C:\Documents and Settings\Administrator>db2 catalog database test1 as test_1 at
    node bogon
    DB20000I CATALOG DATABASE 命令成功完成。
    DB21056W 直到刷新目录高速缓存之后,目录更改才生效。

    C:\Documents and Settings\Administrator>db2
    ? Copyright IBM Corporation 1993,2007
    DB2 客户机 9.7.0 的命令行处理器

    可从命令提示符处发出数据库管理器命令和 SQL 语句。例如:
    db2 => connect to sample
    db2 => bind sample.bnd

    要获得一般帮助,输入:?。
    要获得命令帮助,输入:? command,其中 command 可以是
    数据库管理器命令的前几个关键字。例如:
    ? CATALOG DATABASE 用于关于 CATALOG DATABASE 命令的帮助
    ? CATALOG         用于关于所有 CATALOG 命令的帮助。

    要退出 db2 交互方式,在命令提示符处输入
    QUIT。在非交互方式下,所有命令都必须以“db2”作前缀。
    要列出当前命令选项设置,输入 LIST COMMAND OPTIONS。

    要获取更详细的帮助,请参阅 Online Reference Manual。

    db2 => !db2set
    DB2INSTOWNER=WWW-A448048D8D7
    DB2PORTRANGE=60000:60003
    DB2INSTPROF=C:\DOCUMENTS AND SETTINGS\ALL USERS\APPLICATION DATA\IBM\DB2\DB2COPY
    1
    DB2COMM=TCPIP
    db2 => connect to test_1 user db2inst1
    输入 db2inst1 的当前密码:

    数据库连接信息

    数据库服务器        = DB2/LINUX 9.7.1
    SQL 授权标识        = DB2INST1
    本地数据库别名      = TEST_1

    db2 =>
    #####################################################

    DB2 for linux卸载

    由于某种原因,要卸载DB2再重新安装,一定要完全卸载DB2,否则不能重新安装或安装后的DB2不可用。
    因为卸载步骤比较复杂,我建议在虚拟机上安装该软件的朋友,应该先做一个快照,然后方可进行,出错就恢复快照,重新来过。在主机上卸载则最好先做一个备份,以防万一。
    为了操作方便,可以同时打开几个Shell,分别属于不同用户,配合完成下面的操作。

    1、在linux上卸载DB2的一般过程:
    a.删除所有数据库。可以使用“控制中心”或drop database命令删除数据库。笔者卸载而未删除数据库,结果是重新安装后无法建立同名数据库。
    b.停止DB2管理服务器。
    c.停止DB2实例。
    d.除去DB2管理服务器。
    e.除去DB2实例。
    f.除去DB2产品。

    2、停止DB2管理服务器:
    必须要停止DB2管理服务器才能在linux上卸载DB2。
    a.作为DB2管理服务器所有者登陆。
    b.用db2admin stop命令停止DB2管理服务器。

    3、停止DB2实例:
    必须要停止DB2实例才能在linux上卸载DB2。
    a.作为具有root用户权限的用户登陆。
    b.输入/opt/ibm/db2/V9.7/bin/db2ilist命令,获取系统上的所有DB2实例的名称。
    c.注销。
    d.作为想要停止的实例的所有者登陆。
    e.进入该用户的主目录下,运行脚本:. sqllib/db2profile
    d.输入db2 force application all命令来停止所有数据库应用程序。
    e.输入db2stop命令来停止DB2数据库管理器。
    f.输入db2 terminate来确认DB2数据库管理器已停止。
    g.对每一个要删除的实例重复以上步骤。

    4、删除DB2管理服务器:
    必须删除DB2管理服务器才能卸载DB2。
    a.作为DB2管理服务器所有者登陆。
    b.进入该用户的主目录下,运行脚本:. das/dasprofile.
    c.注销。
    d.作为root登陆,通过输入命令/opt/ibm/db2/V9.7/instance/dasdrop除去DB2管理服务器。

    5、删除DB2实例:
    一旦删除系统上的实例,该实例下的所有DB2数据库都将不可用。
    a.通过输入/opt/ibm/db2/V9.7/instance/db2idrop db2instname删除实例。

    6、卸载DB2产品
    以root身份登陆,到DB2版本产品CD-ROM上的根目录或DB2安装文件(通常就是tar解包文件)下找到db2_deinstall命令,
    运行db2_deinstall -a命令可以删除所有DB2产品。
    可能需要输入DB2安装路径,这里是/opt/ibm/db2/V9.7
    然后也可以在LINUX中删除DB2用户,这并非必须,重新安装仍可使用它们。

    下面是英文的简要说明:
    Following are the steps to remove DB2 from Unix/Linux:

    1.Remove DB[首先删除数据库]

    (1)su - db2inst1
    (2)db2 list db directory
    (3)db2 drop db <db name>

    2.Remove Instance【删除实例】

    (1)su - root
    (2)cd <db2 dir>/instance
    (3)./db2ilist
    (4)./db2idrop -f <instance name>

    3.Remove das【删除das】

    (1)su - root
    (2)cd <db2 dir>/instance
    (3)./daslist
    (4)./dasdrop <das user>

    4.Uninstall【卸载】

    (1)su - root
    (2)cd <db2 dir>/install
    (3)./db2_deinstall -a

    5.Remove user ( db2inst1,db2fenc1,dasusr1)【删除用户】

    userdel -r <username>
    please lookinto the file /etc/passwd before and after you deleted users

    ########################################################

     

    db2

    db2数据库之四:数据库系统安装/卸载-linux

    http://blog.csdn.net/lhfeng/article/details/3169995

    [root@localhost db2v9.7]# ./db2_deinstall -a
    Enter full path name for the install directory -
    ------------------------------------------------
    /opt/ibm/db2/V9.7/
    DBI1016I  Program db2_deinstall is performing uninstallation. Please
          wait.
    The execution completed successfully.
    For more information see the DB2 uninstallation log at
    "/tmp/db2_deinstall.log.27707".

    用db2_install命令行安装DB2数据库

    http://hi.baidu.com/shunxinyangkun/blog/category/Ibm

    http://hi.baidu.com/shunxinyangkun/blog/category/Ibm

    http://hi.baidu.com/shunxinyangkun/blog/category/Ibm

    http://hi.baidu.com/shunxinyangkun/blog/category/Ibm

    http://hi.baidu.com/shunxinyangkun/blog/item/12beaa24e3a4d21a4c088d83.html

    测试系统:AIX 7.1
    安装过程:

    一、 上传安装文件

     二、 解压安装文件 :# tar –xfv DB2.tar 

    三、 解压后会出现 db2setup 和db2_install 两个可用于安装的文件 , db2setup是调用视窗安装,过程很简单,按照提示进行就可以。db2_install是命令行安装。下面我们就着重强调一下如何进行命令行安装。 

    1、  运行./db2_install  ,安装DB2.

    安装完成后显示信息如图。有消息:A minor Error occurred while installing "DB2 Enterprise Server Edition " on this computer. Some features may not function correctly. , 但是不要担心,这一般是Installing or updating SA MP :.......Failure 。不会影响我们的安装使用。

     
    四、 对新安装的db2 进行系统设置:   
    必需的用户
    用户名
    组名
    实例所有者
    db2inst1
    db2iadm1
    受防护的用户
    db2fenc1
    db2fadm1
    管理服务器用户
    dasusr1
    dasadm1

     1、  添加组账号

    mkgroupdasadm1

    mkgroup db2fadm1
    mkgroup db2iadm1

    2、 添加db2 用户账号   

    用smit命令来添加用户:

    1.db2inst1  属于 db2iadm1   组;

    2.db2fenc1 属于 db2fadm1   组;

    3.dasusr1   属于 dasadm1  组;

    然后分别设置用户的密码

    3、 实例操作:

    3.1 创建实例db2inst1 .

    # cd /opt/ibm/db2/V9.5/instance

    # ./db2icrt -u db2fenc1 db2inst1 -p 50003

    DBI1070I Program db2icrt completed successfully. –提示实例创建成功。 

    3.2 查看实例:
    a、  查看所有实例:# cd /opt/ibm/db2/V9.5/bin –转入到db2安装路径# ./db2ilistb、  查看当前实例:# su – db2inst1   -- 切换到db2 实例用户~>db2 get instance 
               C 、 删除实例
                  在root用户下转入到db2安装路径
                  # cd /opt/ibm/db2/V9.5/instance
                  # ./db2idrop db2inst1   可以使用-f参数强制删除实例
     
    3.3 安装license 上传db2 license文件DB2_WSE_CPU_Activation_V95.ziplicense,并解压。
               切换到db2inst1用户,然后用下面命令进行注册
               db2licm -a / 解压后文件所在的路径/db2wse_c.lic (db2ese_c.lic这个文件就是db2 的license)过程如下:           # su – db2inst1            ~> db2licm –l  查看查看是否注册           ~> db2licm –a /backup/db2/lice/db2/license/db2wse_c.lic -- 执行注册           ~> db2licm –l  查看查看是否注册成功          
    3.4、 启动停止实例
    1, 启动实例:切换到实例用户,然后执行db2start# su – db2inst1~> db2start SQL1063N DB2START processing was successful. –提示启动成功2,停止实例:执行db2stop~>  db2stop 
    3.5 、 设定监听端口

    当启动DB2实例时,会发现,DB2的监听端口并没有随着DB2实例的启动而启动。

    下面过程设置如何启动监听。

    1、  先执行db2set-all来检查是否有 DB2COMM=TCPIP 一项,如果没有则应该执行“ db2set DB2COMM=TCPIP ”设置。

    # db2set –all

    # db2set DB2COMM=TCPIP

    # db2 get dbm cfg | grep SVCENAME 检查配置 SVCENAME 的值,

    如果 SVCENAME为空值,则需要用下面的步骤设定该值,

    如果是一个端口号 ( 端口号应小于 65536),则不用读取/etc/services文件中的端口定义,

    如果该值是一个字符串(如:db2c_db2inst1),则在实例启动时会自动读取/etc/services 中的该字符串对应的端口号来监听。

    # db2  update database manager configuration using svcename   db2c_db2inst1(或者为端口号如:50001) -- 我们也可以通过这种方式修改DB2监听的端口号.

    运行完成后再次运行# db2 get dbm cfg | grep SVCENAME 检查配置 SVCENAME 的值是否更新。

     3.6设置db2自动启动

    #db2set 
    
    
    
    
    
    
    
    DB2AUTOSTART=YES

    五、             DB2 管理服务器

    1、  创建DB2 管理服务器。

    # cd /opt/ibm/db2/V9.5/instance

    # ./dascrt -u dasusr1

    SQL4406W The DB2 Administration Server was started successfully.

    DBI1070I Program dascrt completed successfully.

    2、  启 动DB2 管理服务器# su - dasusr1# db2admin startSQL4409W The DB2 Administration Server is already active. –启动完成,这时可以用命令netstat-an 查看DB2 管理服务器的监听端口523是否被监听。说明:DB2 管理服务器启动完成后,可以通过客户端对服务器数据库进行管理,比如在windows机器上通过DB2控制中心访问远端服务器数据库!

    3、  停止DB2管理服务器。# su – dasusr1# db2admin stop

     
            至此,通过命令方式安装与配置DB2数据库完成。

    让root用户可以直接运行db2的命令

    http://hi.baidu.com/shunxinyangkun/blog/item/c1312f81a3385bc3bc3e1ebf.html

    在/etc/profile文件中追加:

    export PATH=/opt/IBM/db2/V9.5/bin:$PATH
    . /home/db2inst1/sqllib/db2profile
    在/etc/group文件中添加root 用户:

    dasadm:|;101:dasusr1,db2inst1,root
    db2iadm:|:102:root
    db2fadm:|:103:db2fenc1,root

    用db2_deinstall -a命令行卸载DB2数据库

    http://hi.baidu.com/shunxinyangkun/blog/item/2891d6caf93bec99c81768c4.html

    1.drop all databases    --drop database <NAME>

    2.stop all db2 instances  --./db2idrop <INSTANCE NAME>

    3.uninstall db2  --./db2_deinstall -a

    db2数据库之四:数据库系统安装-linux
    linux-lrq:/home/exp # ./db2setup
    DBI1190I  db2setup 正在准备"DB2 安装"向导,该向导将指导您完成程序安装过程。请稍候

























    linux-lrq:/home/exp # ./db2_deinstall
    DBI1047I  用法:

    db2_deinstall -F <featureName> | -a
                   [-l <logFile>]
                   [-b <installPath>]
                   [-t <trcFile>]
                   [-f sqllib]
                   [-h|-?]

    说明:

    -F       指定除去一个功能部件。除去所指定 DB2 组件后,您需要手工更新与
             DB2 安装位置相关的 DB2 实例。此参数不能与 -a 配合使用,但以下
             情况除外。如果要除去的功能部件是 IBM Tivoli System Automation
             for Multiplatforms Base Component(TSAMP),并且您拥有 root 用
             户权限,那么可以将 -F 与 -a 配合使用。

    -a       从当前位置中除去所有已安装的 DB2 产品。此选项不能与 -F 配合使
             用,但以下情况除外。如果要除去的功能部件是 IBM Tivoli System
             Automation for Multiplatforms Base Component(TSAMP),并且您
             拥有 root 用户权限,那么可以将 -F 与 -a 配合使用。在非 root 安
             装中,将 -a 与 -f 配合使用也会除去非 root 实例,在此过程中,将
             除去 $HOME/sqllib 目录。

    -l       指定日志文件。如果是以 root 用户身份进行安装,那么缺省日志文件
             是 /tmp/db2_deinstall.log$$,其中 $$ 表示进程标识。如果不是以
             root 用户身份进行安装,那么缺省日志文件为 /tmp/db2_deinstall_
             <userID>.log,其中 <userID> 表示进行非 root 用户安装的用户标识
             。如果要除去的功能部件是 IBM Tivoli System Automation for
             Multiplatforms Base Component(TSAMP),那么 SA MP Base
             Component 的安装日志文件将保留在 DB2 日志文件所在的目录中。

    -b       如果从 DB2 介质运行该命令,那么此选项有效。它指定要卸载的 DB2
             产品的绝对安装路径。如果未指定该选项,那么此命令将提示您输入路
             径。

    -t       打开调试方式。会将调试信息写入指定的文件。

    -f sqllib
             此选项仅对于非 root 安装有效。将它与 -a 配合使用时,实例的顶级
             目录及其中的任何内容都将被除去。

    -h|-?    显示帮助信息。

    用户响应:

    重新输入该命令。


    linux-lrq:/home/exp # ./db2_deinstall -a
     
    输入安装目录的完整路径名 -

    ------------------------------------------------
    /opt/ibm/db2/V9.5

    DBI1016I  Program db2_deinstall is performing uninstallation. Please wait.

    The execution completed successfully.

    For more information see the DB2 installation log at
    "/tmp/db2_deinstall.log.589".

     

     

    sql_temp

    -- set schema sndbusr;

    -- db2 set current schema sndbusr;

     

    -- 查询商品库存

    select * from xshwinventory xs left join catentry c on xs.partnumber = c.partnumber where c.catentry_id in(208601,167105);

    select * from sndbusr.xshwinventory xs left join sndbusr.catentry c on xs.partnumber = c.partnumber where c.catentry_id in(208601,167105);

    -- 导出商品库存

    export to 'D:\库存.csv' of del select * from sndbusr.xshwinventory xs left join sndbusr.catentry c on xs.partnumber = c.partnumber where c.catentry_id in(208601,167105)with ur;

     

    db2 v9 exception

    Page Size Management Daemon

     

    https://www-304.ibm.com/support/docview.wss?uid=isg1IZ46113

    Very slow system operation when PSMD is in operation while
    a particular page size pool has been exhausted but another
    remains available for page size promotion or demotion.

     

     

    23G 可分配给缓冲池的大小13.8G
    IBMDEFAULTBP 2620000 4096 10G
    BUF4K 128000 4096 500M
    BUF8K 262000 8192 2G

    BUF16K 131000 16384 2G 

     

     

    quick_db2_dynsql_snapshot_forV9.7.sh / DB2 9.7 快照自动抓取方法

    http://dl.iteye.com/topics/download/0f0482d3-9bba-3a30-a141-74e3f061600a

    #!/bin/bash
    #############################################
    ## Update version for DB V9.7
    ## By Walter
    ## 12/26/2012
    ############################################
    usage() {
            echo "\
    Usage: 
            `basename $0` -d databasename [-s sleeptime] [-u uid -p pw -n schema] [-r]
    Description:
    
    // To review the switch settings at the instance level, issue the GET DBM MONITOR SWITCHES or GET DBM CFG command.
    db2 get dbm cfg   (for instance level)
    db2 get monitor switches (for db level)
    
    // Using the following command to turn on all monitor before collecting snapshot
    // You can also turn all the monitors with single command.
    db2 UPDATE DBM CFG USING DFT_MON_LOCK ON  (at the instance level)
    //db2 update dbm cfg using DFT_MON_STMT ON DFT_MON_BUFPOOL ON DFT_MON_LOCK ON DFT_MON_SORT ON DFT_MON_TABLE ON DFT_MON_TIMESTAMP ON DFT_MON_UOW ON HEALTH_MON ON
    db2 update monitor switches using lock ON sort ON bufferpool ON uow ON table ON statement ON TIMESTAMP ON
    
            -d -- database name
            -s -- sleep timer
            -u -- account id for the db2advis command
            -p -- password of the user
            -n -- schema name
            -r -- reset the db2 snapshot monitor counters
    "
    }
                             
    dbname=""
    reset=""
    uid=""
    pw=""
    schema=""
    sleeptimer=0
    
    while getopts "d:s:u:p:n:r" OPTION ; do
        case "$OPTION" in
            d) dbname=$OPTARG ;;
            s) sleeptimer=$OPTARG ;;
            u) uid=$OPTARG ;;
            p) pw=$OPTARG ;;
            n) schema=$OPTARG ;;
            r) reset=true ;;
           \?) usage ; 
               exit 1 
               ;;
        esac
    done
    
    if [ -z $dbname ]
    then
            usage
            echo "Missing the database name, it is a mandatory argument!"
            exit 2
    fi
    
    if [ "$reset" = "true" ]
    then
            echo "Resetting the db2 snapshot monitor counters ..."
            db2 reset monitor for database $dbname
            if [ $? -ne 0 ]
            then
            	echo "Failed to reset the db snapshot monitor! Please verify current user permission or database name is correct!"
            	exit 3
            fi
    fi
    
    if [ $sleeptimer -gt 0 ]
    then
            echo "Sleeping ..."
            sleep $sleeptimer
    fi
    
    timestamp=`date +"%Y%m%d_%H%M%S"`
    outfilename=${dbname}_${timestamp}.dynsql.snap
    
    db2 get snapshot for dynamic sql on $dbname > ${dbname}_${timestamp}_snapshot_dynsql.raw
    if [ $? -ne 0 ]
    then
            echo "Failed to dump the snapshot for your db! Please verify current user permission or database name is correct!"
            exit 4
    else
    		echo "the db2 snapshot raw text output file is: ${dbname}_${timestamp}_snapshot_dynsql.raw"
    fi
    
    # extract the head line (column names)
    sed -n '8,38s/\s\([^=]*\)= \(.*\)/\1/p' snapshot_dynsql.raw | sed '1,29s/\s\{0,\}$/#/;30,30s/\s\{0,\}$//' | tr -d '\n' | awk '{print $0}'> ${dbname}_${timestamp}_snapshot_dynsql.headline
    
    # drops first 7 head lines and all blank lines from the raw snapshot output file to unify the content.
    sed -n '8,$p'  snapshot_dynsql.raw | sed '/^$/d' > ${dbname}_${timestamp}_snapshot_dynsql.tmp
    
    # extract the values and re-org to one line for each sql statement from 30 lines.
    cat snapshot_dynsql.tmp | sed 's/\([^=]*\)= \(.*\)/\2/' | awk 'BEGIN {lines=0;} {lines++; if (lines%30==0) printf("%s\n",$0); else printf("%s#",$0)}' | sed '/^0#/d' > ${dbname}_${timestamp}_snapshot_dynsql.body
    
    # Only pay attention to a number of columns as well as the avg exeuction time we manually calculated.
    awk 'BEGIN {FS="#"; OFS="#"} {print $25,"avg execution time(sec.ms)",$26,$27,$1,$7,$9,$30}' ${dbname}_${timestamp}_snapshot_dynsql.headline > $outfilename
    awk 'BEGIN {FS="#"; OFS="#"} {print $25,$25/$1,$26,$27,$1,$7,$9,$30}' ${dbname}_${timestamp}_snapshot_dynsql.body | sort -nrt# -k2 >> $outfilename
    
    #Remove all the temporary file
    rm -f ${dbname}_${timestamp}_snapshot_dynsql.headline ${dbname}_${timestamp}_snapshot_dynsql.body ${dbname}_${timestamp}_snapshot_dynsql.tmp
    
    echo " The statistics file is $outfilename , it can be checked by MS Excel"
    
    
    #############################
    ##
    ## You can use the db2advis command to find the recommended optimziation methods for these 
    ## high cost dynamic sql statements
    #############################
    ## 	db2advis -d icmnlsdb -s "Select Count(*) From RapidReconReportData Where ClientCode=? And 
    ##						COMPONENTTYPE = ? And DATE(CreateTime) >= ? And DATE(CreateTime) <= ? And TIME(CreateTime) >= ? AND TIME(CreateTime) <= ?"
    #############################
    
    if [ -n "$uid" -a -n "$pw" -a -n "$schema" ]
    then
    //Take the top 100 sqls
        sed -n '2,$p' $outfilename | awk 'BEGIN{FS="#"} {print $8}' | grep -v -E "^CALL|^SET|^call|^set" | head -n 100 > ${outfilename}.sql
        > ${outfilename}.advis
        while read line; do
                        echo "*****************************"     >> ${outfilename}.advis
                        echo "**  SQL Statement $sqlnum  **" >> ${outfilename}.advis
                        echo "*****************************" >> ${outfilename}.advis
                        echo "$line" >> ${outfilename}.advis
                        echo "::::::::::::::::::::::::::::" >> ${outfilename}.advis
            						echo db2advis -d $dbname -a $uid/$pw -n $schema -s \"$line\" | sh 2>/dev/null >> ${outfilename}.advis
        done < ${outfilename}.sql
        
        rm -f ${outfilename}.sql
        
        echo "The db2 advising optimization result is ${outfilename}.advis"
    fi
    
    exit 0
    
    

     

     

     

    [root@Loadrunner19 wyg]# vim /root/wyg/transfer.pl

     

    #Transfer snapshot.txt to stmt.txt
    
    
    use strict;
    use IO::File;
    use Time::Local;
    
    #Open the snapshot.txt
    unless (open(FILE1,$ARGV[0])) {
    die ("Please enter the snapshot.txt\n");
    }
    
    
    
    my $date;
    my $line;
    my @array;
    my $NumberExecutions;
    my $NumberCompilations;
    my $WorstPreparation;
    my $BestPreparation;
    my $TotalExecutionTime;
    my $InternalRowsDeleted;
    my $InternalRowsInserted;
    my $InternalRowsupdated;
    my $StatementText;
    my $Statementsorts;
    my $Statementsortoverflows;
    my $Totalsorttime;
    my $Rowsread;
    my $AverageRowRead;
    my $Rowswritten;
    my $AverageRowSelect;
    my $BPDLR;
    my $BPDPR;
    my $BPILR;
    my $BPIPR;
    my $BPTDLR;
    my $BPTDPR;
    my $BPTILR;
    my $BPTIPR;
    my $BPRatio;
    my $flag = 0;
    my $position;
    my $AverageTime;
    my $TUsrTm;
    my $TSysTm;
    
    
    #Show start time.
    $date=localtime(time);
    print "Start from ".$date;
    
    #Write the tag to the txt.
    open (OUTFILE, ">transfer.txt");
    print OUTFILE (" NumEx;NumComp;WorstP;BestP;IntRDel;IntRIns;RowsRead;IntRUpd;RowsWri;Sorts;SortOflo;TSortTm;BPDLR;BPDPR;BPTDLR;BPTDPR;BPILR;BPIPR;BPTILR;BPTIPR;TELapTm;TUsrTm;TSysTm;AvgElap;AverageRowRead;AverageRowSelect;BPRatio;Text;\n");
    
    #Close the file handle.
    close(OUTFILE);
    print("\nBegin to transfer,please wait!\n");
    
    #Read the data from snapshot.txt.
    while($line = <FILE1>)
    {
    	if($line=~/Number\sof\sexecutions/){
    		$NumberExecutions=$line;
    		$position=index($NumberExecutions,"=");
    		$NumberExecutions=substr($NumberExecutions,$position+1,);	
    		if($NumberExecutions=~/\s0.*\s/){
    			$flag=1;
    			$NumberExecutions="";
    			next;
    		}else{	
    			
    			$flag=2;
    			#print $NumberExecutions;
    		}
    		$NumberExecutions=~s/\s//g;
    	}
    	if($line=~/Number\sof\scompilations/ && $flag==2){
    		$NumberCompilations=$line;
    		$position=index($NumberCompilations,"=");
    		$NumberCompilations=substr($NumberCompilations,$position+1,);
    		$NumberCompilations=~s/\s//g;
    		#print $NumberCompilations;
    	}	
    	if($line=~/Worst\spreparation\stime/ && $flag==2){
    		$WorstPreparation=$line;
    		$position=index($WorstPreparation,"=");
    		$WorstPreparation=substr($WorstPreparation,$position+1,);
    		$WorstPreparation=~s/\s//g;
    		#print $WorstPreparation;
    	}
    	if($line=~/Best\spreparation\stime/ && $flag==2){
    		$BestPreparation=$line;
    		$position=index($BestPreparation,"=");
    		$BestPreparation=substr($BestPreparation,$position+1,);
    		$BestPreparation=~s/\s//g;
    		#print $BestPreparation;
    	}
    	if($line=~/Internal\srows\sdelete/ && $flag==2){
    		$InternalRowsDeleted=$line;
    		$position=index($InternalRowsDeleted,"=");
    		$InternalRowsDeleted=substr($InternalRowsDeleted,$position+1,);
    		$InternalRowsDeleted=~s/\s//g;
    		#print $InternalRowsDeleted;
    	}
    	if($line=~/Internal\srows\supdated/ && $flag==2){
    		$InternalRowsupdated=$line;
    		$position=index($InternalRowsupdated,"=");
    		$InternalRowsupdated=substr($InternalRowsupdated,$position+1,);
    		$InternalRowsupdated=~s/\s//g;
    		#print $InternalRowsupdated;
    	}
    	if($line=~/Internal\srows\sinserted/ && $flag==2){
    		$InternalRowsInserted=$line;
    		$position=index($InternalRowsInserted,"=");
    		$InternalRowsInserted=substr($InternalRowsInserted,$position+1,);
    		$InternalRowsInserted=~s/\s//g;
    		#print $InternalRowsInserted;
    	}
    	if($line=~/Statement\ssorts/ && $flag==2){
    		$Statementsorts=$line;
    		$position=index($Statementsorts,"=");
    		$Statementsorts=substr($Statementsorts,$position+1,);
    		$Statementsorts=~s/\s//g;
    		#print $Statementsorts;
    	}
    	if($line=~/Statement\ssort\soverflows/ && $flag==2){
    		$Statementsortoverflows=$line;
    		$position=index($Statementsortoverflows,"=");
    		$Statementsortoverflows=substr($Statementsortoverflows,$position+1,);
    		$Statementsortoverflows=~s/\s//g;
    		#print $Statementsortoverflows;
    	}
    	if($line=~/Total\ssort\stime/ && $flag==2){
    		$Totalsorttime=$line;
    		$position=index($Totalsorttime,"=");
    		$Totalsorttime=substr($Totalsorttime,$position+1,);
    		$Totalsorttime=~s/\s//g;
    		#print $Totalsorttime;
    	}
    	if($line=~/Total\sexecution\stime/ && $flag==2){
    		$TotalExecutionTime=$line;	
    		$position=index($TotalExecutionTime,"=");
    		$TotalExecutionTime=substr($TotalExecutionTime,$position+1,);
    		$TotalExecutionTime=~s/\s//g;
    		#print $TotalExecutionTime;
    	}
    	if($line=~/Rows\sread/ && $flag==2){
    		$Rowsread=$line;	
    		$position=index($Rowsread,"=");
    		$Rowsread=substr($Rowsread,$position+1,);
    		$Rowsread=~s/\s//g;
    		#print $Rowsread;
    	}
    	if($line=~/Rows\swritten/ && $flag==2){
    		$Rowswritten=$line;	
    		$position=index($Rowswritten,"=");
    		$Rowswritten=substr($Rowswritten,$position+1,);
    		$Rowswritten=~s/\s//g;
    		#print $Rowswritten;
    	}
    	if($line=~/Buffer\spool\sdata\slogical\sreads/ && $flag==2){
    		$BPDLR=$line;	
    		$position=index($BPDLR,"=");
    		$BPDLR=substr($BPDLR,$position+1,);
    		$BPDLR=~s/\s//g;
    		#print $BPDLR;
    	}
    	if($line=~/Buffer\spool\stemporary\sdata\slogical\sreads/ && $flag==2){
    		$BPTDLR=$line;	
    		$position=index($BPTDLR,"=");
    		$BPTDLR=substr($BPTDLR,$position+1,);
    		$BPTDLR=~s/\s//g;
    		#print $BPTDLR;
    	}
    	if($line=~/Buffer\spool\sdata\sphysical\sreads/ && $flag==2){
    		$BPDPR=$line;	
    		$position=index($BPDPR,"=");
    		$BPDPR=substr($BPDPR,$position+1,);
    		$BPDPR=~s/\s//g;
    		#print $BPDPR;
    	}
    	if($line=~/Buffer\spool\stemporary\sdata\sphysical\sreads/ && $flag==2){
    		$BPTDPR=$line;	
    		$position=index($BPTDPR,"=");
    		$BPTDPR=substr($BPTDPR,$position+1,);
    		$BPTDPR=~s/\s//g;
    		#print $BPTDPR;
    	}
    	if($line=~/Buffer\spool\sindex\slogical\sreads/ && $flag==2){
    		$BPILR=$line;	
    		$position=index($BPILR,"=");
    		$BPILR=substr($BPILR,$position+1,);
    		$BPILR=~s/\s//g;
    		#print $BPILR;
    	}
    	if($line=~/Buffer\spool\stemporary\sindex\slogical\sreads/ && $flag==2){
    		$BPTILR=$line;	
    		$position=index($BPTILR,"=");
    		$BPTILR=substr($BPTILR,$position+1,);
    		$BPTILR=~s/\s//g;
    		#print $BPTILR;
    	}
    	if($line=~/Buffer\spool\sindex\sphysical\sreads/ && $flag==2){
    		$BPIPR=$line;	
    		$position=index($BPIPR,"=");
    		$BPIPR=substr($BPIPR,$position+1,);
    		$BPIPR=~s/\s//g;
    		#print $BPIPR;
    	}
    	if($line=~/Buffer\spool\stemporary\sindex\sphysical\sreads/ && $flag==2){
    		$BPTIPR=$line;	
    		$position=index($BPTIPR,"=");
    		$BPTIPR=substr($BPTIPR,$position+1,);
    		$BPTIPR=~s/\s//g;
    		#print $BPTIPR;
    	}
            if($line=~/Total\suser\scpu\stime/ && $flag==2){
    		$TUsrTm=$line;	
    		$position=index($TUsrTm,"=");
    		$TUsrTm=substr($TUsrTm,$position+1,);
    		$TUsrTm=~s/\s//g;
    		#print $TUsrTm;
    	}
            if($line=~/Total\ssystem\scpu\stime/ && $flag==2){
    		$TSysTm=$line;	
    		$position=index($TSysTm,"=");
    		$TSysTm=substr($TSysTm,$position+1,);
    		$TSysTm=~s/\s//g;
    		#print $TSysTm;
    	}	
    	if($line=~/Statement\stext/ && $flag==2){
    		$StatementText=$line;
    		$position=index($StatementText,"=");
    		$StatementText=substr($StatementText,$position+1,);
    		#print $StatementText;
    	}
    	else{
    		next;
    	}
    	if($flag==2){
    	$AverageTime=sprintf("%.15f", ($TotalExecutionTime)/($NumberExecutions));
    	$AverageRowRead=sprintf("%.5f", ($Rowsread)/($NumberExecutions));
    		if($Rowsread==" 0"||$Rowswritten==" 0"){
    			$AverageRowSelect=0;
    		}else{
    			$AverageRowSelect=sprintf("%.5f", ($Rowswritten)/($Rowsread));
    		}
    		if(($BPDLR+$BPILR)==0||($BPIPR+$BPDPR)==0){
    			$BPRatio=100;
    		}else{
    			$BPRatio = (1-($BPIPR+$BPDPR)/($BPDLR+$BPILR))*100;
    		}
    	open (OUTFILE, ">>transfer.txt");
    	print OUTFILE ($NumberExecutions.";".$NumberCompilations.";".$WorstPreparation.";".$BestPreparation.";".$InternalRowsDeleted.";".$InternalRowsInserted.";".$Rowsread.";".$InternalRowsupdated.";".$Rowswritten.";".$Statementsorts.";".$Statementsortoverflows.";".$Totalsorttime.";".$BPDLR.";".$BPDPR.";".$BPTDLR.";".$BPTDPR.";".$BPILR.";".$BPIPR.";".$BPTILR.";".$BPTIPR.";".$TotalExecutionTime.";".$TUsrTm.";".$TSysTm.";".$AverageTime.";".$AverageRowRead.";".$AverageRowSelect.";".$BPRatio.";".$StatementText);
    
    	$StatementText="";
    	$TotalExecutionTime="";
    	$NumberExecutions="";
    	$Statementsorts="";
    	$Statementsortoverflows="";
    	$Totalsorttime="";
    	$TUsrTm="";
    	$TSysTm="";
    	}
    }
    
    #Show end time.
    $date=localtime(time);
    print "End at ".$date;
    
    #Close the file handle.
    close(OUTFILE);
    close(FILE1)
    

     

    如何卸载db2数据库 linux 

    http://zzuwxf.iteye.com/blog/1128872

    卸载数据库时,经常会出现各种各样的警告,下面我们来看看通常的警告都如何处理。

     

    假定db2的安装目录是 $db2_install

     

    1. 停掉数据库服务,db2stop

    2.  进入$db2_install/install 目录,运行./db2_deinstall -a命令。

    3.  如果提示 “the deinstallation process cannot continue while there are DB2 instances related to the current DB2 copy,....",表明还有相关的db2实例,需要先把所有数据库实例drop了。进入目录$db2_install/instance,运行命令db2ilist,则会显示所有的数据库实例(如db2inst1),然后运行db2idrop db2inst1则会删掉实例名为db2inst1的数据库实例

    4. 重复步骤2

    5. 如果提示“The DB2 installer detects the DAS is using the current DB2 copy to uninstalled. The deinstallaton process cannot continue”,表明还有还需要把das服务drop掉。进入目录$db2_install/das /bin,运行./db2admim stop命令停掉das服务,然后进入$db2_install/instance,运行./dasdrop命令

    6. 重复步骤2

     

    db2fmcd和db2fmd

    http://www.itpub.net/thread-1046341-1-1.html

    http://www-01.ibm.com/support/knowledgecenter/SSEPGG_9.1.0/com.ibm.db2.udb.admin.doc/doc/c0008221.htm

    db2fmcd unix的? db2fmcd 故障监视器协调程序(Fault Monitor Coordinator)守护程序进程。每个物理机器就有一个这样的进程。 db2fmd 为每个由故障监视器监控的 DB2 实例而启动的故障监视器守护程序进程。该进程是由协调守护程序(db2fmcd)监控的,因此,如果您杀死 db2fmd 进程,那么 db2fmcd 将使其重新运行。

    比较奇怪的是:我可以kill掉db2inst1的db2fmd,但是却kill不掉dasusr1的db2fmd,在哪里可以控制db2fmd这个进程的启动和关闭?因为如果有db2fmd这个进程,有可能影响双机切换。

    显示了 db2fmd 和 DB2INST1 的条目表示仍在该实例上运行故障监视器。要关闭故障监视器,请作为实例所有者输入以下命令:

       db2fm -i db2inst1 -D

    可以使用 DB2 故障监视控制器实用程序(FMCU)来防止 FMC 启动。由于 FMCU 要访问系统的 inittab 文件,所以它必须作为 root 用户运行。要禁止 FMC 运行,请作为 root 用户输入以下命令:

       db2fmcu -d

    注: 如果应用 DB2 版本 9.1 修订包 1 或 DB2 版本 9.1 修订包 2,那么就会复位此命令并再次将 inittab 配置为包括 FMC。在应用其中一个修订包后,要防止 FMC 启动,必须重新发出以上命令。

    要撤销 db2fmcu -d 命令并将 inittab 重新配置为包括 FMC,请输入以下命令:

       db2fmcu -u -p fullpath

    其中 fullpath 是 db2fmcd 对象的完整路径,例如 /opt/IBM/db2/bin/db2fmcd。

    也可以启用 FMC 以便在系统第一次引导时自动启动实例。要对 DB2INST1 实例启用此功能,请输入以下命令:

       db2iauto -on db2inst1

    要关闭自动启动行为,请输入以下命令:

       db2iauto -off db2inst1

    end

     

  • 相关阅读:
    拉姆达表达式(lambda Expressions)
    Func,Action 的介绍
    VS2012 此模板尝试加载组件程序集”NuGet.VisualStudio.interop,Version=1.0.0.0 的解决
    444 英语口语
    Base algorithm
    Windows Search Service
    Windows Azure Storage
    HDU 3395 Special Fish
    CodeForces 235B Let's Play Osu!
    HDU 3435 A new Graph Game
  • 原文地址:https://www.cnblogs.com/lindows/p/14390391.html
Copyright © 2020-2023  润新知