DB2基础学习

创建及删除实例

  DB2 实例 是一种逻辑上下文,DB2 命令及函数在其中执行。您可将实例视为管理对数据库文件的访问的服务或守护进程。在一台服务器上可定义多个实例。各实例独立于其他实例,也就是说所有实例均可分别管理、操纵及调优。

  要在 Windows 中创建实例,只需执行以下命令:

  db2icrt instance_name

  在 Linux 和 UNIX 中,您必须另外提供一个用户 ID,用以创建 fenced 用户定义的函数和存储过程进程,形式如下:

  db2icrt -u fenced_user_ID

  instance_name

  默认情况下,【用户定义的函数和存储过程】是在 fenced 模式下创建的,因而这些进程运行在与 DB2 引擎不同的地址空间中,也称为系统控制器进程 db2sysc。这为数据库管理器提供了保护,使之免于被用户定义的例程意外地或恶意地破坏。

  要删除一个实例,首先断开所有数据库连接,然后执行以下命令停止实例:

  db2idrop -f instance_name

  列举、迁移和更新 DB2 实例

  要列举服务器上存在的 DB2 实例,可使用以下命令:

  db2ilist

  若您决定转而使用比服务器上安装的 DB2 软件更新的版本,或者需要将 32 位实例迁移为 64 位实例,就需要进行实例迁移。在 Windows 上,实例迁移是在必要的迁移过程中隐式完成的。在 Linux 和 UNIX 上,可使用以下命令显式地迁移已有实例:

  db2imigr instance_name

  在为 DB2 安装修补程序包或补丁时,一旦在服务器上安装好了修补程序包,您就需要更新已有实例【因为实例就是运行环境啊】,以链接到新的修补程序文件。使用以下命令更新实例:

  db2iupdt instance_name

 

 

和许多其它关系数据库管理系统(RDBMS)一样,DB2 使用不同的机制来管理、监视和控制 DB2 系统的行为。这些机制包括

设置 DB2 环境

  恰当地设置 DB2 环境非常重要,这是因为它控制着 DB2 操作和活动的方式。DB2 环境由以下几部分构成:

  • DB2 配置文件注册库
  • 操作系统环境变量
  • DB2 数据库管理器配置参数
  • DB2 数据库配置参数

环境变量

环境变量是在操作系统级别上定义的变量。

最常使用的 DB2 环境变量是“DB2INSTANCE”变量。该环境变量允许您指定当前活动实例,

所有命令都将应用于该实例。对于本例而言,如果将 DB2INSTANCE 设置成“MyInst”,那么发出命令“ create database mydb ”会创建出与实例“MyInst”相关的数据库。

DB2 概要注册表

在 Windows 平台上使用 DB2 时,单词“注册表(Registry)”的使用往往会造成混淆。DB2 概要注册表(Profile Registry)变量与 Windows 注册表变量没有任何关系。过去,对某些环境变量进行更改时,会要求用户重新引导机器。如果所有 DB2 变量都已被定义成环境变量,那么对变量值进行更改将会很麻烦。因此,当时决定将大多数 DB2 变量组成一个专门的 DB2 注册表,在其中进行更改无需重新引导机器。

DB2 概要注册表分成四类;但是下面这两个是最常用的:

  • DB2 全局级概要注册表(Global-Level Profile Registry)
  • DB2 实例级概要注册表(Instance-Level Profile Registry)

两者的主要区别(您从它们的名称就可以看出)是变量适用的级别。全局级概要注册表变量的值适用于所有实例。因此,可以从图中看到,该注册表画在了两个实例框的外面。实例级概要注册表变量的值适用于特定的实例。

 

配置参数

配置参数是在两个不同的级别(实例级和数据库级)上定义的。每个级别上的变量都是不同的(不象注册表变量那样可以在不同级别上定义相同的变量)。

在实例级上,变量被存储在数据库管理器配置文件(dbm cfg);对这些变量所作的更改会影响与该实例相关的“所有”数据库,这就是图中显示了 dbm cfg 框(每个实例定义了一个),并且该框都显示在数据库框外面的原因。以下是一些与配置参数相关的命令:

  • 要从 CLP 查看 dbm cfg 的内容,请发出下面这个命令:
  • db2 get db cfg for <dbname>

  • 要更新特定变量的值,请发出下面这个命令:
    db2 update dbm cfg using <parameter> <value>

    例如:

    db2 update dbm cfg using INTRA_PARALLEL YES
     

 

在数据库级别上,变量被存储在数据库配置文件(db cfg)中;对这些变量所作的更改会影响特定的数据库。

 

在 DB2 中,目录是存储有关数据库及其连接信息的二进制文件。DB2 中有四个如下所描述的主目录。还包括了相应的建立连接的命令;

系统数据库目录(或系统 db 目录)

系统数据库目录是主要的“目录(table of contents)”,它包含了有关可以从您的 DB2 系统进行连接的【所有数据库的信息】。系统 db 目录是在【实例级】上进行存储的;因此,如果您打算删除一个实例,那么您应当考虑备份其内容。要列出系统 db 目录的内容,请从 CLP 发出下面这个命令:

db2 list db directory

该命令输出中的任何项都包含单词“indirect”,这意味着:该项适用于本地数据库(即,驻留在您当前正在使用的机器上的数据库)。该项还会指向由“Database drive”项(在 Windows 中)或“Local database directory”项(在 UNIX 中)所指示的本地数据库目录。

任何包含单词“Remote”的项都意味着:该项适用于远程数据库(即,驻留在其它机器上而非您当前正在使用的机器上的数据库)。该项还会指向由“Node name”项所指示的节点目录项。

要将信息输入系统 db 目录,您需要使用

catalog

命令:

db2 catalog db <db_name> as <alias> at node <nodename>

例如: db2 catalog db mydb as yourdb at node mynode

节点名是指向节点目录中某一项的指针。在发出这条命令之前该项必须已经存在。

通常只有在将信息添加到远程数据库的系统 db 目录时才使用 catalog 命令。对于本地数据库来说,在用

create database

命令创建数据库之后就自动创建 Catalog 项。

本地数据库目录(或本地 db 目录)

本地数据库目录包含了有关本地数据库(即,驻留在您目前正在使用的机器上的数据库)的信息。正如您可以从 图 1中看到的那样,本地数据库目录驻留在数据库结构内部。注意从该图还可以看到没有专门的命令用于将信息输入到该目录中。当您用 create database 命令创建数据库时,在该目录中会添加一项。

要列出本地数据库目录的内容,请发出以下命令:

db2 list db directory on <path>

其中,可以从系统 db 目录相应项中的“Database drive”项(Windows 中)或“Local database directory”项(UNIX 中)获取 <path>。

节点目录

节点目录用于存储远程数据库的所有连通性信息。V8 仅支持 TCPIP 协议;因此,该目录中的大多数项将显示 TCPIP 信息,比如机器(其中包含了您想连接的数据库)的主机名或 IP 地址,还有相关的 DB2 实例的端口号。下面是一些与节点目录相关的命令:

  • 要列出节点目录的内容,请从 CLP 发出下面这个命令:

    db2 list node directory

  • 要将信息输入节点目录,请从 CLP 发出

    catalog

    命令:

    db2 catalog tcpip node <node_name> remote <hostname or IP_address> server <port_name or port_number>

    例如:

    db2 catalog tcpip node mynode remote 9.26.138.35 server 60000

要想得到您想要连接的远程实例的端口号,可以查看该实例的 dbm cfg 中的 svcename 参数来实现。该值通常对应于 TCP/IP

services

文件中的某一项。

DCS 目录

DCS 目录包含了通常驻留在 zSeries™(S/390®)或 iSeries™(AS/400®)机器上的主机数据库的连通性信息。您需要安装 DB2 Connect 软件。下面是一些命令:

  • 要列出 DCS 目录的内容,请从 CLP 发出下面这个命令:

    db2 list dcs directory

  • 要将信息输入 DCS 目录,请从 CLP 发出 catalog 命令:

    db2 catalog dcs db as <location name>

    例如:

    db2 catalog dcs db as db1g

DB2 V8 连通性快捷表以获取本节中所描述的那些命令的摘要。

 

数据库是与实例相关的封闭且独立的单元。由于这个独立性,所以两个或更多的数据库的对象可以有相同的名称。例如, 图 1显示了一个名为“MyTablespace1”的表空间,它位于与实例“DB2”相关的数据库“MYDB1”内部。还有一个同名的表空间,它位于也与实例“DB2”相关的数据库“MYDB2”内部。

由于数据库是封闭单元,所以您不能执行涉及了两个不同数据库表的查询(除非您使用 Information Integrator(II)/ Relational Connect,这已经超出本文的讨论范畴)。例如,涉及数据库“MYDB1”中的“Table1”和数据库“MYDB2”中的“TableZ”的查询是不允许的。

数据库是用命令

create database

创建的。请注意,这被认为是一个命令,而非 SQL 语句。

当您创建数据库、表空间、日志和缓冲池时,会自动地创建配置文件,这就是完成该命令需要花费几秒钟的原因。图 1用与本节标题颜色一样的桃褐色显示了用 create tablespace 命令显式创建的其它表空间。请参考“DB2 V8 SQL 参考大全(DB2 V8 SQL Reference)”以获取更多详细信息。

 

表空间是用作逻辑表和物理容器之间中间层的逻辑对象。创建表空间时,您可以将它与特定的缓冲池(数据库高速缓存)以及特定的容器进行关联。容器是物理存储数据的地方,可以分成文件、目录和原始设备等几类。

Catalog(SYSCATSPACE)、系统临时空间(TEMPSPACE1)和用户空间(USERSPACE1)都是表空间,并且都会在创建数据库时自动创建。Catalog 和系统临时空间都可以看作是系统结构,因为它们是数据库的正常操作所必需的。Catalog 包含了元数据(有关数据的数据)。一些其它 RDBMS 把这个结构称作“数据字典”。不要把这一节的术语“Catalog”和早先提到的 catalog命令混淆起来;它们毫无关系。

系统临时表空间是数据库管理器执行操作(比如连接和排序)的工作区。至少必须有一个系统临时表空间

缺省情况下会创建 USERSPACE1 表空间,但是可以删除它。它是用来存储用户表的缺省位置。

图 1用与本节标题颜色一样的桃褐色显示了用 create tablespace 命令显式创建的其它表空间。

表是由行和列组成的无序的数据记录集。索引是与表相关的有序指针集,用于性能目的并确保唯一性。视频、音频和扫描文档等可以作为大对象(LOB)存储在数据库中。表、索引和 LOB 驻留在表空间中。

日志是用于恢复目的的文件。日志记录了对数据库进行的每个操作。万一发生故障,在将数据库恢复到某个一致的点方面,日志就显得至关重要了。

缓冲池是一块内存区域,所有索引和数据页(除了 LOB)都必须有序地经过该区域,从而进行处理。它是数据库管理器所使用的主要高速缓存。在数据库性能问题方面,缓冲池是进行调优的最重要的对象。

应用地址:http://www.ibm.com/developerworks/cn/db2/library/techarticles/0301chong/0301chong.html#fig1

 
PART I – 概览.........................................................................................................................11 第 1章 – DB2 Express-C是什么?..........................................................................................13 1.1免费开发、部署和分发… 无限制!...............................................................................13 1.2用户帮助和技术支持.....................................................................................................14 1.3 DB2服务器..................................................................................................................14 1.4 DB2客户端和驱动........................................................................................................14 1.5 应用程序开发的自由性.................................................................................................15 1.6 DB2 版本号与 DB2 版本分类........................................................................................16 1.7升级到其它的 DB2版本................................................................................................16 1.8 DB2 Express-C的维护.................................................................................................16 1.9相关免费软件................................................................................................................17 1.9.1 IBM数据工作室(Data Studio)...........................................................................17 1.9.2 DB2 Net Search Extender .....................................................................................17 1.9.3 Starter Toolkit for DB2 on Rails.............................................................................17 1.9.4 Web 2.0 Starter Toolkit for DB2 ............................................................................17 1.9.5 WebSphere Application Server – Community Edition............................................18 第 2章 – DB2相关特性和产品................................................................................................19 2.1 DB2 Express-C订购中包含的功能...............................................................................22 2.1.1 Fix packs补丁包...................................................................................................22 2.1.2高可用性灾难恢复(HADR) ................................................................................22 2.1.3数据复制(Data Replication)...............................................................................22 2.2 DB2 Express-C所不具备的功能...................................................................................23 2.2.1数据库分区............................................................................................................23 2.2.2连接集中器(Connection Concentrator ).............................................................23 2.2.3 Geodetic Extender ................................................................................................23 2.2.4工作负载管理(Workload Management, WLM) .......................................................24 2.3 DB2相关收费产品........................................................................................................24 2.3.1 DB2连接(DB2 Connect)...................................................................................24 2.3.2 WebSphere Federation Server..............................................................................24 2.3.3 WebSphere Replication Server .............................................................................25 第 3章 – 安装 DB2..................................................................................................................27 3.1安装前提条件................................................................................................................27 3.2操作系统中的安装权限.................................................................................................27 3.3安装向导.......................................................................................................................27 3.4自动安装.......................................................................................................................31 实验 #1 安装DB2 Express-C,创建 SAMPLE数据库........................................................32 第 4章 – DB2的应用环境.......................................................................................................35 实验 #2 - 创建一个新的数据库............................................................................................43 4.1 DB2配置......................................................................................................................44 4.1.1 环境变量................................................................................................................44 4.1.2 数据库管理器配置文件(dbm cfg) ...........................................................................44 4.1.3 数据库配置文件(db cfg)....................................................................................46 4.1.4 DB2 概要文件注册表.............................................................................................47 4.2 DB2管理服务器...........................................................................................................48 实验 #3 – 实例、数据库和配置管理....................................................................................49 第 5章 – DB2工具..................................................................................................................51 5.1控制中心(Control Center).........................................................................................52 5.2命令编辑器(Command Editor) .................................................................................55 5.3 SQL帮助向导(SQL Assist Wizard ).........................................................................57 5.4 显示SQL按钮..............................................................................................................58 实验 #4 使用脚本填充EXPRESS数据库...........................................................................59 5.5 脚本..............................................................................................................................60 5.5.1 SQL脚本...............................................................................................................60 5.5.2操作系统(shell)脚本..........................................................................................61 实验 #5 为EXPRESS数据库创建一个安装脚本.................................................................62 5.6任务中心(Task Center )...........................................................................................65 5.6.1工具目录(Tools Catalog数据库........................................................................65 5.7 日志(Journal)...........................................................................................................66 5.8运行状况监视器(Health Monitor ).............................................................................67 5.8.1运行状况中心(Health Center )...........................................................................68 PART II – DB2 Express-C 数据库管......................................................................................71 第 6章 – DB2体系结构...........................................................................................................73 6.1 DB2进程模型...............................................................................................................73 6.2 DB2内存模型...............................................................................................................74 6.3 DB2存储模型...............................................................................................................75 6.3.1数据页和扩展数据块..............................................................................................75 6.3.2缓冲池...................................................................................................................76 6.3.3表空间...................................................................................................................77 第 7章 – DB2 客户端的连接....................................................................................................81 7.1 DB2 目录......................................................................................................................81 7.2 配置助手(Configuration Assistant )..........................................................................82 7.2.1服务器端的安装要求..............................................................................................82 7.2.2 Setup required at the client 客户端的安装要求......................................................84 7.2.3建立客户端与服务器端概要文件............................................................................87 实验 #6 使用配置助手........................................................................................................90 第 8章 – 数据库对象...............................................................................................................93 8.1 模式..............................................................................................................................93 8.2表.................................................................................................................................93 8.2.1数据类型................................................................................................................93 8.2.2标识列...................................................................................................................96 8.2.3序列对象................................................................................................................96 8.2.4系统目录表............................................................................................................97 8.2.5已声明临时表.........................................................................................................97 实验 #7 创建一个数据表.....................................................................................................99 8.3视图............................................................................................................................101 8.4索引............................................................................................................................101 8.4.1 Design Advisor ....................................................................................................101 8.5参照完整性.................................................................................................................102 第 9章 – 数据迁移工具..........................................................................................................105 9.1 导出(EXPORT)工具...............................................................................................106 9.2 导入(IMPORT)工具................................................................................................106 9.3 使用 LOAD来导入......................................................................................................107 9.4 db2move 工具...........................................................................................................108 9.5 db2look 工具..............................................................................................................109 实验 #8 导出EXPRESS数据库的DDL............................................................................111 第 10章 – 数据库安全...........................................................................................................115 10.1 认证..........................................................................................................................116 10.2 授权..........................................................................................................................116 10.3 DBADM权限............................................................................................................118 10.4 PUBLIC 组...............................................................................................................119 10.5 GRANT和REVOKE语句 ........................................................................................119 10.6 查看授权和特权........................................................................................................119 10.7 关于组特权...............................................................................................................121 实验 #9 授予和撤销用户的权限........................................................................................122 第 11章 – 备份和恢复...........................................................................................................125 11.1 数据库的日志记录....................................................................................................125 11.2 日志的类型...............................................................................................................126 11.3 日志记录的类型.......................................................................................................126 11.3.1 循环日志记录 ....................................................................................................126 11.3.2 档案日志记录和日志保留...................................................................................127 11.4 从控制中心进行数据库日志记录...............................................................................127 11.5 日志记录的参数........................................................................................................129 11.6 数据库备份...............................................................................................................129 实验 #10 – 安排一个备份计划..........................................................................................131 11.7 数据库恢复...............................................................................................................133 11.7.1 恢复类型............................................................................................................133 11.7.2 数据库恢复........................................................................................................133 11.8 其他关于备份和恢复的操作......................................................................................134 第 12章 – 维护任务...............................................................................................................135 12.1 重组(REORG)、运行统计(RUNSTATS)、重绑定(REBIND).......................135 12.1.1重组(REORG)命令........................................................................................135 12.1.2运行统计(RUNSTATS)命令 ..........................................................................136 12.1.3 绑定/重新绑定.................................................................................................136 12.1.4 在控制中心执行维护工作...................................................................................137 12.2 维护方式...................................................................................................................139 实验#11 – 配置自动维护.................................................................................................141 第 13章 – 并行与锁定...........................................................................................................143 13.1 事务(Transactions)..............................................................................................143 13.2 并行(Concurrency) ..............................................................................................143 13.3无并行控制导致的问题 .............................................................................................144 13.3.1丢失更新(Lost update)..................................................................................145 13.3.2未落实的读(Uncommitted read)....................................................................145 13.3.3不可重复读(Non-repeatable read).................................................................146 13.3.4幻象(Phantom read)......................................................................................146 13.4隔离级别(Isolation Levels)...................................................................................147 13.4.1未落实的读........................................................................................................147 13.4.2游标稳定性........................................................................................................147 13.4.3读稳定性............................................................................................................148 13.4.4可重复读............................................................................................................148 13.4.5隔离级别对比.....................................................................................................148 13.4.6设定隔离级别.....................................................................................................149 13.5锁定升级...................................................................................................................150 13.6锁定监视...................................................................................................................151 13.7锁定等待...................................................................................................................151 13.8死锁的引发与侦测.....................................................................................................152 13.9并行与锁定的最佳实践:..........................................................................................153 PART III – DB2 Express-C应用程序开发............................................................................155 第 14章 –SQL PL 存储过程..................................................................................................157 14.1 IBM数据工作室(Data Studio)..............................................................................158 14.1.2在Data Studio中创建一个存储过程..................................................................159 14.2 SQL PL 存储过程基础..............................................................................................161 14.2.1存储过程的结构.................................................................................................161 14.2.2 可选的存储过程属性..........................................................................................162 14.2.3参数...................................................................................................................162 14.2.4 SQL PL存储过程中的注释................................................................................163 14.2.5 复合语句............................................................................................................163 14.2.6 变量声明............................................................................................................163 14.2.7 赋值语句............................................................................................................164 14.3 游标..........................................................................................................................164 14.4 流控制......................................................................................................................164 14.5 调用存储过程 ...........................................................................................................165 14.6 错误和情况处理器....................................................................................................166 14.7 动态SQL..................................................................................................................168 第 15章 – 直接插入 SQL 过程语言、触发器、用户定义函数(UDF)..................................169 15.1直接插入SQL PL .....................................................................................................169 15.2 触发器(Trigger)....................................................................................................170 15.2.1 触发器的类型 ....................................................................................................170 实验 #12 从控制中心创建一个触发器...............................................................................174 15.3 用户定义函数 (UDF).................................................................................................177 15.3.1 标量函数(Scalar function).............................................................................177 15.3.2 表函数(Table function)..................................................................................178 实验 #13 使用IBM Data Studio创建用户定义函数(UDF)............................................179 第 16章 – DB2 pureXML......................................................................................................181 16.1 在数据库中使用XML................................................................................................181 16.2 XML数据库..............................................................................................................182 16.2.1 启用 XML的数据库............................................................................................182 16.2.2 原生 XML数据库...............................................................................................182 16.3 DB2中的XML..........................................................................................................183 16.3.1 pureXML 技术优势............................................................................................184 16.3.2 XPath基础........................................................................................................185 16.3.3 XQuery的定义..................................................................................................188 16.3.4 插入 XML文档...................................................................................................189 16.3.5 查询 XML数据...................................................................................................191 16.3.6 使用 SQL/XML执行联合操作............................................................................196 16.3.7 使用 XQuery执行联合操作................................................................................196 16.3.8 更新与删除操作.................................................................................................197 16.3.9 XML 索引.........................................................................................................198 实验 #14 - SQL/XML 和 XQuery.......................................................................................200 第 17章 – 使用 Java、PHP和 Ruby进行数据库应用开发...................................................201 17.1 Java应用程序开发...................................................................................................201 17.1.1 JDBC类型 2驱动程序.......................................................................................201 17.1.2 JDBC类型 4驱动程序.......................................................................................202 17.2 PHP应用程序开发...................................................................................................203 17.2.1 DB2为PHP提供的连接选项.............................................................................203 17.2.2 Zend Core for IBM.............................................................................................204 17.3 Ruby on Rails应用程序开发.....................................................................................206 17.3.1 Startup Toolkit for DB2 on Rails ........................................................................206 附录 A — 排除故障...............................................................................................................207 A.1 查找错误代码的更多信息...........................................................................................207 A.2 SQLCODE与SQLSTATE .........................................................................................208 A.3 DB2 管理通知日志.....................................................................................................208 A.4 db2diag.log................................................................................................................209 A.5 CLI追踪.....................................................................................................................209 A.6 DB2缺陷与补丁.........................................................................................................209 参考资源 ...............................................................................................................................210 网站..................................................................................................................................210 书籍..................................................................................................................................211
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值