DB2安装配置手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
DB2安装配置以及相关技术手册
目录
目录 (2)
1准备 (5)
2安装需求 (6)
3详细安装步骤 (7)
4DB2的配置与建库 (22)
5DB2数据库缓冲池设置 (30)
6DB2数据库表空间建立 (33)
7ORACLE到DB2数据库迁移技术问题 (42)
7.1 Oracle迁移到DB2后,如何对DB2服务器进行配置和管理? (42)
7.1.1 DB2 UDB 体系结构图 (43)
7.1.2 DB2 UDB 内存结构 (43)
7.1.3 DB2 UDB 数据库结构 (43)
7.1.4 DB2 UDB数据库的逻辑机构 (44)
I. DB2的数据库对象 (44)
II. 系统 (45)
III. 实例 (46)
IV. 数据库 (46)
V. 表空间 (47)
VI. 表 (47)
VII. 视图 (48)
VIII. 索引 (48)
IX. 触发器 (48)
7.2 DB2数据库的相关概念 (49)
I. 分区数据库 (49)
II. 节点 (49)
III. 日志 (49)
IV. 权限 (50)
V. 特权 (50)
VI. 配置参数 (51)
VII. 系统目录 (51)
VIII. 约束 (52)
IX. 数据完整性 (52)
X. 主键 (52)
XI. 外键 (52)
XII. 父表 (53)
XIII. 隔离级别 (53)
XIV. 工作单元 (53)
XV. 连接 (54)
XVI. 数据安全性 (54)
XVII. 恢复 (55)
XVIII. 数据元素 (55)
8ORACLE中的数据类型与DB2数据类型的对应关系是什么? (55)
9ORACLE中的一些常用函数如DE CODE()、爬树查询等在DB2中是如何实现的,若没有相关实现,解决方案是什么? (57)
9.1 DB2中对Oracle系统函数decode()的实现 (57)
9.2 DB2中对Oracle系统中的爬树查询的对应实现 (57)
10ORACLE中的SQUENCE和DUAL,对应到DB2中如何实现 (57)
10.1 Squence在db2中的实现 (57)
10.2 Oracle系统表dual在db2中相对应的系统表是SYSIBM.SYSDUMMY1
58
11ORACLE到DB2数据迁移问题 (59)
11.1 准备工作 (59)
11.2 数据迁移步骤: (59)
1 准备
取得DB2 Enterprise Edition V8.2 for Windows 安装光盘。
2 安装需求
●磁盘:至少1G的FA T32或NTFS格式磁盘空间。
推荐3G的NTFS格式磁盘空间。
●内存和CPU:至少256MB内存,推荐2GMB内存。
对于32 位DB2 产品,需要有奔腾或与奔腾
兼容的CPU。
对于64 位DB2 产品,需要Itanium 或与Itanium 兼容的CPU。
●操作系统:Windows 2000/XP/2003,推荐使用Windows的各种server/advance server/data center版本。
3 详细安装步骤
运行DB2光盘,打开并运行setup.exe开始安装,如下图
如上图,单击【安装产品】
如上图,单击【下一步】
如上图,单击【下一步】
如上图,选择“我接受许可证协议中的全部条款(A)”后,单击【下一步】
如上图,选择“定制安装”,单击【下一步】
如上图,单击【下一步】
如上图,单击【下一步】
如上图,默认目录为C:\ Program Files\IBM\SQLLIB,为了获得更好的性能,改为非操作系统所在的分区上安装DB2,并且不在Program Files文件夹内安装,目的是避免目录中的空格引起不必要的麻烦。
单击【下一步】
如上图,单击【下一步】
如上图,单击【下一步】
如上图,如果计算机在域内,则需要输入域用户的用户名和密码;如果计算机不在域内,则输入登陆计算机的用户名和密码。
并且,这里所输入的用户名和密码应该隶属于Administators组,密码要保证正确,在此仅对两次输入密码匹配性进行一致性校验,而不对密码的有效性经进行校验。
为了DB2服务器管理的方便,请取消选择“对其余DB2服务使用同一个用户名和密码”,单击【下一步】
如上图,因为上面输入的密码是正确有效的,所以选择【否】
如上图,单击【下一步】
如上图,单击【确定】
如上图,选择“创建DB2实例”,单击【下一步】
如上图,选择“DB2”,单击【下一步】
如上图,在此推荐使用新建用户,用户名mydb2,并且选中“对其余DB2服务使用同一个用户名和密码(U)”,单击【下一步】
如上图,选择“准备DB2工具目录和仓库控制数据库”,单击【下一步】
如上图,单击【下一步】
如上图,单击【下一步】
如上图,选择“将任务延迟到完成安装后进行”,单击【下一步】
如上图,单击【下一步】
如上图,推荐将设置信息复制并保存起来,以供查看。
单击【安装】
如上图,单击【完成】,完成DB2服务器的安装。
DB2接着会开始启动服务,请看下节的DB2的配置。
4 DB2的配置与建库
注意:db2在创建数据库时候,会自动创建一个模式。
“模式名”会默认为“当前用户名”。
由于该系统在设计时采用mydb2模式,所以登陆系统创建数据库的用户,名称必需为“mydb2”。
(即:在本机新建一个mydb2用户,并用该用户登录来创建数据库)。
以下仅为一创建db2数据库例子,数据库名字可以有用户自己决定。
(例子仅供参考)
在安装DB2的最后一步,如上图单击【完成】后,会启动DB2的服务,进入DB2的启动板
如上图,单击【创建样本数据库】
如上图,选择【DB2 UDB样本】
如上图,完成后,单击【确定】,完成样本数据库的创建。
接下来,创建应用数据库。
打开DB2控制中心,打开方法“开始/所有程序/IBM DB2/一般管理工具/控制中心”,也可以直接在系
统托盘中右键点击DB2,选择“控制中心”来打开。
如上图,在控制中心视图上选择“高级”,单击【确定】,并展开控制中心的目录树中的样本数据库AMPLE
如上图,在“数据库”的节点上单击鼠标右键,
如山图,选择【标准】
创建一个数据库mydb2,别名和注视也为mydb2,单击【下一步】
如上图,选择“低维护-自动增加(系统管理空间)(L)”,并单击【添加】指定一个容器来存储用户表。
容器可以是一个文件目录,可以在windows中随意创建。
单击【下一步】
如上图,单击【下一步】
如上图,单击【下一步】
如上图,单击【下一步】
如上图,单击【下一步】
如上图,单击【显示命令】,可以显示创建命令
单击【完成】
选择【否】,完成MYDB2数据库的创建。
5 DB2数据库缓冲池设置Db2数据库建好后,在该数据库上创建缓冲池如下图:
点击创建:
系统默认“页大小”下拉单中有4、8、16、32四个选项,为了便于操作,对应的“缓冲池名”我们分别定为4k、8k、16k、32k(这四个缓冲池都必须建)。
另外在红色框内也可根据需要,自己定义页设计的大小。
除此四个之外我们还需要建立一个“缓冲池名”为USER32K的缓冲池。
如下图
建议该页计的大小为3500k。
(用户可根据具体需要修改).点击确定完成缓冲池的创建。
6 DB2数据库表空间建立
DB2数据库建好后,在该数据库上创建表空间如下图:
点击创建:
点击【下一步】:
现在我们假设根据项目的需要,要建立四个常规、一个大型(用来存放如图片等大字段)和一个用户临时类型的表空间(建议表空间命名规则和建立的缓冲池对应:例如USER4k对应的缓冲池为4k、USER8k 对应的缓冲池为8k、USER16k对应的缓冲池为16k、USER32k对应的缓冲池为32k,大型表空间对应32k缓冲池,用户临时表空间对应4k缓冲池)。
这里仅以USER4k为例加以说明。
点击【下一步】:进
入下图
在该窗口中用户建立的“缓冲池”将显示在缓冲池列表中,选择合适的缓冲池点击【下一步】:如下图
点击【下一步】:如图
该窗口要为建立的表空间指定容器,单击【添加】
红色标记部分可以调整容器的大小。
(建议使用200,也可根据需要用户自己决定)点确定进入下图:
点【下一步】:
点【下一步】
点【下一步】:
点“完成”完成USER4k表空间的建立,其他表空间的操作类似,这里不再做具体说明。
7 Oracle到DB2数据库迁移技术问题
Oracle迁移到DB2后,如何对DB2服务器进行配置和管理?
Oracle中的数据类型与DB2数据类型的对应关系是什么?
Oracle中的一些常用函数如decode()、爬树查询等在DB2中是如何实现的,若没有相关实现,解决方案是什么?
Oracle中的squence和dual,对应到DB2中如何实现
7.1O racle迁移到DB2后,如何对DB2服务器进行配置和管理?
理解Oracle与DB2数据库系统的体系结构和相关概念是进行配置管理的依据,也是快速掌握数据库系统的捷径。
有关Oracle这方面的资料很文档网上很多,在此不做介绍。
下面简要介绍一下DB2体
系结构和相关概念。
7.1.1DB2 UDB 体系结构图
7.1.2DB2 UDB 内存结构
包缓存——为存储静态和动态SQL 语句而分配的内存。
缓冲池——在将数据刷新到磁盘之前,为存储数据而分配的内存。
日志缓冲区——在将所有对数据库的更改刷新到磁盘上的日志之前,用来存储这些更改的内存。
7.1.3DB2 UDB 数据库结构
如上图,说明:
驱动器/目录——在CREA TE DA TABASE 命令中指定的驱动器或目录。
DB2 实例名称——DB2 实例所有者的名称。
NODE0000 ——数据库的分区数。
0 表示非分区的数据库。
SQL00001 ——从 1 开始的数据库ID。
SQLOGDIR ——数据库的默认日志目录。
SQLT0000.0 ——目录表空间SYSCA TSPACE。
SQLT0001.0 ——临时表空间TEMPSPACE1。
SQLT0002.0 ——用户表空间USERSPACE1。
7.1.4DB2 UDB数据库的逻辑机构
在DB2数据库中,表、视图、存储过程、触发器等具体存储数据或对数据进行操作的实体都称为数据库对象。
DB2的逻辑机构包括系统、实例、数据库、表空间以及表、视图、过程、函数、触发器等对象,下面做详细介绍:
I.DB2的数据库对象
在DB2数据库中,表、视图、存储过程、触发器等具体存储数据或对数据进行操作的实体都称为数据库对象。
如下图:
II.系统
DB2 是按照数据库对象的层次结构来组织的。
层次结构中最顶层的对象就是系统。
系统表示安装DB2。
控制中心维护它了解的系统的列表,并记录与每个系统进行通信所需要的信息(例如,它的网络地址、操作系统和通信协议)。
系统可以具有一个或多个DB2 实例,每个实例可以管理一个或多个数据库。
数据库可以是分区数据库,并使它们表空间驻留在数据库分区组上。
表空间也可以存储表数据。
您可以:
将系统添加至控制中心。
与系统连接。
从控制中心中除去系统。
实践表明:DB2中的系统名是与创建系统的用户名一一对应的。
III.实例
实例是一种逻辑数据库管理器环境,在该环境中可以编目数据库和设置配置参数。
可以在同一物理服务器上创建多个实例,并为每个实例提供唯一的数据库服务器环境。
多个实例可以提供下列内容:
将一个实例用于开发环境,而将另一个实例用于生产环境。
为特定环境调整实例。
限制存取机密信息。
控制为每个实例指定SYSADM、SYSCTRL 和SYSMAINT 权限。
优化每个实例的数据库管理器配置。
限制实例故障的影响。
如果发生实例故障,则只有一个实例受影响。
其它实例可以继续正常工作。
多个实例将需要:
每个实例的附加系统资源(虚拟内存和磁盘空间)。
更多管理任务,因为要管理附加实例。
在Windows 系统上,确保没有实例名与服务名称相同。
您可以:
创建实例。
删除实例。
启动实例。
停止实例。
连接实例。
IV.数据库
关系数据库以表的集合来表示数据。
表由定义的一组列和任何数目的行组成。
每个表中的数据在逻辑上是相关的,并且可以定义表之间的关系。
可以根据数学原理和称为关系的操作(例如INSERT、SELECT 和UPDA TE)来对数据进行查看和操作。
数据库是自描述的,因为它除了包含数据之外,还包含对它自身结构的描述。
它包括一组系统目录表,这些目录表描述数据的逻辑和物理结构;配置文件,它包含与数据库相关联的参数值;恢复日志,它记录正在执行的事务以及可以归档的事务。
数据库可以是本地的或远程的。
本地数据库在物理上位于正在使用的工作站中,而另一机器上的数据库则认为是远程的。
您可以:
创建数据库。
将数据库添加至控制中心。
从控制中心中删除数据库。
备份数据库。
复原数据库。
配置数据库。
编目数据库。
取消编目数据库。
连接至数据库。
使用事件监视器监视表空间。
使用分区数据库。
使用联合系统。
对于z/OS 和OS/390 系统,在DB2 安装过程中预定义了缺省数据库DSNDB04。
此数
据库具有缺省缓冲池(BP0)和缺省DB2 存储组(SYSDEFLT)。
数据库名称
数据库名称是创建数据库时用户提供的标识名称。
这些名称在对它们进行编目的位置中必须是唯一的。
该名称使数据库与本地数据库目录或系统数据库目录中的其它任何数据库区别开来。
如果想要在通信环境中使用数据库,为了避免潜在的问题,则不要在数据库名称中使用特殊字符@、# 和$。
另外,由于并不是所有键盘都有这些字符,所以,如果打算在另一地域使用数据库,则不要使用这些字符。
可以为本地和远程数据库名称指定别名。
V.表空间
在数据库中的物理空间被组织成表空间集合。
每个表空间由容器集合组成,每个容器是对物理存储器(例如,机器上的目录、物理文件或设备(例如,硬盘驱动器))的分配。
在分区环境中,表空间驻留在数据库分区组中。
将每个表分配给表空间。
表可以将它的索引保存在第二个表空间中,将它的大对象保存在第三个表空间中。
可以将多个表分配给同一个表空间。
系统试图将数据分布到它的表空间的容器中。
将表分配给表空间并将表空间映射至物理存储器,可以使您对数据库性能具有一定控制权。
例如,可以将最快的存储设备用于最常用的表,将不常用的数据存储在较慢的设备上。
有两种类型的表空间:
●“系统管理空间”(SMS),在该表空间中,操作系统的文件系统管理器分配和管理用来存
储表的空间。
用户决定文件的位置、DB2 控制它们的名称,而文件系统则负责管理它们。
缺省情况下,表是作为SMS 表空间来创建的。
●“数据库管理空间”(DMS),在该表空间中,数据库管理器控制存储空间。
存储模型由有
限数目的设备(其空间由DB2 来管理)组成。
管理员决定要使用的设备,而DB2 负责
管理那些设备上的空间。
您可以:
●创建表空间。
●删除表空间。
●改变表空间的特征。
●备份表空间。
●恢复表空间。
●前滚表空间。
●授予和撤销对表空间的特权。
●显示与表空间相关的对象。
●使用事件监视器监视表空间。
VI.表
关系数据库以表的集合来表示数据。
表由在列和行中按逻辑排列的数据(通常称为记录)组成。
每个表都有一个名称,而在表中每一列都有一个名称。
表的各行之间没有任何特定的排序,但是,可以按照由各行的列中的值所确定的顺序来检索行。
表中的数据在逻辑上是相关的。
将所有数据库和表数据都分配给表空间。
您可以:
●创建表。
●通过插入、装入和导入数据来填充表。
●定义表之间的关系。
●控制对表的存取权。
●删除表。
●创建表的索引。
VII.视图
视图是查询一个或多个表所获得的结果。
视图看起来象真正的表,但是实际上它只是对一个或多个表中的数据的表示。
视图是一个逻辑表或虚拟表,它在物理存储器中并不存在。
它是表示不需要维护的数据的有效方法。
当视图中显示的数据发生更改时,那些更改是对表本身的数据的更改结果。
视图可用来查看同一数据的不同表示法。
视图是控制对机密数据的存取权的一种方法。
根
据用户的需要,不同的用户可以对不同的列和行具有存取权。
您可以:
●创建存取一个或多个数据源的视图。
●创建一个视图来对一列中的所有值求和、选择最大值或者计算平均值。
●创建存取视图而不是实际的表的应用程序。
●删除视图。
VIII.索引
可以在表上创建索引,它是对数据存取的一种帮助。
它是指向表中的行的有序指针集。
每个索引都是根据表中一列或多列的数据值来建立的。
索引是从表中的数据独立出来的对象。
当创建索引时,数据库管理器将构建结构,并且自动维护它。
索引可以用于下列目的:
●提供一种快速方法来根据表中各行在键列中的值来查找这些行。
在某些情况下,可以在索
引中找到查询所需要的所有信息,从而不需要阅读整个实际表。
●通过将一列或一组列定义为唯一索引或主键来强制执行唯一性规则。
●提供了根据键列值来将表中的各行进行逻辑排序。
●根据定义的索引顺序来在物理存储器中建立表中的行的群集。
您可以:
●创建索引以提高性能。
●创建唯一索引以强制执行唯一性规则。
●删除索引。
●显示索引与其它对象之间的关系。
IX.触发器
触发器定义一组操作,当在指定的表上执行更新、插入或删除时就会执行或触发这些操作。
可以创建触发器,以便使它们在指定的事件之前执行(前触发器)或者在指定的事件之后执行(后触发器)。
触发器可以用于:
●验证数据。
确保新的数据值在可接受的范围内。
这类似于检查约束。
●数据完整性。
确保通过更新相关表中相关联的数据记录来维护交叉表从属项。
●通知。
通过生成电子邮件通知来对管理员报警:存在潜在的表问题。
●触发器存储在数据库中。
这样更便于进行应用程序开发,因为不需要在每个应用程序中编
写触发器执行的操作。
维护应用程序和数据库也更加容易,因为如果表的规则发生了更改,
则只需要修改相应的触发器,而不需要修改每个应用程序。
您可以:
●创建触发器。
●删除触发器。
7.2D B2数据库的相关概念
I.分区数据库
分区关系数据库是由两个或多个数据库分区组成的数据库。
在此类型的数据库中,数据以散列形式存储。
数据库分区由它自己的数据、索引、配置文件和事务日志组成。
数据库分区有时称为节点或数据库节点。
表可以位于一个或多个数据库分区中。
当表的数据分布在多分区中时,它的一些行存储在一个分区中,而其它行存储在其它分区中。
数据检索和更新请求将自动分解为子请求,并在适当的数据库分区中并行执行。
用户应该很清楚数据库已划分为数据库分区。
通常情况下,由计算机组成的每个物理组件上都存在单个数据库分区。
每个系统上的处理器都由每个数据库分区的数据库管理器用来管理其数据(这些数据是数据库中总数据的一部分)。
因为数据是跨数据库分区划分的,所以可以使用多台计算机上的多个处理器的能力来满足信息请求。
数据检索和更新请求将自动分解为子请求,并在适当的数据库分区中并行执行。
用户交互作用是通过一个数据库分区来实现的,该数据库分区称为该用户的协调程序分区。
协调程序与应用程序在同一数据库分区上运行,但是,在远程应用程序的情况下,协调程序将在与远程应用程序连接的数据库分区上运行。
任何数据库分区都可以用作协调程序分区。
II.节点
数据库分区有时称为节点或数据库节点。
单一分区数据库就是只有一个数据库分区的数据库。
数据库中的所有数据都存储在该分区中。
分区数据库就是具有两个或多个数据库分区的数据库。
表可以位于一个或多个数据库分区中。
当表位于多分区上时,它的一些行存储在一个分区中,而其它行存储在其它分区中。
发出SQL 语句的用户应该很清楚数据库可能已划分为数据库分区。
III.日志
日志与所有DB2 数据库相关联。
日志保存对数据库对象和数据所作的所有更改的记录。
所有更改都是首先写入到内存中的日志缓冲区,然后在落实更改或者缓冲区已满时,就会移动或刷新磁盘上的日志文件。
在发生意外的情况下(例如,电源故障),将使用日志文件来使数据库返回到一致状态(恢复)。
有两种类型的日志记录:
●循环日志记录,它使用圆形或环形日志文件来记录对数据库的更改。
当填充了最后一个日
志时,就会重新循环使用第一个文件。
由于可能会覆盖事务信息,因此,对这种类型的日
志记录不能进行前滚恢复。
缺省情况下,创建数据库时将创建循环日志记录。
●归档日志记录,它不会覆盖日志文件。
它会创建附加日志来记录自从上次备份以来的所有
事务。
这种类型的日志记录支持前滚恢复。
活动日志包含尚未落实或回滚的事务信息,或者那些尚未写入数据库文件但已落实的更改。
当正常处理不再需要活动日志中的所有更改时,日志就会关闭并且成为归档日志。
循环日
志记录和归档日志记录都使用活动日志,而只有归档日志记录才使用归档日志。
您可以:
●配置日志缓冲区和日志文件的大小。
●配置日志数。
●选择要使用的日志记录类型。
IV.权限
权限提供了一种方法来对特权进行分组以及控制实例、数据库和数据库对象的维护和实用程序操作。
用户可以具有提供对一组数据库对象的所有特权的管理权限,他们也可以具有提供对管理系统的所有特权但是不允许存取数据的系统权限。
●SYSADM 是最高级别的管理权限。
它包括对DB2 实例中的所有数据库的所有特权以及
授予和撤销所有其它权限和特权的权限。
●DBADM 提供对特定数据库的管理权限。
它允许用户存取和修改该数据库中的所有对象。
具有DBADM 权限的用户可以对其他用户授予和撤销对数据库的特权,但是不能授予或
撤销DBADM 权限。
●SYSCTRL 是用于控制数据库管理器所使用的资源(例如,创建和删除数据库)的权限,
但是,不允许存取数据库中的数据。
●SYSMAINT 是用于执行维护操作(例如,启动和停止DB2 服务器以及备份和复原数据
库)的权限。
它不允许存取数据库中的数据。
通过将数据库级别的LOAD 权限与对表的INSERT 特权结合起来,可允许用户将数据装入到该表中。
特定于数据库的权限存储在数据库目录中;而系统权限存储在实例的数据库管理器配置文件中。
V.特权
特权通过已授权用户的授权标识来转移他们的权利,以便对特定对象执行特定操作。
它使该授权标识能够创建、修改或存取某些数据库资源。
授权标识可以代表用户、组或所有用户(PUBLIC)。
特权使用户能够创建或存取数据库资源。
权限提供了一种方法来对特权进行分组以及控制实例、数据库和数据库对象的维护和实用程序操作。
可以保持对许多数据库对象(例如数据库、模式、表空间、表、视图、服务器、程序包和索引)的特权。
以下列表是可用于某些对象的一些特权的样本:
●CONNECT 允许用户存取数据库。
●CREA TEIN 允许用户在模式中创建对象。
●USE 允许用户在表空间中创建表。
●INDEX 允许用户创建表的索引。
●DELETE 允许用户删除表或视图中的行。
●EXECUTE 允许用户执行程序包。
●CONTROL 是对一些数据库对象的主要特权。
●GRANT 上的WITH GRANT 选项允许用户将特权授予其他用户。
●具有SYSADM 或DBADM 权限或者CONTROL 特权的用户可以使用GRANT 和
REVOKE SQL 语句来显式地授予和撤销特权。
还可以隐式授予特权(即,当显式地为用户授予某些较高级别的特权时)。
还可以为具有特权执行程序包的用户授予隐式特权。
例如,当用户执行涉及到其它特权的程序包时,仅当执。