计算机DB数据库管理手册.docx
- 文档编号:4845432
- 上传时间:2022-12-10
- 格式:DOCX
- 页数:25
- 大小:92.31KB
计算机DB数据库管理手册.docx
《计算机DB数据库管理手册.docx》由会员分享,可在线阅读,更多相关《计算机DB数据库管理手册.docx(25页珍藏版)》请在冰豆网上搜索。
计算机DB数据库管理手册
第一章数据库管理2
1.1数据库管理概述2
1.2数据库日常管理说明3
1.3高级管理方法3
1.3.1为数据库分配硬盘空间和卷组4
1.3.2创建用户组和用户4
创建用户组5
创建用户5
1.3.3配置服务端口6
1.3.4创建实例6
1.3.5空间管理7
系统空间管理7
创建表空间8
1.3.6建库8
建立基本数据库8
建立表和索引8
建立约束及触发器10
建立视图11
删除数据库11
删除表11
1.3.7导入导出数据12
删除旧流水数据12
导出数据12
导入数据13
1.3.8权限管理13
认证14
数据库系统特权14
数据库对象授权14
程序包绑定(BIND)到数据库并授权16
1.3.9数据库备份和恢复方案17
离线备份18
在线备份18
1.4配置客户端19
1.4.1AIX上19
用户的准备19
配置客户端19
1.4.2Windows95/98/NT上21
分辨服务器的主机地址21
配置和测试客户端21
1.5控制中心使用27
1.6SHELL文件的列表说明28
数据库管理
本章主要介绍数据库的管理。
首先,我们简单介绍数据库管理的基本概念,然后,对数据库的日常维护工作逐一作出说明。
此后,从建立实例开始,介绍了如何使用我们开发的SHELL程序建立数据库等高级管理方法,并介绍了如何使用“控制中心”来管理数据库。
最后附上SHELL文件的列表说明。
数据库管理概述
作为通常在后台运行的核心系统,数据库性能的好坏,将直接影响整个系统的性能甚至可用性。
所以,数据库管理是整个系统管理的关键之一。
DB2是IBM公司的优秀产品,其内部对数据库的管理是通过:
实例、节点组、数据库、表空间、表(及视图等)来进行的。
数据库管理程序(有时称为实例)是管理数据的DB2代码。
它控制可对数据执行的操作,并管理分配给它的系统资源。
每一个实例都是一个完整的环境。
它包含为一个给定的并行数据库系统定义的所有数据库分区。
一个实例有它自己的数据库(其他实例不能存取它),并且它全部的数据库分区共享相同的系统目录。
它也有独立于同一机器上的其他实例的单独的安全性。
节点组是一个或多个数据库分区组成的集合。
当您想为数据库创建表时,首先创建将存储表空间的节点组,然后创建将存储表的表空间。
有关节点组的更多信息,参见"节点组和数据分区"。
有关数据库分区的定义,参见"DB2并行性概念概述"。
一个数据库由称为表空间的部件组成。
表空间的定义和属性记录在数据库系统编目中。
一旦创建了一个表空间,您就可以在此表空间中创建表。
会给一个表空间分配一个容器。
容器是物理存储器的一种分配形式(如文件或设备)。
表空间驻留在节点组中。
一个表由逻辑地按行和列排列的数据组成。
表中的数据在逻辑上是相关的,且可以定义表与表之间的关系。
根据称为关系的数学规则和操作来察看和操纵数据。
表数据通过SQL存取,SQL是一种标准化语言,用于定义和操纵一个关系数据库中的数据。
所有数据库和表数据都被指定到表空间。
应用程序或用户使用查询,以从数据库检索数据。
该查询使用“结构化查询语言”(SQL)来创建下列格式的语句
SELECT
图1举例说明刚才描述的对象之间的关系。
它也举例说明表、索引和长数据存储在表空间中的情况。
数据库日常管理说明
由于在整个系统中,数据库是后台运行的部分,其日常管理很少,主要有:
启动停止。
启动:
每次开机后数据库会自动启动。
如果需要人为启动,则
●以实例拥有者(这里是ccdb)用户身份登录
●命令:
db2start;db2adminstart
停止:
●以实例拥有者(这里是ccdb)用户身份登录
●命令:
LANG=zh_CN;db2stop;db2adminstop
高级管理方法
为数据库分配硬盘空间和卷组
在建库之前,首先保证已建立datavg卷组(由root建立),并分配了逻辑卷。
F50有两个VG:
rootvg(HDISK1)和datavg(HDISK0、HDISK2)。
DB2系统安装在rootvg上(HDISK1),其它信息则在datavg上;
系统表、LOG为文件系统,用户表数据、用户表INDEX则为设备。
所有这些都放在“/dev”目录下。
具体名称及划分情况如下表:
数据库空间划分表
文件/设备
信息类型
名称
LV名
大小(M)
所在硬盘
文件
LOG(镜像)
db2log
lv_db2log
512
/db2log
Hdisk0
系统编目表、临时表、编码表、XPRESS表
db2sms
lv_db2sms
512
/db2sms
Hdisk0
设备
INDEX
rlv_index1
512
(无)
Hdisk2
rlv_index2
512
Hdisk2
rlv_index3
512
Hdisk2
DATA
rlv_dbdata1
512
Hdisk0
rlv_dbdata2
512
Hdisk0
rlv_dbdata3
512
Hdisk0
rlv_dbdata4
512
Hdisk0
rlv_dbdata5
512
Hdisk0
rlv_dbdata6
512
Hdisk0
创建用户组和用户
在UNIX平台上,用户名和组名必须小写。
创建用户组
由root创建用户组如下:
组名
含义
用途
ccdbadm
系统管理组
SYSADM特权是DB2中可用的能力最强的一组特权
db2fadm1
受保护组
为受保护的“用户定义函数”(UDF)和存储过程创建的一个组
ccadmgrp
呼叫中心管理模块组
为“管理”界面提供
cccagrp
CSR管理组
为CSR的管理提供
cccsrgrp
CSR组
为CSR提供
ccfaxgrp
FAX服务组
为FAX服务器上用户提供
ccivrgrp
IVR组
为IVR提供
ccrepgrp
前台报表组
为前台报表提供
ccintgrp
接口组
为主机接口、MQ、CIF接口等提供
ccuregrp
后台报表组
为后台报表提供
创建用户
由root创建用户如下:
用户ID
所属主组
用途
ccdb
ccdbadm
实例拥有者,拥有对实例、ccdb数据库的所有权利
db2fenc1
db2fadm1
为受保护的“用户定义函数”(UDF)和存储过程创建
ccadm
ccadmgrp
为“管理”界面提供
cccsrad
cccagrp
为CSR的管理提供
cccsr
cccsrgrp
为CSR提供
ccfax
ccfaxgrp
为FAX服务器上用户提供
ccivr
ccivrgrp
为IVR提供
ccrep
ccrepgrp
为前台报表提供
ccintf
ccintgrp
为主机接口、MQ、CIF接口等提供
ccurept
ccuregrp
为后台报表提供
配置服务端口
要实现节点间通信,需要配置服务端口。
对于一些管理任务,数据库管理服务器必须建立与所有节点的通信。
为此,必须在tcp_services_file中为参与此实例的每个主机定义一个命名的TCP端口。
例如,定义的db2inst包括两个主机:
hostA和hostB。
正如"环境示例"中所指定,在两个主机上不使用端口16000。
因此,必须将如下行插入到hostA和hostB的tcp_services_file中。
db2ccmsrv16000/tcp
操作:
为ccdb配置服务端口(如果50000或50001已经被占用,则换用其他端口)
在/etc/services文件中加入两条:
db2cdb2inst150000/tcp#ConnectionportforDB2instanceccdb
db2idb2inst150001/tcp#InterruptportforDB2instanceccdb
操作者:
root。
创建实例
然后,创建实例:
使用db2icrt命令来创建附加实例,输入:
DB2DIR/instance/db2icrt-uFencedIDinstance_name
其中instance_name是最多八个字符的字母数字字符串,且其中DB2DIR=/usr/lpp/db2_05_00
db2icrt命令的语法如下:
db2crt[-h|-?
][-d][-aAuthType][-uFencedID]
[-pPortName][-sInstType]InstName
具体说明请参见《快速入门》一书。
操作:
这里,我们的使用是:
db2crt-udb2fenc1-pdb2cdb2inst1ccdb
操作者:
root。
其中,db2cdb2inst1是在/etc/services文件中定义的通信端口。
空间管理
总共使用的空间有:
一个索引表空间(设备)
一个系统编目表空间(文件系统)
一个临时表空间(文件系统)
一个数据表空间存放客户信息数据(设备)
一个数据表空间存放操作流水数据(设备)
一个表空间存放各种编码表(文件系统)
系统空间管理
在缺省情况下,用户表、临时表和系统目录表分属于独立的表空间。
他们在缺省驱动器里创建。
空间的分配有如下几个方面:
●用户空间(用于存储将包含数据的表):
usertablespace
我们使用:
/db2sms/usrts
●系统目录表(如"系统目录表"所述):
catalogtablespace
我们使用:
/db2sms/systs
●临时空间(诸如排序或重新组织表、创建索引和连接表这样的操作需要临时空间):
temporarytablespace
我们使用:
/db2sms/tmp4k
操作:
现在,在/db2sms下创建目录usrts、systs、tmp4k。
cd/db2sms
mkdirusrts
mkdirsysts
mkdirtmp4k
操作者:
实例拥有者ccdb。
创建表空间
在一个数据库内创建表空间,会将容器分配到表空间,并在数据库系统编目中记录它的定义和属性。
然后我们就可以在此表空间内创建表。
根据系统不同数据的特点,我们划分了四个表空间:
●index_space:
目的是存放所有表的索引;
●ci_cc_space:
目的是存放CIF数据;
●process_space:
目的是存放各流水、报表等动态数据;
●st_tab_space:
目的是存放静态编码和XPRESS系统原有表的数据。
建立表空间的例子为
createregulartablespaceindex_spacepagesize4096managedbydatabaseusing(device'/dev/rlv_index1'128000,device'/dev/rlv_index2'128000,device'/dev/rlv_index3'128000)extentsize64prefetchsize32;
关于db2命令行参数的使用,可参阅《CommandReference》一书。
操作:
为了建立表空间,我们只需要运行SHELL文件creSpaceAll.sql如下:
db2-t-fcreSpaceAll.sql–zcreSpaceAll.log
操作者:
实例拥有者ccdb。
建库
建立基本数据库
建立数据库xpress,使用别名为cti_xdb,指定语言为中文:
CN,GBK。
使用的系统空间为上面所说三个目录。
使用的SHELL程序为:
creDbAll.sql。
操作:
db2-t-fcreDbAll.sql–zcreDbAll.sql
操作者:
实例拥有者ccdb。
建立表和索引
建表分为两个模块:
XPRESS原有模块和CALLCENTER新模块。
所有的建表功能都封装在两个SHELL程序(creTabCC.sql,reTabXPE.sql)中。
如果系统需要作调整,则只需调整这两个模块即可。
SHELL中,指出表名、各字段定义、注解以及主键和主索引,同时定义了使用的表空间。
例如:
--===========================================================
--Table:
CF_TRAN_CAN_LOG
--===========================================================
createtableCF_TRAN_CAN_LOG
(
CF_CALL_IDCHAR(30)notnull,
CF_TXN_SVC_TIMETIMEnotnull,
CI_INTO_ACCT_NOVARCHAR(28)notnull,
CI_OUT_ACCT_NOVARCHAR(28)notnull,
CF_CAN_MONDECIMAL(15,2)notnull,
CF_TRAN_TIMTIMEnotnull,
CF_CAN_KEYCHAR
(2)notnull
)inprocess_spaceindexinindex_space;
commentontableCF_TRAN_CAN_LOGis'转帐冲帐流水';
commentoncolumnCF_TRAN_CAN_LOG.CF_CALL_IDis'呼叫_ID';
commentoncolumnCF_TRAN_CAN_LOG.CF_TXN_SVC_TIMEis'交易服务时间';
commentoncolumnCF_TRAN_CAN_LOG.CI_INTO_ACCT_NOis'转入帐号';
commentoncolumnCF_TRAN_CAN_LOG.CI_OUT_ACCT_NOis'转出帐号';
commentoncolumnCF_TRAN_CAN_LOG.CF_CAN_MONis'金额';
commentoncolumnCF_TRAN_CAN_LOG.CF_TRAN_TIMis'转帐时间';
commentoncolumnCF_TRAN_CAN_LOG.CF_CAN_KEYis'摘要';
--===========================================================
--Index:
CF_TRAN_CAN_LOG_PK
--===========================================================
createuniqueindexCF_TRAN_CAN_LOG_PKonCF_TRAN_CAN_LOG(CF_CALL_IDasc,CF_TXN_SVC_TIMEasc);
altertableCF_TRAN_CAN_LOG
addconstraintCF_TRAN_CAN_LOG_PKprimarykey(CF_CALL_ID,CF_TXN_SVC_TIME);
操作:
●连接数据库:
db2"connecttocti_xdbuserccdbusingebeb"
●设置模式:
db2setschemaxpress
●建立CALLCENTER新表:
db2-t-fcreTabCC.sql-zcreTabCC.log
●建立XPRESS原有表:
db2-t-fcreTabXPE.sql-zcreTabXPE.log
操作者:
实例拥有者ccdb。
建立约束及触发器
所有的约束及触发器的建立都集中在一个SHELL文件(creRefCC.sql)中。
主要对关系中的RESTRICT和CASECATE作出限制。
(RESTRICT指:
禁止,CASECATE指:
传递。
详情可参见物理设计模型)
操作:
●连接数据库:
db2"connecttocti_xdbuserccdbusingebeb"
●设置模式:
db2setschemaxpress
●建立约束和触发器:
db2-td/-fcreRefAll.sql-zcreRefAll.log
操作者:
实例拥有者ccdb。
建立视图
主要为使XPRESSAdminister工具能够继续被使用来录入产品、紧急等内容。
由于我们现在的系统对XPRESS原由模型的数据库作了一定的改进以适应目前的需求,原来系统中的“PRODUCT_CATEGORIES”、“PRODUCTS_TABLE”、“EMERG_CATEGORIES”和“EMERG_TABLE”的结构被做了一定修改。
但XPRESSAdminister系统被封装无法修改。
所以我们将原来XPRESS的这四个表改为视图。
所有的视图的建立都集中在一个SHELL文件(creViewXPE.sql)中。
操作:
●连接数据库:
db2"connecttocti_xdbuserccdbusingebeb"
●设置模式:
db2setschemaxpress
●建立视图:
db2-td/-fcreViewXPE.sql-zcreViewXPE.log
操作者:
实例拥有者ccdb。
删除数据库
有时,需要删除整个数据库。
这时,会自动删除数据库的内容以及所有的记录文件,并把数据库从系统编目表中删去,然后删除数据库子目录。
注意这是危险操作!
建议操作之前先备份数据库!
操作:
●建立约束和触发器:
db2-dropdbcti_xdb
操作者:
实例拥有者ccdb。
删除表
如果需要删除表,可以运行删除表的命令。
例如,删除表xpress.abc:
db2droptablexpress.abc
如果删除所有的表,则需要运行两个SHELL文件(dropTabCC.sql,dropTabXPE.sql、dropView),会自动删除所有建立的表及视图。
操作:
●连接数据库:
db2"connecttocti_xdbuserccdbusingebeb"
●设置模式:
db2setschemaxpress
●删除CALLCENTER表:
db2-t-fdropTabCC.sql-zdropTabCC.Log
●删除XPRESS原有表:
db2--fdropTabXPE.sql-zdropTabXPE.Log
操作者:
实例拥有者ccdb。
导入导出数据
删除旧流水数据
需要定期清理流水表(现在设计为清理六个月以前的流水数据),已经设计了处理程序来完成此任务。
如果需要手工清理,则可以执行下列操作:
操作:
●连接数据库:
db2"connecttocti_xdbuserccdbusingebeb"
●设置模式:
db2setschemaxpress
●删除6个月以前的流水:
db2-fdeleteOldLog.sql-zdeleteOldLog.Log
操作者:
数据库系统管理员或实例拥有者ccdb。
导出数据
下面的导出数据操作,可以视需要只操作其中一部分
操作:
●连接数据库:
db2"connecttocti_xdbuserccdbusingebeb"
●设置模式:
db2setschemaxpress
●导出新表的数据:
db2--fExportCC.sql-zExportCC.Log
●或,导出XPRESS原有表的数据:
db2-fExportFrXPE.sql-zExportFrXPE.Log
●或,导出CIF数据:
db2-fExpCIF.sql-zExpCIF.Log
●或,导出流水数据:
db2-fExpLog.sql-zExportFrXPE.Log
操作者:
数据库系统管理员或实例拥有者ccdb。
导入数据
下面的导入数据操作,可以视需要只操作其中一部分
操作:
●连接数据库:
db2"connecttocti_xdbuserccdbusingebeb"
●设置模式:
db2setschemaxpress
●导入新表的数据:
db2-t-fImportCC.sql-zImportCC.Log
●或,导入XPRESS原有表数据:
db2--fImpAllFrXPE.sql-zImpAllFrXPE.Log
●或,删除原有CIF数据,并导入新数据:
db2-fDeImCIF.sql-zDeImCIF.Log
●或,导入流水数据:
db2-fImpLog-zImpLog.Log
操作者:
数据库系统管理员或实例拥有者ccdb。
权限管理
要保护与一个数据库服务器相关的数据和资源,DB2同时使用外部安全服务与内部存取控制信息。
要存取一个数据库服务器,必须在被允许存取数据库数据或资源之前通过一些安全性检查。
数据库安全性中的第一步称为认证,在该步骤,用户必须证明他的身份是真实的。
第二步称为授权,在此步骤,数据库管理程序决定是否允许经验证的用户执行请求的操作或存取请求的数据。
认证
DB2使用下列两种方式之一来使用安全性设施认证用户:
●DB2使用成功的安全性系统注册ID来证实您的身份,并允许使用该身份来进行下列操作:
Ø使用本地命令存取本地数据
Ø使用远程连接,在这里服务器委托客户机认证。
●DB2接受用户ID和口令的组合,并使用安全性设施来成功验证它们,以证实您的身份,并允许:
Ø使用远程连接,在这里服务器需要认证的证明
Ø使用操作,在这里用户希望以某个不同于注册所用的身份来执行命令
这样,登录本地机(cti_server)时,如果,需要访问数据库,可以使用缺省当前用户
数据库系统特权
系统管理权限(SYSADM):
SYSADM_GROUP
数据库管理权限(DBADM):
建议目前由系统管理员兼任
系统控制权限(SYSCTRL):
SYSCTRL_GROUP建议由系统管理员兼任
系统维护权限(SYSMAINT):
SYSMAINT_GROUP
数据库对象授权
定义应用系统用户对数据库兑现的使用权限。
数据库对象是指表、视图和程序包。
对数据库兑现的授权,主要是通过不同的SHELL文件实现的。
●授予特权
GRANT语句允许特许用户授予特权。
可以在一个语句中将一个特权授予一个或多个授权名;或授予PUBLIC,这使该特权可用于所有用户。
注意授权名可以是个别用户,也可以是组。
值得注意的是,如果某用户需要BIND数据库,则不仅需要对其所在组授权,还需要单独个用户授权。
操作:
●连接数据库:
d
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 DB 数据库 管理 手册