DB2学习总结.docx

上传人:b****4 文档编号:4818275 上传时间:2023-05-07 格式:DOCX 页数:85 大小:491.84KB
下载 相关 举报
DB2学习总结.docx_第1页
第1页 / 共85页
DB2学习总结.docx_第2页
第2页 / 共85页
DB2学习总结.docx_第3页
第3页 / 共85页
DB2学习总结.docx_第4页
第4页 / 共85页
DB2学习总结.docx_第5页
第5页 / 共85页
DB2学习总结.docx_第6页
第6页 / 共85页
DB2学习总结.docx_第7页
第7页 / 共85页
DB2学习总结.docx_第8页
第8页 / 共85页
DB2学习总结.docx_第9页
第9页 / 共85页
DB2学习总结.docx_第10页
第10页 / 共85页
DB2学习总结.docx_第11页
第11页 / 共85页
DB2学习总结.docx_第12页
第12页 / 共85页
DB2学习总结.docx_第13页
第13页 / 共85页
DB2学习总结.docx_第14页
第14页 / 共85页
DB2学习总结.docx_第15页
第15页 / 共85页
DB2学习总结.docx_第16页
第16页 / 共85页
DB2学习总结.docx_第17页
第17页 / 共85页
DB2学习总结.docx_第18页
第18页 / 共85页
DB2学习总结.docx_第19页
第19页 / 共85页
DB2学习总结.docx_第20页
第20页 / 共85页
亲,该文档总共85页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

DB2学习总结.docx

《DB2学习总结.docx》由会员分享,可在线阅读,更多相关《DB2学习总结.docx(85页珍藏版)》请在冰点文库上搜索。

DB2学习总结.docx

DB2学习总结

资料编码

产品名称

数据业务工程师DB2数据库快速入门

使用对象

华为工程师、合作方工程化是

产品版本

编写部门

数据业务产品服务部

资料版本

V1.0

 

数据业务工程师DB2入门指南

拟制:

鲁强

日期:

2007-6-13

审核:

日期:

审核:

日期:

批准:

日期:

 

华为技术有限公司

版权所有XX

修订记录

日期

修订版本

描述

作者

2007-6-13

V1.0

初稿完成

鲁强

目录

第1章DB2相关知识介绍1

1.1概述1

1.2系统结构1

1.2.1实例instance1

1.2.2数据库database3

1.2.3配置文件7

1.2.4表空间tablespace12

1.2.5表table20

1.2.6视图view22

1.2.7索引index23

1.2.8存储过程storeprocedure25

1.2.9缓冲池bufferpool25

1.2.10日志logs28

1.3其他系统管理部分29

1.3.1节点编目(DB2客户机通讯)29

1.3.2Db2license33

1.3.3系统健康状态35

1.4典型案例介绍36

1.4.1创建存储过程时,应先删除已存在的同名同参数的存储过程36

1.4.2应确保处理SQL语句的应用堆有足够的大小37

1.4.3视图无效,需要重建37

1.4.4如果数据库在执行对表插入、删除等操作的同时,进行查询该表,可能导致数据库进程被锁住。

37

1.4.5如何清空一张表37

1.4.6前滚时遇到未记日志的失败操作,表被破坏。

38

1.4.7在客户端查询数据库中文信息会产生乱码38

1.4.8重启动机器后,用于创建表空间的裸设备与逻辑卷挂接失效,数据库无法使用,提示:

SQL0290N Tablespaceaccessisnotallowed. SQLSTATE=5503938

1.4.9编目时确保使用正确的服务端口号38

1.4.10不能分配“应用程序支持层“堆39

1.4.11如何查看数据库占用内存情况40

1.4.12如何查看DB2的进程40

1.4.13如何将数据库运行的环境收集起来40

1.4.14数据库实例用户无法访问裸设备40

1.4.15如何让数据库支持中文字符集41

1.4.16db2select*from…类似这样含有特殊字符的语句在Linux/Unix平台下,执行总是提示错误,无法执行41

1.4.17如何获取当前时间41

1.4.18如何在命令行下查看错误代码的说明41

1.4.19如果查询结果的字段比较少,如何将每条纪录的列在同一行,以增强可读性41

1.4.20常用的几中数据类型的精确度和长度为多少41

1.4.21如何查看DB2的日志42

1.4.22无法删除数据库42

1.4.23查询数据库系统表中的对象失败43

1.4.24在DB2数据库中如何将整型转换为字符型43

1.4.25在SuSe9下执行raw命令将裸设备和逻辑卷挂接时裸设备的归属属性会发生改变。

43

1.5Suse下Oracle移植到db2经验案例44

1.5.1Oracle和db2的数据库44

1.5.2表空间数据文件的差异44

1.5.3数据库使用内存的差异45

1.5.4表空间使用内存的差异46

1.5.5数据库最小分配单元的差异46

1.5.6数据库日志的差异47

1.5.7数据源配置的差异47

1.5.8Db2和oracle的进程差异47

关键词:

DB2数据库

摘要:

本文介绍了DB2数据库的相关基础知识及产品开局、维护中常用命令,作为学习DB2数据库的

参考

缩略语清单:

参考资料清单:

主机空间第八期、DB2数据库管理与应用教程、短消息产品安装指南、维护指南及巡检指南、

短消息OSTA项目经验案例集.chm

第1章DB2相关知识介绍

1.1概述

本文介绍了DB2数据库的相关基础知识及产品开局、维护中常用命令,作为学习DB2数据库的参考。

1.2系统结构

DB2数据库的系统结构

1.2.1实例instance

实例(instance):

指后台进程与共享存储器的组合,DB2UDB中一个实例可以包括多个数据库,一个数据库只能属于一个实例(Oracle中每个实例只包含一个数据库)。

Oracle中因为数据库和实例之间存在一对一的对应关系,所以要通过用CREATEDATABASE命令创建数据库来显式地创建实例。

在DB2UDB中,Windows平台,默认创建“DB2”实例。

Linux和UNIX中,其默认实例名为“db2inst1”。

若要在同一台机器上创建另一个实例,您只需执行命令db2icrt,可以单独创建实例,后续在对应的实例下创建数据库。

―――――――――――――――――――――――――――――――――――――――――

和windows不同,Suselinux下要单独创建实例用户。

需要注意一下,suselinux下,创建、查询、删除实例是通过root用户执行的。

而启动和关闭实例是通过实例用户db2inst1来执行的。

并且,如果有多个实例,则必须创建多个实例用户。

Linux下DB2安装需要以下三个用户和用户组

●        DB2Instance用户

●        DB2Fenced用户

●        AdministrationServer用户

―――――――――――――――――――――――――――――――――――――――――

实例相关的常用指令:

1、创建实例:

db2icrt

C:

\DocumentsandSettings\Administrator>db2icrtitest

DB20000IDB2ICRT命令成功完成。

2、查询实例:

db2ilist

C:

\DocumentsandSettings\Administrator>db2ilist

ITEST

DB2

3、删除实例:

db2idrop

C:

\DocumentsandSettings\Administrator>db2idropitest

DB20000IDB2IDROP命令成功完成。

·4、启动实例:

db2start

C:

\DocumentsandSettings\Administrator>db2start

2007-06-1210:

43:

3400SQL1063NDB2START处理成功。

SQL1063NDB2START处理成功。

5、停止实例:

db2stop

C:

\DocumentsandSettings\Administrator>db2stop

2007-06-1210:

43:

0800SQL1064NDB2STOP处理成功。

SQL1064NDB2STOP处理成功。

6、查看当前实例:

db2getinstance

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2getinstance

当前数据库管理器实例是:

DB2

1.2.2数据库database

数据库(database):

数据库是与实例相关的封闭且独立的单元,DB2UDB中,一个实例可以容纳多个数据库。

每个数据库都有自己的目录表空间、临时表空间和用户表空间,它们是随数据库的成功创建而被默认创建的。

由于数据库的独立性,所以不同数据库中可以有相同名称的对象,例如表空间、表等。

当创建一个实例时,默认情况下不创建数据库。

需要使用createdatabase命令显式地创建数据库。

也可以使用ControlCenter来创建数据库。

数据库相关的常用指令:

1、创建数据库:

db2createdatabase

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2createdatabasedbtest

DB20000ICREATEDATABASE命令成功完成。

2、查看目前实例能够识别的本地与远程数据库:

db2listdatabasedirectory(showdetail)

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2listdatabasedirectory

系统数据库目录

目录中的条目数=5

数据库1条目:

数据库别名=DBTEST

数据库名称=DBTEST

数据库驱动器=C:

\DB2

数据库发行版级别=a.00

注释=

目录条目类型=间接

目录数据库分区号=0

备用服务器主机名=

备用服务器端口号=

数据库2条目:

数据库别名=TBC_MD

数据库名称=TBC_MD

节点名=NDE9F105

数据库发行版级别=a.00

注释=BIsamplemetadatadatabase

目录条目类型=远程

目录数据库分区号=-1

备用服务器主机名=

备用服务器端口号=

2、启动数据库:

db2activatedatabase

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2activatedatabaseDBTEST

DB20000IACTIVATEDATABASE命令成功完成。

3、列出实例中正在使用的数据库:

db2listactivedatabases

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2listactivedatabases

活动数据库

数据库名称=DBTEST

当前连接的应用程序=0

数据库路径=C:

\DB2\NODE0000\SQL00006\

数据库名称=SAMPLE

当前连接的应用程序=1

数据库路径=C:

\DB2\NODE0000\SQL00002\

4、停止数据库:

db2deactivatedatabase

该命令只能停止使用activate启动的数据库,对于采用connect方式的,数据库会在最后一个用户离开后,自动停止。

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2deactivatedatabaseDBTEST

DB20000IDEACTIVATEDATABASE命令成功完成。

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2deactivatedatabaseSAMPLE

SQL1495W释放数据库成功,然而,仍然存在一个与数据库之间的连接。

(该数据库是通过connect的方式登录的)

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2listactivedatabases

活动数据库

数据库名称=SAMPLE

当前连接的应用程序=1

数据库路径=C:

\DB2\NODE0000\SQL00002\

5、强制断开数据库连接:

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2listactivedatabases

活动数据库

数据库名称=SAMPLE

当前连接的应用程序=1

数据库路径=C:

\DB2\NODE0000\SQL00002\

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2listapplications(列出当前所有的数据库会话)

授权标识应用程序名应用程序应用程序标识DB代理进程

句柄名称序号

---------------------------------------------------------------------------

ADMINIST>javaw.exe12*LOCAL.DB2.070612030039SAMPLE1

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2forceapplication(12)(强制关闭应用程序标识号为12的进程,也可一用all来关闭所有会话)

DB20000IFORCEAPPLICATION命令成功完成。

DB21024I该命令为异步的,可能不会立即生效。

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2listactivedatabases

SQL1611W“数据库系统监视器”没有返回任何数据。

SQLSTATE=00000

6、删除数据库:

db2dropdatabase

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2dropdatabaseDBTEST

SQL1035N当前正在使用数据库。

SQLSTATE=57019(删除激活的数据库失败)

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2deactivatedatabaseDBTEST

DB20000IDEACTIVATEDATABASE命令成功完成。

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2dropdatabaseDBTEST

DB20000IDROPDATABASE命令成功完成。

7、连接到一个本地或远端数据库:

db2connecttouser<用户名>using<密码>

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2connecttosample(连接到本地sample数据库)

数据库连接信息

数据库服务器=DB2/NT8.2.0

SQL授权标识=ADMINIST...

本地数据库别名=SAMPLE

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2getconnectionstate(查询本实例下数据库连接状态)

数据库连接状态

连接状态=可连接并已连接

连接方式=SHARE

本地数据库别名=SAMPLE

数据库名称=SAMPLE

主机名=

服务名称=

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2connectreset(断口与sample的连接)

DB20000ISQL命令成功完成。

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2getconnectionstate

数据库连接状态

连接状态=可连接而未连接

连接方式=

本地数据库别名=

数据库名称=

主机名=

服务名称=

8、重启数据库:

db2restartdatabase

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2restartdatabasesample

DB20000IRESTARTDATABASE命令成功完成。

1.2.3配置文件

DB2UDB中,所有会话和系统相关的参数配置参数存储在实例级别(称为数据库管理器配置文件)和数据库级别(称为数据库配置文件)。

这些参数大多数都可以被动态更改,即在对于参数值的更改生效之前,不需要停止并重启该实例或者强制所有连接。

1、系统环境参数

DB2有一些参数是在操作系统环境设置的,例如DB2INSTANCE、DB2PATH等。

Linux下,可以通过db2inst1用户执行env命令查看对应的环境变量。

smcsrv1:

~#su-db2inst1

db2inst1@smcsrv1:

~>env

MODULE_VERSION_STACK=3.1.6

LESSKEY=/etc/lesskey.bin

DB2INSTANCE=db2inst1

在windows平台,则可以通过查看系统环境变量的方式,查询对应的DB2相关的环境参数。

Linux下可以使用setenv来设置环境变量

setenvDB2INSTANCEdb2inst1

windows下,可以使用set命令来设置环境变量,set命令时常犯的错误是在等号(=)前后留有空格。

绝对不能有空格!

C:

\ProgramFiles\IBM\SQLLIB\BIN>setDB2INSTANCE=DB2INST2

C:

\ProgramFiles\IBM\SQLLIB\BIN>echo%DB2INSTANCE%

DB2INST2

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2start

SQL1063NDB2START处理成功。

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2getinstance

当前数据库管理器实例是:

DB2INST2

2、DB2注册配置文件

概要注册表(ProfileRegistry)变量与Windows注册表变量没有任何关系。

过去,对某些环境变量进行更改时,会要求用户重新引导机器。

如果所有DB2变量都已被定义成环境变量,那么对变量值进行更改将会很麻烦。

因此,当时大多数DB2变量组成一个专门的DB2注册表,在其中进行更改无需重新引导机器。

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

·DB2全局级概要注册表(Global-LevelProfileRegistry)

·DB2实例级概要注册表(Instance-LevelProfileRegistry)

两者的主要区别是变量适用的级别。

全局级概要注册表变量的值适用于所有实例。

要查看所设置的当前注册表变量,请从CLP发出下面这个命令:

db2set–all

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2set-all

[e]DB2PATH=C:

\ProgramFiles\IBM\SQLLIB

[i]DB2_SKIPDELETED=on

[i]DB2ACCOUNTNAME=HWSRV51\db2admin

[i]DB2COMM=TCPIP

[g]DB2PATH=C:

\ProgramFiles\IBM\SQLLIB

[g]DB2INSTDEF=DB2

[g]DB2ADMINSERVER=DB2DAS00

I表示实例级别,g表示全局,e表示环境变量

该命令的具体使用可以通过如下方式进行查询。

db2inst1@smcsrv1:

~>db2set/?

DBI1300Ndb2setdisplays,sets,orremovesDB2profile

variables.

db2set[[[variable=[value]]

[-g|-iinstance[

node-number]]]

[-all][-null]

[-r[instance[node-number]]]

[-nDASnode[

-uuser[-ppassword]]]

[-l|-lr][-v][-ul|-ur]

[-?

|-h]

3、实例设置参数

DB2的每一个实例,都有一组设置参数。

查看参数的指令:

db2getdbmcfg

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2getdbmcfg|more

数据库管理器配置

节点类型=带有本地客户机和远程

客户机的企业服务器版

数据库管理器配置发行版级别=0x0a00

打开的文件的最大总数(MAXTOTFILOP)=16000

CPU速度(毫秒/指令)(CPUSPEED)=3.227686e-007

通信带宽(MB/秒)(COMM_BANDWIDTH)=1.000000e+002

db2start/db2stoptimeout(min)(START_STOP_TIME)=10

修改参数的指令:

updatedbmcfgusing

db2inst1@smcsrv1:

~>db2updatedbmcfgusingstart_stop_time11

DB20000ITheUPDATEDATABASEMANAGERCONFIGURATIONcommandcompleted

successfully.

db2inst1@smcsrv1:

~>db2getdbmcfgshowdetail|grepSTART_STOP_TIME

db2start/db2stoptimeout(min)(START_STOP_TIME)=11

备注:

部分参数修改后,需要重启实例才能生效

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2updatedbmcfgusingMAXTOTFILOP16070

DB20000IUPDATEDATABASEMANAGERCONFIGURATION命令成功完成。

SQL1362W为立即修改而提交的一个或多个参数未动态更改。

直到下次启动应用程序或发出

TERMINATE命令之后,客户机更改才会生效。

直到下一条DB2START

命令之后,服务器更改才会生效。

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2getdbmcfgshowdetail(检查详细状态)

描述参数当前值延迟的值

打开的文件的最大总数(MAXTOTFILOP)=1607016000

4、数据库设置参数

DB2的每一个数据库,都有一组设置参数。

查看参数的指令:

db2getdbcfgfor

C:

\ProgramFiles\IBM\SQLLIB\BIN>db2getdbcfgforsample

数据库共享内存大小(4KB)(DATABASE_MEMORY)=435

目录高速缓存大小(4KB)(CATALOGCACHE_SZ)=326

应用程序组内存集的最大大小(4KB)(APPGROUP_MEM_SZ)=30000

应用程序组堆的内存百分比(GROUPHEAP_RATIO)=70

最大应用程序控制堆大小(4KB)

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2