db2数据库 订阅
DB2是IBM一种分布式数据库解决方案。说简单点:DB2就是IBM开发的一种大型关系型数据库平台。它支持多用户或应用程序在同一条SQL 语句中查询不同database甚至不同DBMS中的数据。目前,DB2数据库有如下一些版本:(比如DB2 for Unix,DB2 for Windows,DB2 for AS/400,DB2 for OS/390等)。 展开全文
DB2是IBM一种分布式数据库解决方案。说简单点:DB2就是IBM开发的一种大型关系型数据库平台。它支持多用户或应用程序在同一条SQL 语句中查询不同database甚至不同DBMS中的数据。目前,DB2数据库有如下一些版本:(比如DB2 for Unix,DB2 for Windows,DB2 for AS/400,DB2 for OS/390等)。
信息
外文名
DB2 database
版    本
DB2 for Unix,DB2 for Windows等
类    型
计算机科学
中文名
DB2数据库
学    科
跨学科
性    质
数据库
DB2数据库数据库介绍
DB2是IBM公司开发的关系数据库管理系统,它有多种不同的版本,如:DB2工作组版(DB2Workgroup Edition)、DB2企业版(DB2 Enterprise Edition)、DB2个人版(DB2 Personal Edition)和DB2企业扩展版(DB2 Enterprise-Exended Edition)等,这些产品基本的数据管理功能是一样的,区别在于支持远程客户能力和分布式处理能力。个人版适用于单机使用,即服务器只能由本地应用程序访问。工作组版和企业版提供了本地和远程客户访问DB2的功能(当然远程客户要安装相应客户应用程序开发部件),企业版包括工作组版中的所有部件外再增加对主机连接的支持。企业扩展版允许将一个大的数据库分布到同一类型的多个不同计算机上,这种分布式功能尤其适用于大型数据库的处理。DB2可运行在OS/2、Windows NT、UNIX操作系统上,通常将运行在这些平台上的DB2产品统称为DB2通用数据库,这主要是强调这些产品运行环境类似,并共享相同的源代码。DB2通用数据库主要组件包括数据库引擎(Dalabase Engine )应用程序接口和一组工具。数据库引擎提供了关系数据库管理系统的基本功能,如管理数据、控制数据的访问(包括并发控制)、保证数据完整性及数据安全。所有数据访问都通过SQL接口进行。db2起源于system r和system r*。他支持从pc到unix,从中小型机到大型机;从ibm到非ibm(hp及sun unix系统等)各种操作平台。他既可以在主机上以主/从方式独立运行,也可以在客户/服务器环境中运行。其中服务平台可以是os/400,aix,os/2,hp-unix,sun-solaris等操作系统,客户机平台可以是os/2或windows, dos, aix, hp-ux, sun solaris等操作系统。
收起全文
精华内容
下载资源
问答
  • DB2数据库

    千次阅读 2017-03-31 21:57:26
    转自:DB2数据库 开放分类:资料库正规化 DB2是IBM一种分布式数据库解决方案。说简单点:DB2就是IBM开发的一种大型关系型数据库平台.它支持多用户或应用程序在同一条SQL 语句中查询不同...
    
    

    开放分类:资料库正规化

    DB2是IBM一种分布式数据库解决方案。说简单点:DB2就是IBM开发的一种大型关系型数据库平台.它支持多用户或应用程序在同一条SQL 语句中查询不同database甚至不同DBMS中的数据。目前,DB2有如下一些版本:(比如DB2 for Unix,DB2 for Windows,DB2 for AS/400,DB2 for OS/390等)。

    编辑摘要

    中科永联高级技术培训中心(www.itisedu.com)

          DB2是IBM一种分布式数据库解决方案。说简单点:DB2就是IBM开发的一种大型关系型数据库平台.它支持多用户或应用程序在同一条SQL 语句中查询不同database甚至不同DBMS中的数据。目前,DB2有如下一些版本:(比如DB2 for Unix,DB2 for Windows,DB2 for AS/400,DB2 for OS/390等)

      DB2是IBM公司开发的关系数据库管理系统,它有多种不同的版本,如:DB2工作组版(DB2Workgroup Edition)、DB2企业版(DB2 Enterprise Edition)、DB2个人版(DB2 Personal Edition)和DB2企业扩展版(DB2 Enterprise-Exended Edition)等,这些产品基本的数据管理功能是一样的,区别在于支持远程客户能力和分布式处理能力。

      个人版适用于单机使用,即服务器只能由本地应用程序访问。工作组版和企业版提供了本地和远程客户访问DB2的功能(当然远程客户要安装相应客户应用程序开发部件),企业版包括工作组版中的所有部件外再增加对主机连接的支持。企业扩展版允许将一个大的数据库分布到同一类型的多个不同计算机上,这种分布式功能尤其适用于大型数据库的处理。

      DB2可运行在OS/2、Windows NT、UNIX操作系统上,通常将运行在这些平台上的DB2产品统称为DB2通用数据库,这主要是强调这些产品运行环境似,并共享相同的源代码。DB2通用数据库主要组件包括数据库引擎(Dalabase Engine )应用程序接口和一组工具。数据库引擎提供了关系数据库管理系统的基本功能,如管理数据、控制数据的访问(包括并发控制)、保证数据完整性及数据安全。所有数据访问都通过SQL接口进行。

    db2起源于system r和system r*。他支持从pc到unix,从中小型机到大型机;从ibm到非ibm(hp及sun unix系统等)各种操作平台。他既可以在主机上以主/从方式独立运行,也可以在客户/服务器环境中运行。其中服务
    平台可以是os/400,aix,os/2,hp-unix,sun-solaris等操作系统,客户机平台可以是os/2或windows, dos, aix, hp-ux, sun solaris等操作系统。

    一、db2核心数据库的特色

      db2数据库核心又称作db2公共服务器,采用多进程多线索体系结构,可以运行于多种操作系统之上,并分别根据相应平台环境作了调整和优化,以便能够达到较好的性能。

    (1) 支持面向对象的编程

      db2支持复杂的数据结构,如无结构文本对象,可以对无结构文本对象进行布尔匹配、最接近匹配和任意匹配等搜索。可以建立用户数据类型和用户自定义函数。

    (2) 支持多媒体应用程序

      db2支持大二分对象(blob),允许在数据库中存取二进制大对象和文本大对象。其中,二进制大对象可以用来存储多媒体对象。

    (3) 备份和恢复能力

    (4) 支持存储过程和触发器,用户可以在建表时显示的定义复杂的完整性规则

    (5) 支持的硅sql查询

    (6) 支持异构分布式数据库访问

    (7) 支持数据复制

    二、开发工具

      ibm提供了许多开发工具,主要有visualizer query, visualage, visualgen。

      visualizer是客户/服务器环境中的集成工具软件,主要包括visualizer query可视化查询工具,visualizer ultimedia query可视化多媒体查询工具,visualizer chart可视化图标工具,visualizer procedure可视化过程工具,visualizer statistics可视化统计工具,visualizer plans可视化规划工具, visualizer development可视化开发工具。

      visualage是一个功能很强的可视化的面向对象的应用开发工具,可翼大幅度的提高软件开发效率。其主要特征有:

    (1) 可视化程序设计工具。

    (2) 部件库。包括支持图形用户接口的预制不见,以及包含数据库查询、事务和本地、远程函数的通用部件。

    (3) 关系数据库支持。

    (4) 群体程序设计。

    (5) 支持增强的动态连接库。

    (6) 支持多媒体。

    (7) 支持数据共享。

      visualgen是ibm所提供的高效开发方案中的重要组成部分。它集成了第四代语言、客户/服务器与面向对象技术,给用户提供了一个完整、高效的开发环境。

    三、DB2数据库的安装

    这是在IBM RS6000 操作系统为AIX安装的,HP9000上雷同 

    1. 注册为具有超级用户权限的用户(root)  
    2. 将 标有“DB2通用数据库企业版”的软件光盘插入驱动器  
    3. 输入如下命令,以创建一个目录来安装该 CD-ROM:   
    # mkdir -p /cdrom 其中 cdrom 表示 CD-ROM 安装目录。  
    输入如下命令,来分配 CD-ROM 文件系统:  
    # smitty storage  
    4. 选择文件系统  
    5. 选择添加/更改/显示/删除文件系统  
    6. 选择 CDROM 文件系统  
    7. 选择添加 CDROM 文件系统  
    8. 在弹出窗口中,输入如下项作为安装点:   
    /cdrom  
    9. 通过输入以下命令来安装 CD-ROM 文件系统: smit mountf  
    10. 在文件系统名称字段中输入值。例如,该名称可能是 /dev/cd0。   
    11. 在安装目录字段中输入值。例如,此值可能是 /cdrom。  
    12. 将安装为只读系统设置为 Yes。   
    13. 单击确定。  
    14. cd /cdrom   
    15. 输入 ./db2setup 命令以启动 DB2 安装程序。 安装 DB2 V6 窗口打开。  
    16. 按 Tab 键更改突出显示的选项,按 Enter 键选择或取消选择选项。   
    (1) 在服务器上安装,一般选择安装以下三个产品:  
    注意:要显示想要安装的 DB2 产品的部件,选择定制。要在任何时候返回至先前窗口,选择取消。  
     DB2 Administration Client  
    选择定制安装这个产品,  
     DB2 udb enterprise edition   
    选择定制安装这个产品,   
     DB2 Software Developer Kit   
    如果同时做开发,需要定制安装此产品。  
    (2) 在“DB2产品信息”和“DB2产品库”只选择中国语言ZH_CN支持。  
    17. 在16步确认后,将开始安装数据库程序。在安装过程中,还需确认以下问题:  
    (1) 是否建立DB2管理帐户, 一般选择建立:  
    按缺省建立db2管理用户db2as(使用缺省的UID,Group Id,安装home路径),在语言支持上,  
    只选择中国语言ZH_CN支持。  
    (2) 是否建立DB2的实例, 一般选择建立:  
     按缺省建立db2管理用户db2inst1:db2iadm1(使用缺省的UID,Group Id,安装home路径),  
    在语言支持上,只选择中国语言ZH_CN支持。  
     按缺省建立db2用户db2fenc1:db2fenc1(使用缺省的UID,Group Id,安装home路径),  
    在语言支持上,只选择中国语言ZH_CN支持。  
     是否建立sample数据库(为了检查数据库的安装是否正确,一般选择建立sample数据库)  
     是否选择DB2的实例进程在操作系统启动时,自动执行初始化  
    如果在独立服务器上安装使用,可选择autostart,但在aix+HACMP+db2的双机共享环境中,不要选择  
    autostart,DB2实例进程的启动,由hacmp来控制。 

    18. 安装结果:  
    数据库程序安装完成后,DB2的软件程序安装在/usr/lpp目录中,   
    DB2DIR = /usr/lpp/DB2_06_01  
    注意:如果安装过程中没有指定建立实例和管理帐户,在安装完成后可以使用命令创建实例(db2icrt)。  
    或者要创建或添加新的实例、“管理服务器”或其他 DB2 产品和部件,输入如下命令:   
    /usr/lpp/DB2_06_01/install/DB2setup  
    19. 验证安装  
    在安装时若没有选择建立sample数据库,在安装完成后可以通过命令(db2sampl)创建 SAMPLE 数据库,  
    并通过使用命令行处理器与该数据库相连来验证安装:  
    (1) 作为具有系统管理 (SYSADM) 权限的用户向系统注册。如:db2inst1  
    (2) 输入 DB2sampl 命令以便创建 SAMPLE 数据库。  
    (3) 创建 SAMPLE 数据库时,用数据库别名 SAMPLE 将它自动编目。  
    (4) 输入 DB2start 命令命令来与 SAMPLE 数据库相连,检索在部门 20 中工作的所有雇员的列表,并重设数据库连接:  
    DB2 connect to sample  
    DB2 "select * from staff where dept = 20"  
    DB2 connect reset  
    注意:在验证安装后,可除去 SAMPLE 数据库以释放磁盘空间。输入 DB2 drop database sample 命令  
    来卸下 SAMPLE 数据库。 

       
    若尚未未安装 DB2 工具,则您可以通过创建 SAMPLE 数据库, 并通过使用命令行处理器与该数据库  
    相连来验证安装,如下所示:   
    步骤 1.   
    作为具有系统管理 (SYSADM) 权限的用户向系统注册。  

    步骤 2.   
    输入 db2sampl 命令以便创建 SAMPLE 数据库。  


    创建 SAMPLE 数据库时, 用数据库别名 SAMPLE 将它自动编目。  

    步骤 3.   
    输入 db2start 命令以启动数据库管理程序。  

    步骤 4.   
    输入下列命令来与 SAMPLE 数据库相连, 检索在部门 20 中工作的所有雇员的列表,并重设数据库连接:  

    db2 connect to sample  
    db2 "select * from staff where dept = 20"  
    db2 connect reset 

    如以上命令均正确执行, 则证明DB2 UDB 数据库服务器的安装已经成功完成.  
       

    四、DB2数据库的备份和恢复 
     
          最近,我恢复了一个数据库.其中的辛苦不予言表,我想写出自己用到的一些语句,和遇到相同问题的xdjm共勉。

          首先谈db2数据库的备份,我用的是backup命令。

          db2 backup database 数据库名(我的库是jsdb) 
          忘了说了,在backup之前需要停止你要备份的数据库,我用了db2stop force(之所以用force参数是因为这样好停懒省事:)和db2start。这样就保证可以成功backup了。 
          备份完成后db2会告诉你一个时间戳,例如:20040831(之后好几位)这样就会在当前目录下产生一个与你数据库名相同的文件夹名例如:jsdb。这个文件夹目录层次很重要,如果错了会在恢复时提示找不到文件。 
    备份完成以后就是恢复了,我用的是restore命令。 
          db2 restore database 数据库名(jsdb)taken at 时间戳(20040831) 
          执行这个语句要注意两点:1,要把备份文件夹考到当前目录下(我用了一个cd c:\命令设当前目录为c盘,将jsdb文件夹考到c盘根目录下);2,时间戳要和jsdb目录中的一致。 
    这样,就完成了恢复数据库了。

    五、DB2编程序技巧


    1 DB2编程


    1.1 建存储过程时Create 后一定不要用TAB键 
    CREATE PROCEDURE 
    的create后只能用空格,而不可用tab健,否则编译会通不过。 
    切记,切记。

    1.2 使用临时表

      要注意,临时表只能建在user tempory tables space 上,如果database只有system tempory table space是不能建临时表的。 
      另外,DB2的临时表和sybaseoracle的临时表不太一样,DB2的临时表是在一个session内有效的。所以,如果程序有多线程,最好不要用临时表,很难控制。 
       建临时表时最好加上  with  replace选项,这样就可以不显示的drop 临时表,建临时表时如果不加该选项而该临时表在该session内已创建且没有drop,这时会发生错误。 
    1.3 从数据表中取指定前几条记录 
    select  *  from tb_market_code fetch first 1 rows only

    但下面这种方式不允许 
    select market_code into v_market_code  
            from tb_market_code fetch first 1 rows only;      
         
    选第一条记录的字段到一个变量以以下方式代替 
        declare v_market_code char(1); 
        declare cursor1 cursor for select market_code from tb_market_code  
    fetch first 1 rows only for update; 
        open cursor1; 
        fetch cursor1 into v_market_code; 
        close cursor1;

    1.4 游标的使用 
    注意commit和rollback 
    使用游标时要特别注意如果没有加with hold 选项,在Commit和Rollback时,该游标将被关闭。Commit 和Rollback有很多东西要注意。特别小心

    游标的两种定义方式 
    一种为 
    declare continue handler for not found 
       begin 
         set v_notfound = 1; 
       end;

    declare cursor1 cursor with hold for select market_code from tb_market_code  for update; 
    open cursor1; 
    set v_notfound=0; 
    fetch cursor1 into v_market_code; 
    while v_notfound=0 Do 
    --work 
    set v_notfound=0; 
    fetch cursor1 into v_market_code; 
    end while; 
    close cursor1; 
    这种方式使用起来比较复杂,但也比较灵活。特别lback 而要保持该cursor不被关闭,只能使用这种方式。


      另一种为 
          pcursor1: for loopcs1 as  cousor1  cursor  as 
    select  market_code  as market_code 
               from tb_market_code 
               for update 
            do 
            end for; 
           这种方式的优点是比较简单,不用(也不允许)使用open,fetch,close。 
      但不能使用with  hold 选项。如果在游标循环内要使用commit,rollback则不能使用这种方式。如果没有commit或rollback的要求,推荐使用这种方式(看来For这种方式有问题)。

    修改游标的当前记录的方法 
    update tb_market_code set market_code='0' where current of cursor1; 
    不过要注意将cursor1定义为可修改的游标 
      declare cursor1 cursor for select market_code from tb_market_code  
    for update;

    for update 不能和GROUP BY、 DISTINCT、 ORDER BY、 FOR READ ONLY及UNION, EXCEPT, or INTERSECT但 UNION ALL除外)一起使用。

    1.5 类似decode的转码操作 
    oracle中有一个函数  select decode(a1,'1','n1','2','n2','n3') aa1 from 
    db2没有该函数,但可以用变通的方法 
    select case a1  
    when '1' then 'n1'  
    when '2' then 'n2'  
    else 'n3' 
        end as aa1 from

    1.6 类似CHARINDEX查找字符在字串中的位置 
    Locate(‘y’,’dfdasfay’) 
    查找’y’ 在’dfdasfay’中的位置。

    1.7 类似datedif计算两个日期的相差天数 
    days(date(‘2001-06-05’)) – days(date(‘2001-04-01’)) 
    days 返回的是从  0001-01-01 开始计算的天数 
    1.8 写UDF的例子 
    C写见sqllib\samples\cli\udfsrv.c

    1.9 创建含identity值(即自动生成的ID)的表 
    建这样的表的写法 
    CREATE TABLE test 
         (t1 SMALLINT NOT NULL 
            GENERATED ALWAYS AS IDENTITY 
            (START WITH 500, INCREMENT BY 1), 
          t2 CHAR(1)); 
    在一个表中只允许有一个identity的column.


    1.10 预防字段空值的处理 
    SELECT DEPTNO ,DEPTNAME ,COALESCE(MGRNO ,'ABSENT'),ADMRDEPT 
    FROM DEPARTMENT 
       COALESCE函数返回()中表达式列表中第一个不为空的表达式,可以带多个表达式。 
       和oracle的isnull类似,但isnull好象只能两个表达式。 
         

    1.11 取得处理的记录数 
    declare v_count int; 
    update tb_test set t1=’0’ 
    where t2=’2’; 
    --检查修改的行数,判断指定的记录是否存在 
    get diagnostics v_ count=ROW_COUNT;      
    只对update,insert,delete起作用. 
    不对select into 有效


    1.12 从存储过程返回结果集(游标)的用法 
    1、建一sp返回结果集 
    CREATE PROCEDURE DB2INST1.Proc1 (  ) 
        LANGUAGE SQL 
        result sets 2(返回两个结果集) 
    ------------------------------------------------------------------------ 
    -- SQL 存储过程  
    ------------------------------------------------------------------------ 
    P1: BEGIN 
            declare c1 cursor  with return to caller for  
                select  market_code 
                from    tb_market_code; 
            --指定该结果集用于返回给调用者 
            declare c2 cursor  with return to caller for  
                select  market_code 
                from    tb_market_code; 
             open c1; 
             open c2; 
    END P1                                       


    2、建一SP调该sp且使用它的结果集

    CREATE PROCEDURE DB2INST1.Proc2 ( 
    out out_market_code char(1)) 
        LANGUAGE SQL 
    ------------------------------------------------------------------------ 
    -- SQL 存储过程  
    ------------------------------------------------------------------------ 
    P1: BEGIN

     declare loc1,loc2 result_set_locator varying;  
    --建立一个结果集数组 
    call proc1; 
    --调用该SP返回结果集。 
    associate result set locator(loc1,loc2) with procedure proc1; 
    --将返回结果集和结果集数组关联 
     allocate cursor1 cursor for result set loc1; 
     allocate cursor2 cursor for result set loc2; 
    --将结果集数组分配给cursor 
    fetch  cursor1 into out_market_code; 
    --直接从结果集中赋值 
    close cursor1;         

    END P1

    3、动态SQL写法 
         DECLARE CURSOR C1 FOR STMT1;  
         PREPARE STMT1 FROM 
            'ALLOCATE C2 CURSOR FOR RESULT SET ?'; 
    4、注意: 
    一、 如果一个sp调用好几次,只能取到最近一次调用的结果集。 
    二、 allocate的cursor不能再次open,但可以close,是close sp中的对应cursor。

    1.13 类型转换函数 
    select cast ( current time as char(8)) from tb_market_code

    1.14 存储过程的互相调用 
    目前,c sp可以互相调用。 
    Sql sp 可以互相调用, 
    Sql sp 可以调用C sp, 
    但C sp 不可以调用Sql sp(最新的说法是可以)

    1.15 C存储过程参数注意 
    create procedure pr_clear_task_ctrl( 
    IN IN_BRANCH_CODE char(4), 
                  IN IN_TRADEDATE   char(8), 
               IN IN_TASK_ID     char(2), 
           IN IN_SUB_TASK_ID char(4), 
           OUT OUT_SUCCESS_FLAG INTEGER ) 
      
    DYNAMIC RESULT SETS 0 
    LANGUAGE C  
    PARAMETER STYLE GENERAL WITH NULLS(如果不是这样,sql 的sp将不能调用该用c写的存储过程,产生保护性错误) 
    NO DBINFO 
    FENCED 
    MODIFIES SQL DATA 
    EXTERNAL NAME 'pr_clear_task_ctrl!pr_clear_task_ctrl'@


    1.16 存储过程fence及unfence 
    fence的存储过程单独启用一个新的地址空间,而unfence的存储过程和调用它的进程使用同一个地址空间。 
    一般而言,fence的存储过程比较安全。 
    但有时一些特殊的要求,如要取调用者的pid,则fence的存储过程会取不到,而只有unfence的能取到。

    1.17 SP错误处理用法 
    如果在SP中调用其它的有返回值的,包括结果集、临时表和输出参数类型的SP, 
    DB2会自动发出一个SQLWarning。而在我们原来的处理中对于SQLWarning都 
    会插入到日志,这样子最后会出现多条SQLCODE=0的警告信息。 
    处理办法: 
    定义一个标志变量,比如DECLARE V_STATUS INTEGER DEFAULT 0, 
    在CALL SPNAME之后, SET V_STATUS = 1, 
    DECLARE CONTINUE HANDLER FOR SQLWARNING 
    BEGIN 
    IF V_STATUS <> 1 THEN 
    --警告处理,插入日志 
    SET V_STATUS = 0; 
    END IF; 
    END; 
    1.18 import用法 
    db2 import  from  gh1.out   of  DEL messages err.txt insert into  db2inst1.tb_dbf_match_ha

    注意要加schma

    1.19 values的使用 
    如果有多个 set  语句给变量付值,最好使用values语句,改写为一句。这样可以提高效率。 
      
    但要注意,values不能将null值付给一个变量。 
    values(null) into out_return_code; 
    这个语句会报错的。


    1.20 给select 语句指定隔离级别 
    select * from tb_head_stock_balance with ur 
      
    1.21 atomic及not atomic区别 
    atomic是将该部分程序块指定为一个整体,其中任何一个语句失败,则整个程序块都相当于没做,包括包含在atomic块内的已经执行成功的语句也相当于没做,有点类似于transaction。


    2  DB2编程性能注意


    2.1 大数据的导表 
    应该是export后再load性能更好,因为load不写日志。 
    比select into 要好。


    2.2 SQL语句尽量写复杂SQL 
       尽量使用大的复杂的SQL语句,将多而简单的语句组合成大的SQL语句对性能会有所改善。 
       DB2的SQL Engieer对复杂语句的优化能力比较强,基本上不用当心语句的性能问题。 
    Oracle 则相反,推荐将复杂的语句简单化,SQL Engieer的优化能力不是特别好。 
    这是因为每一个SQL语句都会有reset SQLCODE和SQLSTATE等各种操作,会对数据库性能有所消耗。 
    一个总的思想就是尽量减少SQL语句的个数。 
    2.3 SQL  SP及C SP的选择 
    首先,C的sp的性能比sql 的sp 的要高。 
    一般而言,SQL语句比较复杂,而逻辑比较简单,sql sp 与 c sp 的性能差异会比较小,这样从工作量考虑,用SQL写比较好。 
    而如果逻辑比较复杂,SQL比较简单,用c写比较好。

    2.4 查询的优化(HASH及RR_TO_RS) 
    db2set  DB2_HASH_JOIN=Y (HASH排序优化) 
       指定排序时使用HASH排序,这样db2在表join时,先对各表做hash排序,再join,这样可以大大提高性能。 
       剧沈刚说做实验,7个一千万条记录表的做join取10000条记录,再没有索引的情况下  72秒。

    db2set  DB2_RR_TO_RS=Y        
     该设置后,不能定义RR隔离级别,如果定义RR,db2也会自动降为RS. 
    这样,db2不用管理Next key,可以少管理一些东西,这样可以提高性能。     


    2.5 避免使用count(*) 及exists的方法 
    1、首先要避免使用count(*)操作,因为count(*)基本上要对表做全部扫描一遍,如果使用很多会导致很慢。 
    2、exists比count(*)要快,但总的来说也会对表做扫描,它只是碰到第一条符合的记录就停下来。

    如果做这两中操作的目的是为 
           select into 服务的话,就可以省略掉这两步。 
    直接使用select into 选择记录中的字段。

    如果是没有记录选择到的话,db2 会将  sqlcode=100 和 sqlstate=’20000’ 
    如果是有多条记录的话,db2会产生一个错误。

    程序可以创建  continue handler for  exception  
                  continue handler for  not found 
    来检测。 
    这是最快速的方法。

    3、如果是判断是不是一条,可以使用游标来计算,用一个计数器,累加,达到预定值后就离开。这个速度也比count(*) 要快,因为它只要扫描到预定值就不再扫描了,不用做全表的scan,不过它写起来比较麻烦。


    3 DB2表及sp管理


    3.1 看存储过程文本 
    select text from syscat.procedures where procname='PROC1'; 
    3.2 看表结构 
    describe table syscat.procedures 
    describe select * from syscat.procedures

    3.3 查看各表对sp的影响(被哪些sp使用) 
    select PROCNAME from SYSCAT.PROCEDURES where SPECIFICNAME in(select dname from sysibm.sysdependencies where bname in ( select PKGNAME  from syscat.packagedep where bname='TB_BRANCH'))


    3.4 查看sp使用了哪些表 
    select bname from syscat.packagedep where btype='T' and pkgname in(select bname from sysibm.sysdependencies where dname in (select specificname from syscat.procedures where procname='PR_CLEAR_MATCH_DIVIDE_SHA')) 
    3.5 查看function被哪些sp使用 
    select PROCNAME from SYSCAT.PROCEDURES where SPECIFICNAME in(select dname from sysibm.sysdependencies where bname in ( select PKGNAME  from syscat.packagedep where bname   in  (select SPECIFICNAME from SYSCAT.functions where funcname='GET_CURRENT_DATE')))


    使用function时要注意,如果想drop 掉该function必须要先将调用该function的其它存储过程全部drop掉。 
    必须先创建function,调用该function的sp才可以创建成功。 
    3.6 修改表结构 
    一次给一个表增加多个字段 
    db2 "alter table tb_test add column t1 char(1) add column t2 char(2) add column t3 int"


    4 DB2系统管理


    4.1 DB2安装 
      在Windows 98 下安装db2 7.1 或其他版本,如果有Jdbc错误或者是Windwos 98不能启动,则将autoexec.bat 中的内容用如下内容替换:


    C:\PROGRA~1\TRENDP~1\pcscan.exe C:\ C:\WINDOWS\COMMAND\ /NS /WIN95  
    rem C:\WINDOWS\COMMAND.COM /E:32768 
    REM 【Header】

    REM 【CD-ROM Drive】

    REM 【Miscellaneous】

    REM 【Display】

    set PATH=%PATH%;C:\MSSQL\BINN;C:\PROGRA~1\SQLLIB\BIN;C:\PROGRA~1\SQLLIB\FUNCTION;C:\PROGRA~1\SQLLIB\SAMPLES\REPL;C:\PROGRA~1\SQLLIB\HELP 
    IF EXIST C:\PROGRA~1\IBM\IMNNQ\IMQENV.BAT CALL C:\PROGRA~1\IBM\IMNNQ\IMQENV.BAT 
    IF EXIST C:\PROGRA~1\IBM\IMNNQ\IMNENV.BAT CALL C:\PROGRA~1\IBM\IMNNQ\IMNENV.BAT 
    set DB2INSTANCE=DB2 
    set CLASSPATH=.;C:\PROGRA~1\SQLLIB\java\db2java.zip;C:\PROGRA~1\SQLLIB\java\runtime.zip;C:\PROGRA~1\SQLLIB\java\sqlj.zip;C:\PROGRA~1\SQLLIB\bin 
    set MDIS_PROFILE=C:\PROGRA~1\SQLLIB\METADATA\PROFILES 
    set LC_ALL=ZH_CN 
    set INCLUDE=C:\PROGRA~1\SQLLIB\INCLUDE;C:\PROGRA~1\SQLLIB\LIB;C:\PROGRA~1\SQLLIB\TEMPLATES\INCLUDE 
    set LIB=C:\PROGRA~1\SQLLIB\LIB 
    set DB2PATH=C:\PROGRA~1\SQLLIB 
    set DB2TEMPDIR=C:\PROGRA~1\SQLLIB 
    set VWS_TEMPLATES=C:\PROGRA~1\SQLLIB\TEMPLATES 
    set VWS_LOGGING=C:\PROGRA~1\SQLLIB\LOGGING 
    set VWSPATH=C:\PROGRA~1\SQLLIB 
    set VWS_FOLDER=IBM DB2 
    set ICM_FOLDER=信息目录管理器

    win


    4.2 创建Database 
    create database head using codeset IBM-eucCN territory CN; 
    这样可以支持中文。


    4.3 手工做数据库远程(别名)配置 
    db2  catalog tcpip  node   node1  remote   172.28.200.200 server  50000 
    db2  catalog db    head   as     test1 at  node   node1

    然后既可使用: 
       db2 connect to test1  user …  using … 
    连上head库了

    4.4 停止启动数据库实例 
    db2start 
    db2stop (force)


    4.5 连接数据库及看当前连接数据库 
    连接数据库 
    db2  connect to head user db2inst1  using db2inst1

    当前连接数据库 
    db2  connect 
    4.6 停止启动数据库head 
    db2  activate  db  head 
    db2  deactivate db  head 
    要注意的是,如果有连接,使用deactivate db 不起作用。 
    如果是用activate db启动的数据库,一定要用deactivate db才会停止该数据库。(当然如果是db2stop也会停止)。 
    使用activate db,这样可以减少第一次连接时的等待时间。 
    Database如果不是使用activate db启动而是通过连接数据库而启动的话,当所有的连接都退出后,db也就自动停止。

    4.7 查看及停止数据库当前的应用程序 
    查看应用程序: 
    db2   list   applications  show  detail 

    授权标识 | 应用程序名 | 应用程序句柄 |  应用程序标识 | 序号#  | 代理程序 |  协调程序 | 状态 |  状态更改时间 |  DB 名 | DB 路径|                                                      |    节点号 |   pid/线程

    其中:1、应用程序标识的第一部分是应用程序的IP地址,不过是已16进制表示的。 
    2、pid/线程即是在unix下看到的线程号。

    停止应用程序: 
    db2 "force application(236)" 
    db2 “force application all”

    其中:该236是查看中的应用程序句柄。


    4.8 查看本instance下有哪些database 
    db2 LIST DATABASE DIRECTORY  【 on /home/db2inst1 】 
    4.9 查看及更改数据库head的配置 
    请注意,在大多数情况下,更改了数据的配置后,只有在所有的连接全部断掉后才会生效。

    查看数据库head的配制 
    db2 get db cfg for head


    更改数据库head的某个设置的值 
    4.9.1 改排序堆的大小 
    db2 update db cfg for head using SORTHEAP 2048 
    将排序堆的大小改为2048个页面,查询比较多的应用最好将该值设置比较大一些。 
    4.9.2 改事物日志的大小 
    db2 update db cfg for head using  logfilsiz  40000 
    该项内容的大小要和数据库的事物处理相适应,如果事物比较大,应该要将该值改大一点。否则很容易处理日志文件满的错误。

    4.9.3 出现程序堆内存不足时修改程序堆内存大小 
    db2 update db cfg for head using  applheapsz  40000 
    该值不能太小,否则会没有足够的内存来运行应用程序。

    4.10 查看及更改数据库实例的配置 
    查看数据库实例配置 
    db2  get dbm cfg  
    更改数据库实例配制

    4.10.1 打开对锁定情况的监控。 
    db2 update dbm cfg using dft_mon_lock  on 
    4.10.2 更改诊断错误捕捉级别 
    db2 update dbm cfg using diaglevel 3 
    0 为不记录信息 
    1 为仅记录错误 
    2 记录服务和非服务错误 
    缺省是3,记录db2的错误和警告 
    4 是记录全部信息,包括成功执行的信息 
    一般情况下,请不要用4,会造成db2的运行速度非常慢。


    4.11 db2环境变量 
    db2 重装后用如下方式设置db2的环境变量,以保证sp可编译 
    将set_cpl 放到AIX上, chmod +x set_cpl, 再运行之

    set_cpl的内容 
    db2set DB2_SQLROUTINE_COMPILE_COMMAND="xlc_r  -g \ 
    -I$HOME/sqllib/include SQLROUTINE_FILENAME.c \ 
    -bE:SQLROUTINE_FILENAME.exp -e SQLROUTINE_ENTRY \ 
    -o SQLROUTINE_FILENAME -L$HOME/sqllib/lib -lc -ldb2"

    db2set DB2_SQLROUTINE_KEEP_FILES=1 
    4.12 db2命令环境设置 
    db2=>list command options 
    db2=>update command options using C off--或on,只是临时改变 
    db2=>db2set db2options=+c --或-c,永久改变

    4.13 改变隔离级别 
    DB2SET DB2_SQLROUTINE_PREPOPTS=CS|RR|RS|UR

    交互环境更改session的隔离级别, 
           db2 change isolation  to UR 
    请注意只有没有连接数据库时可以这样来改变隔离级别。

    4.14 管理db\instance的参数 
    get db cfg for head(db) 
    get dbm cfg(instance)

    4.15 升级后消除版本问题 
    db2   bind  @db2ubind.lst 
    db2   bind   @db2cli.lst

    4.16 查看数据库表的死锁 
    再用命令中心查询数据时要注意,如果用了交互式查询数据,命令中心将会给所查的记录加了s锁.这时如果要update记录,由于update要使用x锁,排它锁,将会处于锁等待.

    首先,将监视开关打开 
    db2 update dbm cfg using dft_mon_lock  on 
    快照 
      db2 get snapshot for  Locks  on  cleardb   >snap.log 
                        tables  
    bufferpools 
    tablespaces 
    database 
       然后再看snap.log中的内容即可。 
    对Lock可根据Application handle(应用程序句柄)看每个应用程序的锁的情况。 
     监视完毕后,不要忘了将监视器关闭 
         db2 update dbm cfg using dft_mon_lock  off

    六、DB2常用知识

    以下主要以DB27.X为基础的.以下的字符为小写.

      本文对DB2高手来说是不用看的.

      1.DB2产品的级别有那些?

      企业版的 ENTERPRISE EDITION

      工作企业扩展版 ENTERPRISE EXTENDED EDITION

      个人版的 PERSONAL EDITION

      卫星版的 SATELLITE EDITION

      微型版的 EVERYPLACE

      

      2.可以连接到DB2数据库的产品有哪些?

      DB2客户端

      DB2CONNECT

      DB2DATA propagator

      DB2NET.DATA

      DB2DATA joiner

      DB2 RELATIONAL CONNECT

      WebSphere应用服务器

      等

      

      3.DB2支持的通讯协议有哪些?

      TCP/IP

      NETBIOS

      APPG

      IPX/SPX

      NAMEPIPE

      等

      

      4.DB2客户端产品有哪些?

      DB2运行时间客户端DB2 RUNTIME CLIENT

      DB2管理客户端DB2ADMINI STRATION CLIENT

      DB2应用程序开发客户端DB2 APPLICATION DEVELOP MENT CLIENT

      DB2瘦客户端 DB2 THIN CLIENT

      

      5.一个数据库是否可以安装在多个数据库服务器上?

      可以

      

      6.从哪个版本后存储过程可以用SQL语句来创建?

      7.1版后

      

      7.DB2提供哪些关系扩展器?

      文本扩展器 TEXT EXTENDER

      图象扩展器 IMAGE EXTENDER

      音频扩展器 AUDIO EXTENDER

      视频扩展器 VIDEO EXTENDER

      空间数据扩展器 SPATIAL EXTENDER

      XML扩展器 XML EXTENDER

      网络搜索扩展器NET.SEARCH EXTENDER

      

      8.WINDOWS和OS/2环境下的DB2安装目录结构?

      用SETUP.EXE来安装

      

      \SQLLIB安装的根目录,包括README文件

      \SQLLIB\ADSM包含ADSTAR分布式存储管理器文件

      \SQLLIB\BIN包含DB2工具的可执行文件

      \SQLLIB\BND包含DB2工具的绑定文件

      \SQLLIB\CC包含运行控制中心所需的文件

      \SQLLIB\CFG包含默认的系统配置文件

      \SQLLIB\CONV包含代码页转换表文件

      \SQLLIB\DB2默认的实例目录

      \SQLLIB\DB2DAS00缺省的DB2管理服务器目录

      \SQLLIB\DOC包含DB2联机手册

      \SQLLIB\FUNCTION默认的用户自定义函数目录

      \SQLLIB\FUNCTION\UNFENCED默认的非隔离用户自定义函授目录

      \SQLLIB\HELP联机帮助文件

      \SQLLIB\JAVADB2所需的JAVA类库

      JAVA12包含JDK1.2的支持程序

      \SQLLIB\MISC包含HTML搜索服务器文件

      \SQLLIB\MSG\PRIME包含信息文件

      \SQLLIB\QP包含QUERYPATROLLER的客户端文件

      \SQLLIB\SAMPLES包含样例程序和样例脚本

      \SQLLIB\SPMLOG包含DB2同步点管理器日志文件

      \SQLLIB\THNSETUP包含瘦客户端安装文件

      9.UNIX和LINUX环境下的DB2安装目录结构?

      用DB2SETUP.EXE来安装

      安装的根目录下还将创建以下目录:

      

      README安装的根目录,包括README文件

      ADM包含系统管理工具文件

      ADSM包含ADSTAR分布式存储管理器文件

      BIN包含DB2工具的二进制可执行文件

      BND包含DB2工具的绑定文件

      CC包含运行控制中心所需的文件

      CFG包含默认的系统配置文件

      CONV包含代码页转换表文件

      DOC包含DB2联机手册

      FUNCTION默认的用户自定义函数目录

      FUNCTION\UNFENCED默认的非隔离用ё远ㄒ搴谀柯?lt;BR>  INSTALL包含安装程序

      INSTANCE包含实例脚本

      JAVADB2所需的JAVA类库

      LIBDB2库文件

      MAP包含DB2CONNECT使用的映射文件

      MISC包含HTML搜索服务器文件

      SAMPLES包含样例程序和样例脚本

      MSG\$L包含DB2信息文件


      10.AIX下用哪个命令来安装DB2?

      INSTALLP命令

      

      11.同一操作系统下可以安装多个DB2数据库?

      可以的

      

      12.如何停止实例?

      DB2STOP

      

      13.如何启动实例?

      DB2START

      【page】


      14.如何修改注册项的值?

      DB2SET可以修改

      如:

      设定当前实例的一个参数

      DB2SET PARAMETER=VALUE

      

      设定一个全局级的参数

      DB2SET PARAMETER=VALUE-G(小写)

      

      查看能在配置文件注册表中设置的所有变量的列表

      DB2SET-LR(小写)

      

      15.如何在CLP执行操作系统的命令?

      在命令前加"!"作为前缀

      DB2=>!DIR C:\

      

      16.在CLP中命令过长怎么办?

      用"\"作为续行符号

      

      17.如何获得DB2的命令的语法相关信息?

      DB2 ?显示所有DB2命令

      DB2 ? COMMAND显示命令信息

      DB2 ? SQLnnnn 显示这个SQLCODE的解释信息

      DB2 ? DB2nnnn 显示这个DB2错误的解释信息

      

      18.如何查看当前CLP的设置?

      DB2=>LIST COMAND OPTIONS

      

      19.如何更新当前CLP会话的特定项设置?

      DB2 UPDATE COMMAND OPTIONS USING OPTIONS...

      

      20.COMMAND WINDOWS可以通过哪个命令调用?

      DB2CMD命令

      

      21.管理服务器的默认名为?

      UNIX下为DB2AS

      WINDOWS下为DB2DAS00

      

    22.常用管理DB2服务器实例的命令?

      DB2ADMIN START 启动DB2管理服务器实例

      DB2ADMIN STOP 停止DB2管理服器实例

       DASICRTUNIX下创建DB2管理服务器实例

      DASIDROPUNIX下删除DB2管理服务器实例

      DB2 ADMIN CREATE WINDOWS OR OS/2下创建DB2管理服务器实例

      DB2 ADMIN DROP WINDOWSOROS/2下删除DB2管理服务器实例

      DB2 GET ADMIN CFG 显示DB2管理服务器的配置参数

      DB2 UPDATE ADMIN CFG 修改DB2管理服务器的配置参数

      DB2 RESET ADMIN CFG将DB2管理服务器的配置参数设为默认值

      

      23.DB2目录分为哪几种?

      系统数据库目录

      本地数据库目录

      节点目录

      DCS目录

      管理节点目录

      

      24.如何查看系统数据库目录?

      LIST DB DIRECTORY

      

      25.如何查看数据库服务器目录?

      LIST NODE DIRECTORY

      

      26.DB2实例的服务器的默认端口是?

      50000

      服务器名称为DB2CDB2

      

      27.DB2UDB服务器端的认证类型有?

      SERVER

      SERVER_ENCRYPT

      CLIENT

      DCE

      DCE_SERVER_ENCRYPT

      KERBEROS

      KRB_SERVER_ENCRYPT

      

      28.DB2客户端的认证类型有?

      SERVER

      SERVER_ENCRYPT

      DCS

      DCS_ENCRYPT

      CLIENT

      DCE

      

      29.DB2中有哪几种类型的权限?

      SYSADM 系统管理权限

      SYSCTRL系统控制权限

      SYSMAINT系统维护权限

      DBADM 数据库管理权限

      LOAD 对表进行LOAD操作的权限

      

      30.不能通过GRANT授权的权限有哪种?

      SYSAM

      SYSCTRL

      SYSMAINT

      要更该上述权限必须修改数据库管理器配置参数

      

      31.表的类型有哪些?

      永久表(基表)

      临时表(说明表)

      临时表(派生表)

      

       


       

    51.安装DB2默认的事例名称是?

      在WINDOWS或OS/2中默认的是DB2

      在LINUX或UNIX环境下默认的是DB2INST1

      

      52.安装后的默认帐户是?

      在WINDOWS或OS/2中默认的是DB2ADMIN

      在LINUX或UNIX环境下默认的是DB2AS

      

    53.事例的类型有哪些?

      CLIENT(客户)

      STANDALONE(独立的)

      SATELLITE(卫星)

      EEDB2

      EEE


    68.一个数据库至少包括哪些表空间?

      一个目录表空间

      一个或多个用户表空间

      一个或多个临时表空间【page】

      

      69.根据数据与存储空间之间移动的控制方式不同,分哪两种表空间?

      系统管理的空间(SMS)

      数据库管理的空间(DMS)


    81.表的类型有哪些?

      基本表

        结果表

      概要表

      类型表

      子类型

      子表

      声明的临时表

      系统临时表


    105.DB2数据库监控的两个组成部分?

      快照监控(SNAPSHOTMONITOR)可返回特定时间点的数据库活动的快照.

      事件监控(EVENTMONITOR)记录事件发生的数据.

      

      106.系统监控的数据元素类型?

      计数器(COUNTER)记录活动发生的次数.

      测量(GAUGE)测量条目的当前值.

      水线(WATERMARK)从监控来元素达到的最大或最小数值.

      信息(INFORMATION)监控活动的参照类型细节.

      时间点(TIMESTAMP)活动发生的日期时间.

      时间(TIME)返回一个活动花费的时间.

    114.DB2的SQL语句的类别?

      DCL:数据控制语言,提供对数据库对象的访问权限.

      DDL:数据定义语言,创建,修改,删除数据库对象的.

      DML:数据操纵语言,用来插入,更新,删除数据的.【page】

      115.DCL的权限有哪些?

      CONTROL权限:如果用户创建一个对象,则改用户能完全访问该对象.

      GRANT语句将权限授予给用户.

      REVOKE语句撤销一个用户的权限.

      116.DDL有哪些?

      CREATE

      DECLARE

      ALTER

        DROP

      等

    117.DML有哪些?

      INSERT

      SELECT

      UPDATE

      DELETE

      等

      

      118.DB2有没有布尔类型?

      没有

      

      119.如何查询DB2的内置函数?

      自带文档ADMINISTION-->SQLREFERENCE-->FUNCTIONS内

    综述 
      IBM公司研制的一种关系型数据库系统。DB2主要应用于大型应用系统,具有较好的可伸缩性,可支持从大型机到单用户环境,应用于OS/2、Windows等平台下。 DB2提供了高层次的数据利用性、完整性、安全性、可恢复性,以及小规模到大规模应用程序的执行能力,具有与平台无关的基本功能和SQL命令。DB2采用了数据分级技术,能够使大型机数据很方便地下载到LAN数据库服务器,使得客户机/服务器用户和基于LAN的应用程序可以访问大型机数据,并使数据库本地化及远程连接透明化。 它以拥有一个非常完备的查询优化器而著称,其外部连接改善了查询性能,并支持多任务并行查询。 DB2具有很好的网络支持能力,每个子系统可以连接十几万个分布式用户,可同时激活上千个活动线程,对大型分布式应用系统尤为适用。   DB2是IBM出口的一系列关系型数据库管理系统,分别在不同的操作系统平台上服务。虽然DB2产品是基于UNIX的系统和个人计算机操作系统,在基于UNIX系统和微软在windows系统下的Access方面,DB2追寻了ORACLE的数据库产品。   除了它可以提供主流的OS/390和VM操作系统,以及中等规模的AS/400系统之外,IBM还提供了跨平台(包括基于UNIX的LINUX,HP-UX,Sun Solaris,以及SCO UnixWare;还有用于个人电脑的OS/2操作系统,以及微软的Windows 2000和其早期的系统)的DB2产品。DB2数据库可以通过使用微软的开放数据库连接(ODBC)接口,Java数据库连接(JDBC)接口,或者CORBA接口代理被任何的应用程序访问。   7月14日,IBM全球同步发布了一款具有划时代意义的数据库产品——DB2 9(“DB2”是IBM数据库产品系列的名称)。而这款新品最大特点即是率先实现了可扩展标记语言(XML)和关系数据间的无缝交互,而无需考虑数据的格式、平台或位置。   DB2的前世今生和未来:   对于每个最终站在奖台上泪水盈面的奥运冠军来说,为此刻他或她也许已经付出了5年甚至10年的艰苦努力。相比这些人类的冠军们,这个世界还有另外一种意义上的冠军,它们虽没有泪水,却依然在历史上留下了非凡的轨迹—DB2就是这类冠军中的一员。这个数据库领域里当之无愧的冠军,已用了足足25年来描绘它的轨迹。   纪念IBM DB2的诞生   IBM DB2已经25周岁拉!DB2回顾与展望

    展开全文
  • DB2数据库

    千次阅读 2007-12-10 14:50:00
    DB2数据库 1、Load 方法装入数据: export to tempfile of del select * from TABLENAME where not 清理条件; load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable; ...
     DB2数据库 
    1、Load 方法装入数据:
       export to tempfile of del select * from TABLENAME where not 清理条件;
       load from tempfile of del modified by delprioritychar replace into TABLENAME nonrecoverable;
       说明:
       在不相关的数据表export数据时,可以采取并发的形式,以提高效率;
       TABLENAME指待清理table的名称;
       modified by delprioritychar防止数据库记录中存在换行符,导致数据无法装入的情况;
       replace into对现数据库中的内容进行替换,即将现行的数据记录清理,替换为数据文件内容;
       nonrecoverable无日志方式装入;

    2、查找当前的应用:
       db2 list application |grep BTPDBS;

    3、删除当前正在使用的application:
       db2 "force application (Id1,Id2,Id3)"
        Id1,Id2,Id3 是List显示的应用号;

    4、查看当前应用号的执行状态:
       db2 get snapshot for application agentid 299 |grep Row

    5、查看数据库参数:
       db2 get db cfg for <dbsname>   //当前数据库可以省略
    6、修改数据库的Log数据:
       db2 update db cfg using <参数名> <参数值>

    7、Db2Stop Force的用法:
       在进行Bind的时候出现如下错误:
            SQL0082C   An error has occurred which has terminated processing.
            SQL0092N   No package was created because of previous errors.
            SQL0091N   Binding was ended with "3" errors and "0" warnings.
        主要是表文件被加锁,不能继续使用;
    在进行stop的时候报错:db2stop
        8/03/2005 21:46:53   0 0    SQL1025N   The database manager was not stopped because databases are still active.
        SQL1025N   The database manager was not stopped because databases are still active.
    需要使用如下命令可以解决这个问题: db2stop force
        08/03/2005 21:47:49      0    0    SQL1064N   DB2STOP processing was successful.
        SQL1064N   DB2STOP processing was successful.
    然后启动数据库db2start,连接数据库db2s后,重新进行bind即可。

    8、缓冲池参数修改:
        db2 alter bufferpool ibmdefaultbp size 10240
       查看本表的数据内容如下:
        db2 "select * from syscat.bufferpools";  

    9、DB2 日志处理:
         DB2日志是以文件的形式存放在文件系统中,分为两种模式:循环日志和归档日志。当创建新数据库时,日志的缺省模式是循环日志。在这种模式下,只能实现数 据库的脱机备份和恢复。如果要实现联机备份和恢复,必须设为归档日志模式。 目前在综合业务系统中,设置的均是归档日志模式;其它系统(如事后监督、经营决策、中间业务等)一般都设置为循环日志模式。至于采用何种模式,可以通过修 改数据库配置参数(LOGRETAIN)来实现: 归档日志模式:db2 update db cfg for <dbname> using logretain on 注:改为on后,查看数据库配置参数logretain的值时,实际显示的是recovery。改变此参数后,再次连接数据库会显示数据库处于备份暂挂 (BACKUP PENDING)状态。这时,需要做一次对数据库的脱机备份(db2 backup db <dbname>),才能使数据库状态变为正常。 循环日志模式:db2 update db cfg for <dbname> using logretain off

    10、Db2 日志处理:
         必须按照以下正确的步骤进行操作: 要求必须使用DB2命令PRUNE进行清理,不建议使用rm命令删除。   删除前应保证应用已停止(即联机已下来)。查看当前使用的日志文件目录及第一活动日志文件 用 “db2 get db cfg for <dbname>”命令查看日志文件目录(Path to log files)参数,确定数据库当前使用的日志文件目录。 例如:Path to log files = /db2log/,说明DB2日志存放目录是/db2log   用 “db2 get db cfg for <dbname>”命令查看第一活动日志文件(First active log file)参数,该参数对应的日志文件之前的日志文件均为归档日志文件,如果确认没有用,可以删除。 例如:First active log file = S0015913.LOG,说明当前第一活动日志文件是S0015913.LOG。   备份好要删除的归档日志 删除归档日志 以应用用户(如BTP)登录,执行:
    $ db2 connect to <dbname>
    $ db2 prune logfile prior to S???????.LOG

    注:S???????.LOG为查看到的第一活动日志文件。此命令可以将当前第一活动日志文件之前的归档日志文件全部删除。

    11、如何清理db2diag.log文件
         db2diag.log,是用来记录DB2数据库运行中的信息的文件。可以通过此文件,查看记录的有关DB2数据库详细的错误信息。此文件也是不断增大 的,需要定期进行清理。 可以通过查看实例的配置参数DIAGPATH,来确定db2diag.log文件是放在哪个目录下:db2 get dbm cfg 如果Diagnostic data directory path(DIAGPATH) = /home/db2inst1/sqllib/db2dump,则此文件是放在/home/db2inst1/sqllib/db2dump目录下。当文 件系统/home的使用率达到80%-90%左右时,应及时删除db2diag.log文件。 请按以下正确步骤操作: 确认应用(如BTP)、DB2已经停止。 将原db2diag.log文件备份到其它文件系统下。 删除db2diag.log文件。删除后,DB2会自动创建一个新的文件。

    12、Load 操作
        在进行load的时候
        db2 "load from acmmst.txt of del modified by coldel| replace into acmmst nonrecoverable ”
        由于数据不规范出现错误,强行中断以后,进行操作的时候出现如下错误:
          SQL0668N   Operation not allowed for reason code "3" on table "BTP.ACMMST".
          SQLSTATE=57016
        此时,进行反方向操作即可:
        db2 "load from /dev/null of del terminate into acmmst nonrecoverable"。

        如果没有使用参数nonrecoverable,则会出现数据库状态不正确的情况,使用:
          db2 list tablesapces show detail 查看状态,如果不是正常状态,则脱机状态进行备份即可。

    两个表文件之间UPDATE的方法:
        db2 "update cdmcrd set offset = (select cdmlsl.offset from cdmlsl where cdmlsl.crdno=cdmcrd.crdno) where cdmcrd.crdno in (select cdmlsl.crdno from cdmlsl)


    13、多字段条件查询和修改:
         表A中的字段有actno, cnlno,bal,pwd;表B中的字段为Actno,Cnlno,TxnAmt;目的是将A表中的bal修改为B表中的TxnAmt,命令:
       db2 "update A set bal=(select txnamt from B where actno=A.actno and cnlno=A.Cnlno) where A.actno||A.cnlno in (select Actno||cnlno from B );

    14、多条件匹配查询
        查询某个表中条件是B?AAA的记录:
       db2 "select * from A where actno like 'B_AAA%'".
         查询数据中存在某些字符的记录:
        db2 "select * from A where actno like '%-AAA%".

    15/数据库恢复的处理
       进行数据库恢复的时候使用以下的命令:
          restore db db1 to /tstdb2/catalog   into db newlogpath /tstdb2/db2log buffer 2048
          replace existing redirect parallelism   16;
          set tablespace containers for 1   using   (path '/tstdb2/db2tmp');
          set tablespace containers for 2   using
                 (device '/dev/rtstcontlv00' 2621440, device '/dev/rtstcontlv01' 2621440,
                  device '/dev/rtstcontlv02' 2621440, device '/dev/rtstcontlv03' 2621440 ) ;
          restore db db1 continue;

    恢复完成以后执行命令db2s时报如下的错误:
    P570:>db2s
       SQL1117N   A connection to or activation of database "DB" cannot be made
       because of ROLL-FORWARD PENDING.   SQLSTATE=57019
       DB21034E   The command was processed as an SQL statement because it was not a
       valid Command Line Processor command.   During SQL processing it returned:
       SQL1024N   A database connection does not exist.   SQLSTATE=08003
    解决办法如下:
    P570:>db2 rollforward db db to end of logs and complete

                                     Rollforward Status

    Input database alias                    = db
    Number of nodes have returned status    = 1

    Node number                             = 0
    Rollforward status                      = not pending
    Next log file to be read                =
    Log files processed                     =   -
    Last committed transaction              = 2007-11-20-10.59.23.000000

    DB20000I   The ROLLFORWARD command completed successfully.
    展开全文
  • DB2数据库odbc驱动

    千次下载 热门讨论 2012-02-25 18:22:10
    DB2数据库的odbc驱动,安装后即可通过odbc配置连接db2数据库
  • DB2数据库常用命令

    千次阅读 2020-05-12 11:08:47
    查看DB2数据库:db2 list db directory 查看DB2数据库应用:db2 list applications 查看DB2数据库应用与进程号:db2 list applications show detail 杀掉进程: db2 force application (id) 查看DB2数据库配置:...
    • 查看DB2数据库:db2 list db directory
    • 查看DB2数据库应用:db2 list applications
    • 查看DB2数据库应用与进程号:db2 list applications show detail
    • 杀掉进程: db2 force application (id)
    • 查看DB2数据库配置:db2 get db cfg for DB_NAME
    • 查看DB2归档日志路径:db2 get db cfg for DB_NAME|grep "LOGARCHMETH1"
    • 查看首活动日志:db2 get db cfg for DB_NAME|grep -i "First active log file"
    • 清理日志:db2 prune logfile prior to S0009392.LOG ##其中S0009392.LOG是首活动日志,此命令可以将当前首活动日志文件之前的归档日志文件全部删除
    • 手工归档产生日志命令:db2 archive log for db DB_NAME
    • 创建数据库:db2 create db DB_NAME
    • 删除数据库:db2 drop database DB_NAME(如果不能删除,尝试断开激活的连接或重启db2)
    • 断开数据库连接:db2 connect reset 或者 db2 terminate
    • 连接数据库:db2 connect to DB_NAME 或 db2 connect to DB_NAME user USER_NAME using PASSWORD
    • 列出系统表:db2 list tables for system
    • 查询列出所有表:db2 list tables for all
    • 查看特定用户表:db2 list tables for schema user
    • 查看表结构:db2 describe table TB_NAME或者describe select * from schema.TB_NAME
    • 生成所有对象的DDL:db2look -d DB_NAME -a -e -m -l -f -o bak.sql
    • 复制一张表:db2 create table TB1 like TB2
    • 查询表:db2 "select * from table tablename where ..."
    • 查看正在执行的sql:db2 list application show detail |grep -i exe
    • 看数据库表空间:db2pd -db DB_NAME -tablespace
    • 查看死锁:db2 get snapshot for locks on DB_NAME 或者db2 "select agent_id,tabname,lock_mode from table(snap_get_lock('DB_NAME')) as ll"
    • 查看错误代码信息:db2 ? 08003(SQLSTATE值) 可以获取sql错误含义
    • 查看当前DB2的版本:db2 "select * from sysibm.sysversions"
    • 查看DB2的TABLESPACE的状况:db2 "select * from sysibm.SYSTABLESPACES"
    • 启动DB2数据库服务:db2start
    • 激活数据库实例:db2 activate database DB_NAME
    • 查看激活状态的数据库:db2 list active databases
    • 查看失效数据库实例:db2 deactivate database DB_NAME
    • 关闭DB2数据库服务:db2stop
    • 查看DB2消耗资源多的SQL:db2top -d DB_NAME 其中db2top是连在一起的,查看消耗资源 按照提示按 l ,出现Application Handle,记录下资源消耗大的Application Handle(stat) 按 q 退出
    • 测试SQL的执行性能:db2batch -d DB_NAME -f select_sql -r benchmark.txt -o p3其中select_sql 是要测试的语句
    • 或者用DBvisualizer工具直接远程连接DB2数据库,通过SQL获取一些信息
    • 查看INDEX:select * from sysibm.sysindexes where TB_NAME=’XXXX’; 或者 describe indexes for table TB_NAME show detail;
    • 查看表字段信息:select * from sysibm.syscolumns where TB_NAME=’XXXX’
    • 快速清除一个大表:alter table TB_NAME activate not logged initally with empty table; 或者import from null_file of del replace into TB_NAME或者直接 truncate table TB_NAME;
    • 查询字符串中包含‘%’或‘_’ ,要使用转义字符,例如SELECT * FROM TEST_INFO WHERE NAME like '%88!%%' escape '!'; 语句后面的escape '!'是定义一个转义字符, 紧跟着转义字符’!'后的%不再是统配符而是百分号。
    • 重命名数据库名: Rename old_tablename to new_tablename;
    • 创建索引:CREATE INDEX index_name ON tb_name(DT_DAY_ID, ...);
    • 对已删除表的恢复:

    1.首先数据库要可以前滚恢复(数据库配置参数logretain或userexit打开);
    2.对要实施Drop Table Recovery的表空间(限regular tablespace),执行:alter tablespace 表空间名 dropped table recovery on;
    3.用 list history dropped table all for DB_NAME 得到删除表的tableid和表结构的生成语句DDL,记录tableid和DDL。之后用drop命令删除的表中的数据可以在前滚恢复时导出。

    • 查看表空间使用情况:
    SELECT A.SNAPSHOT_TIMESTAMP,
    A.TBSP_NAME,
    B.TBSP_TYPE,
    A.TBSP_STATE,
    1.00 * A.TBSP_USABLE_PAGES * B.TBSP_PAGE_SIZE / 1024 / 1024 / 1024  AS TOTAL,
    1.00 * A.TBSP_USED_PAGES * B.TBSP_PAGE_SIZE / 1024 / 1024 / 1024  AS USED,
    1.00 * (A.TBSP_USABLE_PAGES - TBSP_USED_PAGES) * B.TBSP_PAGE_SIZE / 1024 / 1024 / 1024  AS FREE
    FROM SYSIBMADM.SNAPTBSP_PART A
    INNER JOIN SYSIBMADM.SNAPTBSP B
    ON A.TBSP_ID = B.TBSP_ID;
    

     

    展开全文
  • DB2数据库创建

    千次阅读 2019-02-01 23:35:56
    创建DB2数据库 DB2数据库概述 数据库、表空间、表的关系 •数据库由实例进行创建和管理 •数据库包含一到多个表空间 •表存储在表空间中 表空间、容器、区与数据页 •数据库的最小存储单位是数据页(datapage) •区...

    创建DB2数据库

    DB2数据库概述

    数据库、表空间、表的关系

    •数据库由实例进行创建和管理

    •数据库包含一到多个表空间

    •表存储在表空间中
    在这里插入图片描述

    表空间、容器、区与数据页

    •数据库的最小存储单位是数据页(datapage)

    (extent)由整数倍的数据页组成

    •表空间容器(Container)是由多个区组成的

    表空间(Tablespace)由一到多个容器组成
    在这里插入图片描述

    容器与表空间

    •表、索引等逻辑对象放在表空间中

    •容器是位于底层的物理存储

    •表空间是数据库物理存储与逻辑存储的统一

    •容器可以是目录、文件或者设备
    在这里插入图片描述

    表空间存储的类型

    系统管理的空间(System-Managed Space,SMS):

    ​ — 表空间容器使用操作系统的目录

    ​ —操作系统的文件系统管理表空间的存储

    数据库管理的空间(Database-Managed Space,DMS):

    ​ —表空间容器可使用文件或者裸设备

    ​ —数据库管理表空间的存储

    DMS的自动存储(Automatic Storage With DMS):

    ​ —不是单独的表空间类型

    ​ —数据库使用预定义的容器管理表空间的存储

    •三种存储的表空间可以共存于同一个数据库

    创建数据库

    语法:
    在这里插入图片描述

    数据库的名称和分区

    在这里插入图片描述

    database-name 指定数据库的名称

    AT DBPARTIONNUM用于指定在哪个数据库的分区恢复数据库

    •最简单的建库命令: create database database_name

    数据库和自动存储的位置

    在这里插入图片描述

    在这里插入图片描述

    别名、代码页和整理次序

    在这里插入图片描述

    ALIAS db-alias为数据库指定别名

    CODESET(字符集)和TERRITORY(地域)用于指定代码页

    COLLATE指定数据库的整理次序

    数据页与默认区的大小

    在这里插入图片描述

    PAGESIZE指定数据库的表空间和缓冲池所使用的默认数据页大小

    DFT_EXTENT_SZ指定数据库的表空间默认使用的区的大小

    默认的表空间

    在这里插入图片描述

    •SYSCATSPACE:用CATALOG TABLESPACE指定,存储DB2系统编目,即“数据字典”

    •TEMPSPACE1:用TEMPORARY TABLESPACE指定,是DB2放置分组、排序、连接和重组等操作中间结果集的临时存储区域

    •USERSPACE1:用USER TABLESPACE指定,默认情况下存储所有用户对象的表空间

    数据库目录

    •数据库目录用于存储数据库的默认信息:如表空间、表、容器等信息

    •创建位置取决于创建数据库时指定的数据库路径

    分区全局目录结构:db_path/instance_name/NODE0000/SQL00001

    ​ —db_path:创建数据库时指定的路径

    ​ —instance_name:与实例名相同的子目录

    ​ —NODE0000:用于区分多分区数据库的逻辑分区

    ​ —SQL00001:包含第一个数据库以及随后所创建数据库相关联的对象

    特定成员目录:MEMBER0000

    分区全局目录

    •表空间信息文件

    ​ —SQLSPCS.1 和 SQLSPCS.2

    •存储器组控制文件

    ​ — SQLSGF.1 和 SQLSGF.2

    •全局配置文件

    ​ —SQLDBCONF

    •历史记录文件

    ​ —DB2RHIST.ASC 和DB2RHIST.BAK

    •与日志记录相关的文件

    ​ —SQLOGCTL.GLFH.1 和 SQLOGCTL.GLFH.2

    在这里插入图片描述

    特定成员目录

    •缓冲池信息文件

    ​ —SQLBP.1 和 SQLBP.2

    •本地事件监视器文件

    •与日志记录相关的文件

    ​ —SQLOGCTL.LFH.1

    ​ —SQLOGCTL.LFH.2

    ​ —SQLOGMIR.LFH

    •本地配置文件

    ​ —SQLDBCONF

    •锁定文件

    ​ —SQLINSLK 和 SQLTMPLK
    在这里插入图片描述

    数据库目录和文件

    当创建一个数据库时,关于该数据库的信息(包括缺省信息)会存储在目录层次结构中。

    系统已为您创建分层目录结构。可通过对 CREATE DATABASE 命令指定目录路径或驱动器来指定该结构的位置;如果未指定位置,那么会使用缺省位置。

    在您在 CREATE DATABASE 命令中您指定为数据库路径的目录中,会创建使用该实例名称的子目录。

    在实例名子目录内,会创建分区全局目录。分区全局目录包含与新数据库相关联的全局信息。分区全局目录名为NODExxxx/SQLyyyyy,其中 xxxx 是数据分区号,yyyyy 是数据库标记(编号大于等于 1)。

    分区全局目录下,会创建特定于成员的目录。特定于成员的目录包含本地数据库信息。特定于成员的目录名为 MEMBERxxxx,其中 xxxx 是成员号。在 DB2® pureScale® 环境中,每个成员都有一个名为 MEMBER0000、MEMBER0001 等特定于成员的目录。

    在分区数据库环境中,成员编号与其对应分区号之间存在一对一映射,因此,每个成员和分区对应一个 NODExxxx 目录。特定于成员的目录始终名为 MEMBERxxxx,并且它们始终驻留在分区全局目录下。

    企业服务器版环境在单个成员上运行,并且有一个特定于成员的目录,名为 MEMBER0000。

    分区全局目录

    分区全局目录具有以下路径:your_instance/NODExxxx/SQLxxxxx。

    分区全局目录包含以下文件:全局死锁写至文件事件监视器文件,它指定相对路径或根本不指定任何路径。

    表空间信息文件:SQLSPCS.1 和 SQLSPCS.2 文件都包含表空间信息。这两个文件互为副本以实现备份。

    存储器组控制文件SQLSGF.1 和 SQLSGF.2 包含与数据库的自动存储器功能相关联的存储器组信息。这两个文件互为副本,旨在进行维护和备份。这些文件是在您使用 CREATE DATABASE 命令创建数据库或将非自动存储器数据库升级至 DB2 V10.1 或更高版本时创建的。

    临时表空间容器文件新容器的缺省目录是 instance/NODExxxx/。这些文件由每个成员在本地管理。系统会使这些表空间文件名对每个成员唯一,方法是将成员号插入到文件名中,例如:

    /storage_path/SAMPLEDB/T0000011/C0000000.TMP/SQL00002.MEMBER0001.TDA

    全局配置文件。全局配置文件 SQLDBCONF 包含数据库配置参数,它们引用在数据库中必须保持一致的单个共享资源。切勿编辑此文件。要更改配置参数,请使用 UPDATE DATABASE CONFIGURATIONRESET DATABASE CONFIGURATION 命令。

    历史记录文件。DB2RHIST.ASC 历史记录文件及其备份 DB2RHIST.BAK 中包含关于备份、复原、表装入、表重组、表空间更改和其他数据库更改的历史记录信息

    DB2TSCHG.HIS 文件包含日志文件级别的表空间更改的历史记录。对于每个日志文件,DB2TSCHG.HIS 中包含有助于确定日志文件影响哪些表空间的信息。表空间恢复使用此文件中的信息来确定在进行表空间恢复期间要处理哪些日志文件。可在文本编辑器中检查历史记录文件的内容。

    与日志记录相关的文件。全局日志控制文件 SQLOGCTL.GLFH.1 和 SQLOGCTL.GLFH.2 包含数据库级别的恢复信息,例如,与数据库脱机时添加新成员及维护成员间的公共日志链相关的信息。日志文件本身存储在分区全局目录内的 LOGSTREAMxxxx 目录(每个成员对应一个目录)中。

    锁定文件。实例数据库锁定文件 SQLINSLK 和 SQLTMPLK 有助于确保数据库仅被数据库管理器的一个实例使用。

    自动存储器容器

    特定于成员的目录

    特定于成员的目录具有以下路径:/NODExxxx/SQLxxxx/MEMBERxxxx

    此目录包含与创建的第一个数据库相关联的对象,后续数据库被给予更高的编号 SQL00002,以此类推。这些子目录可以区分在CREATE DATABASE 命令中指定的目录下的实例中创建的数据库。

    数据库目录包含以下文件:缓冲池信息文件。SQLBP.1 和 SQLBP.2 文件都包含缓冲池信息。这两个文件互为副本以实现备份。

    本地事件监视器文件。

    与日志记录相关的文件。日志控制文件 SQLOGCTL.LFH.1 及其镜像副本 SQLOGCTL.LFH.2 和 SQLOGMIR.LFH 中包含有关活动日志的信息。在 DB2 pureScale 环境中,每个成员都有自己的日志流和本地 LFH 文件集,它们存储在每个特定于成员的目录中。

    提示: 将日志子目录映射至您未用于存储数据的磁盘。通过这样做,您可将磁盘问题限制为数据或日志方面,从而避免数据和日志同时出现磁盘问题。将日志子目录映射至未用于存储数据的磁盘可大幅提高性能,因为日志文件和数据库容器不会为同一磁盘头的移动而竞争。要更改日志子目录的位置,请使用 newlogpath 数据库配置参数。

    本地配置文件。本地 SQLDBCONF 文件包含数据库配置信息。切勿编辑此文件。要更改配置参数,请使用 UPDATE DATABASE CONFIGURATIONRESET DATABASE CONFIGURATION 命令。

    在创建数据库的同时,还创建了详细死锁事件监视器。在企业服务器版环境和分区数据库环境中,详细死锁事件监视器文件存储在目录节点的数据库目录中。在 DB2 pureScale 环境中,详细死锁事件监视器文件存储在分区全局目录中。当事件监视器达到它要输出的最大文件数时,它将取消激活,并且将把一条消息写入通知日志中。这样做可避免事件监视器使用太多磁盘空间。将不再需要的输出文件除去即可在下次激活数据库时再次激活事件监视器。

    如果是将现有的 DB2 V9.5 或 V9.7 数据库升级到 V10.5,那么数据库日志目录已更改。如果使用用户定义的日志目录(例如 /usr/logpath),那么在升级之后日志文件的位置是 /usr/logpath/NODE0000/LOGSTREAM0000。如果使用缺省数据库目录(例如 /home/db2user/db2inst/NODE0000/SQL00001/SQLOGDIR),那么在升级之后日志文件的位置是/home/db2user/db2inst/NODE0000/SQL00001/LOGSTREAM0000。在升级之后,旧的日志目录仅包含已重命名的日志文件。可在db2diag.log 文件中查看有关新日志目录的信息。

    非自动存储器数据库中的 SMS 数据库目录的其他信息

    在非自动存储器数据库中,SQLT* 子目录包含缺省系统管理的空间 (SMS) 表空间:SQLT0000.0 子目录中包含带有系统目录表的目录表空间。

    SQLT0001.0 子目录中包含缺省临时表空间。

    SQLT0002.0 子目录中包含缺省用户数据表空间。

    每个子目录或容器中都会创建一个名为 SQLTAG.NAM 的文件。这个文件可以标记正在使用中的子目录,因此在以后创建其他表空间时,不会尝试使用这些子目录。

    此外,名为 SQL*.DAT 的文件中还存储有关子目录或容器包含的每个表的信息。星号 (*) 将被唯一的一组数字取代,用来识别每个表。对于每个 SQL*.DAT 文件,可能有一个或多个下列文件,这取决于表类型、表的重组状态或者表是否存在索引、LOB 或 LONG 字段:SQL*.BKM(包含块分配信息,如果它是 MDC 或 ITC 表)

    SQL*.LF(包含 LONG VARCHAR 或 LONG VARGRAPHIC 数据)

    SQL*.LB(包含 BLOB、CLOB 或 DBCLOB 数据)

    SQL.XDA(包含 XML 数据)*

    SQL*.LBA(包含有关 SQL*.LB 文件的分配和可用空间信息)

    SQL*.INX(包含索引表数据)

    SQL*.IN1(包含索引表数据)

    SQL*.DTR(包含用于重组 SQL*.DAT 文件的临时数据)

    SQL*.LFR(包含用于重组 SQL*.LF 文件的临时数据)

    SQL*.RLB(包含用于重组 SQL*.LB 文件的临时数据)

    SQL*.RBA(包含用于重组 SQL*.LBA 文件的临时数据)

    更多相关概念与参考请登录官网查询(或者点击下面链接直接跳转):

    数据库配置文件

    节点目录
    数据库管理器在编目第一个数据库分区时会创建节点目录

    本地数据库目录
    在每条定义了数据库的路径中,都存在本地数据库目录文件。对于可从该位置访问的每个数据库,此目录中都包含一个相应的条目。

    系统数据库目录
    对于数据库管理器的每个实例,都存在一个系统数据库目录文件,该文件对于针对此实例编目的每个数据库都包含一个条目。

    创建节点配置文件
    如果数据库要在分区数据库环境中运行,那么必须创建一个名为 db2nodes.cfg 的节点配置文件。

    更改节点和数据库配置文件
    要更新数据库配置文件,请运行带有适当选项的 AUTOCONFIGURE 命令。

    数据库恢复日志
    数据库恢复日志保存对一个数据库所做的所有更改(包括新表的添加或对现有表的更新)的记录。
    实例和数据库目录的文件许可权要求

    实例

    恢复历史记录文件

    CREATE DATABASE 命令

    已安装的 DB2 数据库产品的目录结构 ( Windows )

    实践:

    #—数据库路径:/home/db2instl/mydb_path
    #—自动存储路径: /home/db2instl/mydb_path
    db2 "create database mydb1 on /home/db2instl/mydb_path"
     
    #—数据库路径: /home/db2instl/mydb_path
    #—未使用自动存储特性 
    db2 "create database mydb2 automatic storage no on /home/db2instl/mydb_path"
         
    
    #—数据库路径: /home/db2instl/mydb_path/dbpath3
    #—自动存储路径: /home/db2instl/mydb_path/auto3
    db2 "create db mydb3 on /home/db2instl/mydb_path/auto3 dbpath on /home/db2instl/mydb_path/dbpath3"
          
    
    
    #—数据库路径: /home/db2instl/mydb_path/db_path4
    #—自动存储路径: /home/db2instl/mydb_path/auto41, /home/db2instl/mydb_path/auto42
    db2 "create db mydb4 automatic storage yes on /home/db2instl/mydb_path/auto41,/home/db2instl/mydb_path/auto42 dbpath on /home/db2instl/mydb_path/db_path4"
           
    
    #查看是否创建成功:
    db2 list db directory
    
    展开全文
  • 1、其实安装DB2数据库还是比较简单的,一般都是直接下一步下一步就可以了,只是有些地方需要注意。我安装的DB2数据库版本如下图所示: 2、拿到数据库的版本之后,解压缩,如下图的目录结构: 然后点击setup....
  • db2 数据库分区

    2016-01-13 15:30:04
    db2 数据库分区
  • springboot整合db2数据库,应该添加哪些maven依赖?望各位大佬不吝赐教!
  • 由于工作需要,许要搭建DataStage开发环境,服务器和客户端安装完毕之后,发现服务器上不能运行DB2的命令,DB2是包含在DataStage安装包中,且本人配置过了,鉴于之前没接触过DB2数据库,一时也不知道怎么办,经过...
  • db2数据库迁移到mysql5.7

    千次阅读 2020-07-17 14:55:40
    最近由于项目要求,需要将db2数据库迁移到mysql数据库。具体步骤如下: 1、使用navicat新建一个数据库作为db2数据库中的数据表结构及数据的接收者 2、右键表点击“导入向导” 3、选择ODBC,点击下一步 4、...
  • DB2数据库实用小结

    2018-08-08 10:26:48
    DB2数据库实用小结 1、创建DB2数据库实例(在db2 =&amp;amp;amp;gt;下执行) db2 =&amp;amp;amp;gt; create tablespace resource1 managed by database using (file ‘/home/db2inst1/db2inst1/NODE...
  • 情景:主库:DB2数据库在H盘 备库:DB2数据库在H盘 故障: 备库DB2数据库ABC所在H盘丢失。 需求: 将备库DB2数据库ABC的信息去掉,从主库导出数据,恢复到备库。 尝试: 1.从主库中导出数据(主库数据库名称...
  • DB2数据库的创建流程

    2019-05-08 17:01:41
    DB2数据库的创建流程1.设置db2兼容性(Oracle)2.创建DB2数据库3.连接db2,对db2进行命令操作4.create EEBP5.create TABLESPACE6.create SCHEMA7.GRANT ROLE TO USER总结 1.设置db2兼容性(Oracle) db2set DB2_...
  • db2数据库常用总结

    2018-11-12 22:55:06
    db2数据库常用命令总结 ---安装数据库 tar zxvf db2_v101_linuxx64_expc.tar.gz cd expc/ ./db2_install 选择默认安装路径 : yes ---配置数据库 创建3个用户组 groupadd -g 901 db2iadm1 groupadd -g 902 ...
  • DB2数据库下载(v9.7/v10.5/v11.1)

    万次阅读 2019-04-17 13:15:36
    DB2是IBM一种分布式数据库解决方案。说简单点:DB2就是IBM开发的一...目前,DB2数据库有如下一些版本:(比如DB2 for Unix,DB2 for Windows,DB2 for AS/400,DB2 for OS/390等)。 以下链接为DB2 数据库的各个版本下...
  • DB2数据库安装(db2 9.7 ,centos7)

    千次阅读 2019-03-11 20:50:55
    DB2数据库安装(db2 9.7 ,centos7) 一.软件配置 Db2数据库 db2exc_970_LNX_x86_64.tar.gz 环境 centos7 DB2客户端 Aqua Data Studio 19.0 - 64bit 二.Db2安装 1.解压 tar -zxvf db2exc_970_LNX_x86_64.tar.gz 2....
  • cmd远程db2数据库

    2019-05-09 20:54:54
    可能自己需要先安装db2数据库,不然输入db2cmd命令估计不能识别 1:打开cmd输入db2cmd,输入之后会弹出db2 CLP窗口 2:在新窗口输入db2 3:输入 catalog tcpip node nodedemo remoteipserver port remote_...
  • 创建 DB2 数据库

    千次阅读 2010-01-03 17:10:00
    创建 DB2 数据库可以使用 Tivoli Privacy Manager 数据库创建程序或使用数据库产品界面可以创建 Tivoli Privacy Manager 数据库、表和配置数据库。使用 DB2 数据库创建程序手工创建数据库和表使用 DB2 数据库创建...
  • linux下db2数据库命令

    2019-10-08 04:09:46
    目录: ... 4.db2数据库数据创建与数据迁移 1.db2连接数据库 su - db2inst1 db2 connect to 数据库名 user 用户名 using 密码 2.db2信息查询命令  db2 list tables #列出所有表名 ...
  • db2数据库用户赋权

    千次阅读 2017-09-07 11:17:17
     DB2数据库权限分为实例级权限(SYSADM、SYSCTRL、SYSMAINT、SYSMON)和DB2数据库级权限(DBAMD、LOAD)。DB2中用户所拥有的权限主要考虑三个方面:实例级、数据库级、数据库操作级别,查看命令是db2 get ...
  • DB2数据库新增表和插入数据

    千次阅读 2020-12-09 14:23:13
    dbeaver工具连接DB2数据库 drivername:com.ibm.db2.jcc.DB2Driver #在dbeaver中对DB2数据库创建数据库(Schema): #在dbeaver中对DB2数据库新增表 create table USERS( id int NOT NULL primary key, ...
  • 情景:主库:DB2数据库在H盘 备库:DB2数据库在H盘 故障: 备库DB2数据库ABC所在H盘丢失。 需求: 将备库DB2数据库ABC的信息去掉,从主库导出数据,恢复到备库。 尝试: 1.从主库中导出数据(主库数据库名称也为ABC...
  • mysql数据库迁移到db2数据库

    千次阅读 2016-09-23 09:34:35
    最近客户要求把mysql数据库改为用db2数据库,真是醉了,市面上各类数据库,语法不一样,函数不一样,工具也不一样,增加了程序员的负担。我用过Oracle、mysql、db2数据库,感觉db2是最难用的,可能用习惯了Oracle,...
  • DB2数据库学习随笔

    万次阅读 2018-07-23 18:36:07
    一、DB2数据库安装教程 DB2安装教程:https://jingyan.baidu.com/article/e75057f2f59ef9ebc91a8905.html 二、DB2常用命令 1、 打开命令行窗口   #db2cmd  2、 打开控制中心   # db2cmd db2cc  3、 打开...
  • DB2 数据库备份

    千次阅读 2012-03-21 14:45:10
    四、 DB2 数据库备份实验(附完整命令脚本清单) 4.1 DB2 数据库实验准备工作 (1)、Step1:创建测试数据库 TestDB 脚本清单 CREATE DATABASE TestDB ON 'D:' USING CODESET GBK TERRITORY CN WITH ...
  • Windows10 安装DB2数据库

    万次阅读 2018-10-01 15:29:47
    最近由于学习的需要,需在Windows10上安装DB2数据库,在网上百度了好多内容,一直摸不着头脑,最后终于找到一篇博客,亲测可行。 为了节省内存,没有使用Aqua Data Studio链接数据库,而是使用Idea链接数据库。 ...
  • DB2数据库性能优化介绍

    千次阅读 2013-08-27 00:19:15
    DB2数据库性能优化介绍作者:chszs,转载需注明。博客主页:http://blog.csdn.net/chszs前段时间,我从CSDN得到了这本书《DB2数据库性能调整和优化(第2版)》,这是一本介绍DB2数据库性能调优的书籍,此书覆盖了DB2...
  • 如何离线备份db2数据库

    千次阅读 2018-09-07 10:41:15
    1.连接db2数据库 db2 connect to 数据库名称 user 数据库用户名 using 数据库密码 2.关闭数据库连接 db2 force applications all 3.备份数据库 db2 backup db 数据库名称 to 备份地址 ...
  • DB2数据库中用户和Schema的概念

    千次阅读 2019-08-23 19:02:39
    1. DB2数据库中用户的概念 2. DB2中schema的概念 3. 用户与Schema的关系 1. DB2数据库中用户的概念 Oracle和MySQL数据库的用户都是数据库内部的用户,由数据库来管理。 但DB2不一样,DB2没有数据库用户的概念,它...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 126,966
精华内容 50,786
关键字:

db2数据库