menu

开发进行时...

crazy coder

Avatar

DB2 V8环境

使用蓝色来表示用于查询配置文件内容的命令,用黑色来表示更改这些内容的语法,并用紫色来显示有关如何使用命令的示例

与实例相关的命令:
创建实例:
db2icrt <instance name>
删除实例:
db2idrop <instance name>
启动实例:
db2start
停止实例:
db2stop
环境变量:
环境变量是在操作系统级别上定义的变量.
最常使用的DB2环境变量是DB2INSTANCE,在Windows中使用操作系统的 set 命令,或者在unix中使用 export 命令.
set db2instance=db2
set db2instance
db2 get instance
db2ilist
DB2概要注册表
db2概要注册表 profile Registry 变量与windows注册表变量没有任何关系.
DB2概要注册表分为四类;最常用的:
DB2全局级概要注册表(Global-Level Profile Registry)
DB2实例级概要注册表(Instance-Level Profile Registry)
查看所设置的当前注册表变量,请从CLP发出下面的命令:
db2set -all
要查看可以在DB2中进行定义的所有注册表变量,请使用这个命令:
db2set -lr
要在全局级上设置(在这个示例中为 DB2INSTPROF)值,请使用:
db2set DB2INSTPROF="C:\PROGRAM FILES\SQLLIB" -g
要在实例级上为实例"myInst"设置变量,请使用:
db2set DB2INSTPROF="C:\MY FILES\SQLLIB" -i MyInst
配置参数
配置参数是在两个不同的级别(实例级和数据库级)上定义的。每个级别上的变量都是不同的(不象注册表变量那样可以不同级别上定义相同的变量)。
在实例级变量被存储在数据库管理器配置文件(dbm cfg)中;对这些变量所作的更改会影响与该实例相关的“所有”数据库,这就是图中显示了 dbm cfg 框(每个实例定义了一个),并且该框都显示在数据库框外面的原因。以下是一些与配置参数相关的命令:
要从 CLP 查看 dbm cfg 的内容,请发出下面这个命令:
db2 get dbm cfg
要更新特定变量的值,请发出下面这个命令:
db2 update dbm cfg using <parameter> <value>
例如:
db2 update dbm cfg using INTRA_PARALLEL YES
V8 之前,对“所有”dbm cfg 变量所作的更改都要求您停止和启动实例( db2stop/db2start )。现在,V8 中有大约 40% 的参数是“可联机配置的”参数;也就是说,不再需要停止和启动实例了。请参考“DB2 V8 管理指南(DB2 V8 Administration Guide)”以获取更多详细信息。

在数据库级别上,变量被存储在数据库配置文件(db cfg)中;对这些变量所作的更改会影响特定的数据库。从 图 1中,您可以看到每个定义的数据库内部都有一个 db cfg 框。

要查看 db cfg 的内容,请从 CLP 发出下面这个命令:
db2 get db cfg for <dbname>
例如:
db2 get db cfg for mydb1
要更新特定变量的值,请发出下面这个命令:
db2 update db cfg for <dbname> using <parameter> <value>
例如:
db2 update db cfg for mydb1 using MINCOMMIT 3
V8 之前,对“所有”db cfg 变量进行更改都要求您断开与该数据库的所有连接;然后,在进行第一个新连接时,这些更改将生效。V8 中有大约 50% 的参数可以进行联机配置;也就是说,无需为了使更改生效而断开到数据库的所有连接。请参考“DB2 V8 管理指南(DB2 V8 Administration Guide)”以获取更多详细信息。

系统数据库目录(或系统db目录)
系统数据库目录是主要的“目录(table of contents)”,它包含了有关可以从您的DB2系统进行连接的所有数据库的信息。正如您可以从图中看到的那样,系统DB目录是在实例级上进行存储的;因此,如果您打算删除一个实例,那么您应当考虑备份其内容。要列出系统DB目录的内容,请从CLP发出下面这个命令:
db2 list db directory
要将信息输入系统DB目录,需要使用catalog命令:
db2 catalog db <db_name> as <alias> at node <nodename>
eg: db2 catalog db mydb as yourdb at node mynode
节点名是指向节点目录中某一项的指针。在发出这条命令之前该项必须已经存在。
通常只有在将信息添加到远程数据库的系统DB目录时才使用catalog命令。对于本地数据库来说,在用create database命令创建数据库之后就自动创建catalog项。

本地数据库目录(或本地DB目录)
本地数据库目录包含了有关本地数据库(即,驻留在您目前正在使用的机器上的数据库)的信息。正如您可以从 图 1中看到的那样,本地数据库目录驻留在数据库结构内部。注意从该图还可以看到没有专门的命令用于将信息输入到该目录中。当您用 create database 命令创建数据库时,在该目录中会添加一项。
要列出本地数据库目录的内容,请发出以下命令:
db2 list db directory on <path>
其中,可以从系统 db 目录相应项中的“Database drive”项(Windows 中)或“Local database directory”项(UNIX 中)获取 <path>。

节点目录

节点目录用于存储远程数据库的所有连通性信息。V8 仅支持 TCPIP 协议;因此,该目录中的大多数项将显示 TCPIP 信息,比如机器(其中包含了您想连接的数据库)的主机名或 IP 地址,还有相关的 DB2 实例的端口号。下面是一些与节点目录相关的命令:
要列出节点目录的内容,请从 CLP 发出下面这个命令:
db2 list node directory
要将信息输入节点目录,请从 CLP 发出 catalog 命令:
db2 catalog tcpip node <node_name>
remote <hostname or IP_address>
server <port_name or port_number>
例如:
db2 catalog tcpip node mynode
remote 9.26.138.35
server 60000
要想得到您想要连接的远程实例的端口号,可以查看该实例的 dbm cfg 中的svcename 参数来实现。该值通常对应于 TCP/IP services 文件中的某一项。

DCS 目录
DCS 目录包含了通常驻留在 zSeries™(S/390®)或 iSeries™(AS/400®)机器上的主机数据库的连通性信息。您需要安装 DB2 Connect 软件。下面是一些命令:
要列出 DCS 目录的内容,请从 CLP 发出下面这个命令:
db2 list dcs directory
要将信息输入 DCS 目录,请从 CLP 发出 catalog 命令:
db2 catalog dcs db as <location name>
例如:
db2 catalog dcs db as db1g
请参考 DB2 V8 连通性快捷表以获取本节中所描述的那些命令的摘要。

DATABASE

数据库是与实例相关的封闭且独立的单元。由于这个独立性,所以两个或更多的数据库的对象可以有相同的名称。例如, 图 1显示了一个名为“MyTablespace1”的表空间,它位于与实例“DB2”相关的数据库“MYDB1”内部。还有一个同名的表空间,它位于也与实例“DB2”相关的数据库“MYDB2”内部。
由于数据库是封闭单元,所以您不能执行涉及了两个不同数据库表的查询(除非您使用 Information Integrator(II)/ Relational Connect,这已经超出本文的讨论范畴)。例如,涉及数据库“MYDB1”中的“Table1”和数据库“MYDB2”中的“TableZ”的查询是不允许的。
数据库是用命令 create database 创建的。请注意,这被认为是一个命令,而非 SQL 语句。
当您创建数据库、表空间、日志和缓冲池时,会自动地创建配置文件,这就是完成该命令需要花费几秒钟的原因。

Tablespaces
表空间是用作逻辑表和物理容器之间中间层的逻辑对象。创建表空间时,您可以将它与特定的缓冲池(数据库高速缓存)以及特定的容器进行关联。容器是物理存储数据的地方,可以分成文件、目录和原始设备等几类。
Catalog(SYSCATSPACE)、系统临时空间(TEMPSPACE1)和用户空间(USERSPACE1)都是表空间,并且都会在创建数据库时自动创建。Catalog 和系统临时空间都可以看作是系统结构,因为它们是数据库的正常操作所必需的。Catalog 包含了元数据(有关数据的数据)。一些其它 RDBMS 把这个结构称作“数据字典”。不要把这一节的术语“Catalog”和早先提到的 catalog 命令混淆起来;它们毫无关系。
系统临时表空间是数据库管理器执行操作(比如连接和排序)的工作区。至少必须有一个系统临时表空间。
缺省情况下会创建 USERSPACE1 表空间,但是可以删除它。它是用来存储用户表的缺省位置。
图 1用与本节标题颜色一样的桃褐色显示了用 create tablespace 命令显式创建的其它表空间。请参考“DB2 V8 SQL 参考大全(DB2 V8 SQL Reference)”以获取更多详细信息。

Tables,indexes and Large objects
表是由行和列组成的无序的数据记录集。索引是与表相关的有序指针集,用于性能目的并确保唯一性。视频、音频和扫描文档等可以作为大对象(LOB)存储在数据库中。表、索引和 LOB 驻留在表空间中。

Logs
日志是用于恢复目的的文件。日志记录了对数据库进行的每个操作。万一发生故障,在将数据库恢复到某个一致的点方面,日志就显得至关重要了。

Bufferpool(s)
缓冲池是一块内存区域,所有索引和数据页(除了 LOB)都必须有序地经过该区域,从而进行处理。它是数据库管理器所使用的主要高速缓存。在数据库性能问题方面,缓冲池是进行调优的最重要的对象

评论已关闭