计算机DB数据库管理手册
临时空间(诸如排序或重新组织表、创建索引和连接表这样的操作需要临时空间):temporary tablespace
我们使用:/db2sms/tmp4k
操作:现在,在/db2sms下创建目录usrts、systs、tmp4k。
cd /db2sms
mkdir usrts
mkdir systs
mkdir tmp4k
512
Hdisk2
rlv_index3
512
Hdisk2Leabharlann DATArlv_dbdata1
512
Hdisk0
rlv_dbdata2
512
Hdisk0
rlv_dbdata3
512
Hdisk0
rlv_dbdata4
512
Hdisk0
rlv_dbdata5
512
Hdisk0
rlv_dbdata6
512
Hdisk0
F50有两个VG:rootvg(HDISK1)和datavg(HDISK0、HDISK2)。
DB2系统安装在rootvg上(HDISK1),其它信息则在datavg上;
系统表、LOG为文件系统,用户表数据、用户表INDEX则为设备。
所有这些都放在“/dev”目录下。
具体名称及划分情况如下表:
数据库空间划分表
操作者:root。
其中,db2cdb2inst1是在/etc/services文件中定义的通信端口。
空间管理
总共使用的空间有:
一个索引表空间(设备)
一个系统编目表空间(文件系统)
一个临时表空间(文件系统)
一个数据表空间存放客户信息数据(设备)
一个数据表空间存放操作流水数据(设备)
一个表空间存放各种编码表(文件系统)
创建用户组和用户
在UNIX平台上,用户名和组名必须小写。
创建用户组
由root创建用户组如下:
组名
含义
用途
ccdbadm
系统管理组
SYSADM特权是DB2中可用的能力最强的一组特权
db2fadm1
受保护组
为受保护的“用户定义函数”(UDF)和存储过程创建的一个组
ccadmgrp
呼叫中心管理模块组
为“管理”界面提供
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
数据库管理概述
作为通常在后台运行的核心系统,数据库性能的好坏,将直接影响整个系统的性能甚至可用性。所以,数据库管理是整个系统管理的关键之一。
DB2是IBM公司的优秀产品,其内部对数据库的管理是通过:实例、节点组、数据库、表空间、表(及视图等)来进行的。
数据库管理程序(有时称为实例)是管理数据的DB2代码。它控制可对数据执行的操作,并管理分配给它的系统资源。每一个实例都是一个完整的环境。它包含为一个给定的并行数据库系统定义的所有数据库分区。一个实例有它自己的数据库(其他实例不能存取它),并且它全部的数据库分区共享相同的系统目录。它也有独立于同一机器上的其他实例的单独的安全性。
process_space:目的是存放各流水、报表等动态数据;
st_tab_space:目的是存放静态编码和XPRESS系统原有表的数据。
建立表空间的例子为
create regular tablespace index_space pagesize 4096 managed by database using (device'/dev/rlv_index1' 128000, device'/dev/rlv_index2' 128000, device'/dev/rlv_index3' 128000) extentsize 64 prefetchsize 32;
(
CF_CALL_ID CHAR(30) not null ,
CF_TXN_SVC_TIME TIME not null ,
CI_INTO_ACCT_NO VARCHAR(28)not null ,
CI_OUT_ACCT_NO VARCHAR(28) not null ,
1.4.1AIX上19
用户的准备19
配置客户端19
1.4.2Windows95/98/NT上21
分辨服务器的主机地址21
配置和测试客户端21
1.5控制中心使用27
1.6SHELL文件的列表说明28
数据库管理
本章主要介绍数据库的管理。首先,我们简单介绍数据库管理的基本概念,然后,对数据库的日常维护工作逐一作出说明。此后,从建立实例开始,介绍了如何使用我们开发的SHELL程序建立数据库等高级管理方法,并介绍了如何使用“控制中心”来管理数据库。最后附上SHELL文件的列表说明。
关于db2命令行参数的使用,可参阅《Command Reference》一书。
操作:为了建立表空间,我们只需要运行SHELL文件creSpaceAll.sql如下:
db2 -t -fcreSpaceAll.sql–zcreSpaceAll.log
操作者:实例拥有者ccdb。
建库
建立基本数据库
建立数据库xpress,使用别名为cti_xdb,指定语言为中文:CN,GBK。使用的系统空间为上面所说三个目录。使用的SHELL程序为:creDbAll.sql。
操作:
db2 -t -f creDbAll.sql–z creDbAll.sql
操作者:实例拥有者ccdb。
建立表和索引
建表分为两个模块:XPRESS原有模块和CALL CENTER新模块。所有的建表功能都封装在两个SHELL程序(creTabCC.sql,reTabXPE.sql)中。如果系统需要作调整,则只需调整这两个模块即可。SHELL中,指出表名、各字段定义、注解以及主键和主索引,同时定义了使用的表空间。例如:
SELECT <data_name> FROM <table_name>
图1举例说明刚才描述的对象之间的关系。它也举例说明表、索引和长数据存储在表空间中的情况。
数据库日常管理说明
由于在整个系统中,数据库是后台运行的部分,其日常管理很少,主要有:启动停止。
启动:
每次开机后数据库会自动启动。如果需要人为启动,则
db2icrt命令的语法如下:
db2crt [-h|-?] [-d] [-a AuthType] [-u FencedID]
[-p PortName][-s InstType] InstName
具体说明请参见《快速入门》一书。
操作:这里,我们的使用是:
db2crt -u db2fenc1 -pdb2cdb2inst1ccdb
节点组是一个或多个数据库分区组成的集合。当您想为数据库创建表时,首先创建将存储表空间的节点组,然后创建将存储表的表空间。有关节点组的更多信息,参见"节点组和数据分区"。有关数据库分区的定义,参见"DB2并行性概念概述"。
一个数据库由称为表空间的部件组成。表空间的定义和属性记录在数据库系统编目中。一旦创建了一个表空间,您就可以在此表空间中创建表。会给一个表空间分配一个容器。容器是物理存储器的一种分配形式(如文件或设备)。表空间驻留在节点组中。
操作者:root。
创建实例
然后,创建实例:
使用db2icrt命令来创建附加实例,输入:
DB2DIR/instance/db2icrt -u FencedID instance_name
其中instance_name是最多八个字符的字母数字字符串,且其中DB2DIR= /usr/lpp/db2_05_00
一个表由逻辑地按行和列排列的数据组成。表中的数据在逻辑上是相关的,且可以定义表与表之间的关系。根据称为关系的数学规则和操作来察看和操纵数据。表数据通过SQL存取,SQL是一种标准化语言,用于定义和操纵一个关系数据库中的数据。所有数据库和表数据都被指定到表空间。
应用程序或用户使用查询,以从数据库检索数据。该查询使用“结构化查询语言”(SQL)来创建下列格式的语句
创建用户
由root创建用户如下:
用户ID
所属主组
用途
ccdb
ccdbadm
实例拥有者,拥有对实例、ccdb数据库的所有权利
db2fenc1
db2fadm1
为受保护的“用户定义函数”(UDF)和存储过程创建
ccadm
ccadmgrp
为“管理”界面提供
cccsrad
cccagrp
为CSR的管理提供
cccsr
对于一些管理任务,数据库管理服务器必须建立与所有节点的通信。为此,必须在tcp_services_file中为参与此实例的每个主机定义一个命名的TCP端口。
例如,定义的db2inst包括两个主机:hostA和hostB。正如"环境示例"中所指定,在两个主机上不使用端口16000。因此,必须将如下行插入到hostA和hostB的tcp_services_file中。
建立约束及触发器10
建立视图11
删除数据库11
删除表11
1.3.7导入导出数据12
删除旧流水数据12
导出数据12
导入数据13
1.3.8权限管理13
认证14
数据库系统特权14
数据库对象授权14
程序包绑定(BIND)到数据库并授权16