计算机DB2数据库管理手册

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据库管理

本章主要介绍数据库的管理。首先,我们简单介绍数据库管理的基本概念,然后,对数据库的日常维护工作逐一作出说明。此后,从建立实例开始,介绍了如何使用我们开发的SHELL程序建立数据库等高级管理方法,并介绍了如何使用“控制中心”来管理数据库。最后附上SHELL文件的列表说明。

数据库管理概述

作为通常在后台运行的核心系统,数据库性能的好坏,将直接影响整个系统的性能甚至可用性。所以,数据库管理是整个系统管理的关键之一。

DB2是IBM公司的优秀产品,其内部对数据库的管理是通过:实例、节点组、数据库、表空间、表(及视图等)来进行的。

数据库管理程序(有时称为实例)是管理数据的 DB2 代码。它控制可对数据执行的操作,并管理分配给它的系统资源。每一个实例都是一个完整的环境。它包含为一个给定的并行数据库系统定义的所有数据库分区。一个实例有它自己的数据库(其他实例不能存取它),并且它全部的数据库分区共享相同的系统目录。它也有独立于同一机器上的其他实例的单独的安全性。

节点组是一个或多个数据库分区组成的集合。当您想为数据库创建表时,首先创建将存储表空间的节点组,然后创建将存储表的表空间。有关节点组的更多信息,参见"节点组和数据分区"。有关数据库分区的定义,参见"DB2 并行性概念概述"。

一个数据库由称为表空间的部件组成。表空间的定义和属性记录在数据库系统编目中。一旦创建了一个表空间,您就可以在此表空间中创建表。会给一个表空间分配一个容器。容器是物理存储器的一种分配形式(如文件或设备)。表空间驻留在节点组中。

一个表由逻辑地按行和列排列的数据组成。表中的数据在逻辑上是相关的,且可以定义表与表之间的关系。根据称为关系的数学规则和操作来察看和操纵数据。表数据通过 SQL 存取, SQL 是一种标准化语言,用于定义和操纵一个关系数据库中的数据。所有数据库和表数据都被指定到表空间。

应用程序或用户使用查询,以从数据库检索数据。该查询使用“结构化查询语言”(SQL) 来创建下列格式的语句 SELECT FROM

图 1举例说明刚才描述的对象之间的关系。它也举例说明表、索引和长数据存储在表空间中的情况。

数据库日常管理说明

由于在整个系统中,数据库是后台运行的部分,其日常管理很少,主要有:启动停止。

启动:

每次开机后数据库会自动启动。如果需要人为启动,则

以实例拥有者(这里是ccdb)用户身份登录

命令:db2start; db2admin start

停止:

以实例拥有者(这里是ccdb)用户身份登录

命令:LANG=zh_CN; db2stop; db2admin stop

高级管理方法

为数据库分配硬盘空间和卷组

在建库之前,首先保证已建立datavg卷组(由root建立),并分配了逻辑卷。

F50有两个VG:rootvg(HDISK1)和datavg(HDISK0、HDISK2)。

DB2系统安装在rootvg上(HDISK1),其它信息则在datavg上;

系统表、LOG为文件系统,用户表数据、用户表INDEX则为设备。

所有这些都放在“/dev”目录下。

具体名称及划分情况如下表:

数据库空间划分表

文件/设备信息类型名称LV名大小(M)目录所在硬盘

文件LOG(镜像)db2log lv_db2log512/db2log Hdisk0

要实现节点间通信,需要配置服务端口。

对于一些管理任务,数据库管理服务器必须建立与所有节点的通信。为此,必须在 tcp_services_file 中为参与此实例的每个主机定义一个命名的 TCP 端口。

例如,定义的 db2inst 包括两个主机:hostA 和 hostB。正如"环境示例"中所指定,在两个主机上不使用端口16000。因此,必须将如下行插入到 hostA 和 hostB 的 tcp_services_file 中。

db2ccmsrv 16000/tcp

操作:为ccdb配置服务端口(如果50000或50001已经被占用,则换用其他端口)

在/etc/services文件中加入两条:

db2cdb2inst1 50000/tcp # Connection port for DB2 instance ccdb

db2idb2inst1 50001/tcp # Interrupt port for DB2 instance ccdb

操作者:root。

创建实例

然后,创建实例:

使用 db2icrt 命令来创建附加实例,输入:

DB2DIR/instance/db2icrt -u FencedID instance_name

其中 instance_name 是最多八个字符的字母数字字符串,且其中DB2DIR= /usr/lpp/db2_05_00

db2icrt命令的语法如下:

db2crt [-h|-] [-d] [-a AuthType] [-u FencedID]

[-p PortName] [-s InstType] InstName

具体说明请参见《快速入门》一书。

操作:这里,我们的使用是:

db2crt -u db2fenc1 -p db2cdb2inst1 ccdb

操作者:root。

其中,db2cdb2inst1是在/etc/services文件中定义的通信端口。

空间管理

总共使用的空间有:

一个索引表空间(设备)

一个系统编目表空间(文件系统)

一个临时表空间(文件系统)

一个数据表空间存放客户信息数据(设备)

一个数据表空间存放操作流水数据(设备)

一个表空间存放各种编码表(文件系统)

系统空间管理

在缺省情况下,用户表、临时表和系统目录表分属于独立的表空间。他们在缺省驱动器里创建。

空间的分配有如下几个方面:

用户空间(用于存储将包含数据的表):user tablespace

我们使用:/db2sms/usrts

系统目录表(如"系统目录表"所述):catalog tablespace

我们使用:/db2sms/systs

临时空间(诸如排序或重新组织表、创建索引和连接表这样的操作需要临时空间):temporary

tablespace

我们使用:/db2sms/tmp4k

操作:现在,在/db2sms下创建目录 usrts、systs、tmp4k。

cd /db2sms

mkdir usrts

mkdir systs

相关文档
最新文档