DB2 客户机/服务器环境
由于 DB2 用户间整体通信协议使用情况发生了变化,因此为实现 DB2 客户机/服务器连通性,DB2 目前支持以下协议:
TCP/IP
NPIPE
对于到主数据库(如 DB2 for z/OS 和/或 DB2 for iSeries)的连接,必须具备使用 Distributed Relational Database Architecture(DRDA)的 DB2 Connect。
为远程应用程序连接准备您的 DB2 数据库
在 DB2 客户机(应用程序)能够连接到数据库之前,您必须确保服务器端通信得到了恰当的设置,可接收连接请求。要为 TCP/IP 连接准备服务器,您需要设置一个 TCP/IP 监听器,方法如下。
1、使用以下命令设置 DB2 配置文件注册库 DB2COMM,使实例能够监听 TCP/IP 的连接:
db2set DB2COMM=TCPIP
2、在数据库管理器配置文件中设置 TCP/IP 协议必需的信息。
您需要为各启用了 TCP/IP 连接的 DB2 实例指派一个端口号。一个名为 “services” 的文件包含系统中定义的各服务的条目及与之关联的各端口号。文件的位置取决于您的操作系统。例如,在 Linux 和 UNIX 上,此文件通常存储在 /etc 目录中。
由于一个端口号一次只能被一个服务所使用,因此强烈建议您以 services 文件为中心,维护所有服务(和 DB2 实例)及其相关端口号的列表。例如,要将 TCP/IP 端口号 50000 保留给 DB2 实例 db2icdb2,可将如下代码行添加到 services 文件中:
db2icdb2 50000/tcp
更新数据库管理器配置,这样 DB2 将为您所处理的实例使用与 db2icdb2 服务相关联的端口号:
db2 update database manager configuration using svcename db2icdb2
您还可直接在数据库管理器配置中编码端口号,而不是将端口号添加到 services 文件中。此时,使用正确的端口号更新数据库管理器配置参数 svcename,如下所示:
db2 update database manager configuration using svcename 50000
3、数据库管理器配置参数 svcename 并非动态,因此您必须停止并重启实例,以使 TCP/IP 监听器启动,如下所示:
db2stop
db2start
使用 DB2 Configuration Assistant
DB2 Configuration Assistant 提供了用户友好的向导和图形化界面,可配置您或您的应用程序将使用的环境。通过下图所示的 Configuration Assistant,您可以:
添加一个新的数据库连接
更新数据库连通性信息
查看并更新数据库管理器配置参数
查看并更新 DB2 配置文件注册库
将应用程序绑定到数据库
更新 Call Level Interface(CLI)设置
配置数据库连通性的三种方法
在 DB2 Configuration Assistant 中,有三个选项可用于设置数据库连接。您可以:
为 DB2 数据库搜索网络
使用 DB2 访问配置文件
手动配置连接
通过搜索网络自动配置数据库连通性
DB2 Discovery 搜索并定位您的网络上的 DB2 服务器,您可以选择使用搜索 或已知 发现方法。
搜索方法将在网络中搜索任意 DB2 服务器。这种方法需要花上一些时间才能返回结果。
如果您知道一些关于希望定位的 DB2 服务器的信息,则可使用已知方法,并提供数据库或服务器名称之类的信息来约束搜索。
有时,您可能不希望某些 DB2 服务器、实例或数据库为可发现的。 例如,假设一个 DB2 服务器包含一个生产实例或开发实例。在开发实例中,定义了两个数据库:ACCT 和 HUMRES。您可能希望使生产实例不被发现,而仅允许开发实例中的 ACCT 数据库被发现。DB2 允许您进行这样的配置,从而使您的服务器上的机密数据库不会被轻易获得。
仅在 DB2 服务器上运行 Administration Server(DAS)服务、且 discover 配置参数被设置为 search 时,该 DB2 服务器才可被搜索到,如下所示:
db2admin start
db2 update admin configuration using discover search
您还可控制哪些实例是可被发现的,只需设置 discover_inst 数据库管理器配置参数即可,如下所示:
db2 update database manager configuration using discover_inst enable
各数据库都拥有一个相似的配置参数 —— discover_db,它可启用或禁用数据库发现,如下所示:
db2 update database configuration for database_name using discover_db enable
这里要重点指出,在 DAS、实例或数据库级别禁用发现不会限制 DB2 客户机通过其他方法设置数据库连通性(下文将详细讨论)。DB2 客户机仍然可以连接到远程数据库 —— 即便其数据库配置 discover_db 被禁用也是如此。
使用 DB2 访问配置文件自动配置数据库连通性
如果您要为 1,000 台或更多的工作站设置 DB2 客户机/服务器连通性,那么您会怎么做?您当然可以前往每一台工作站,使用 Configuration Assistant 中的发现方法,但可能要花上很长一段时间才能完成这个任务。在此类情况下,您应考虑使用 DB2 访问配置文件。
访问配置文件中包含客户机配置与 DB2 服务器的连通性时所必需的信息。访问配置文件有两种类型:
服务器访问配置文件 是在 DB2 服务器上生成的。它包含服务器上定义的全部或选定的部分实例和数据库的相关信息。
客户机配置文件 是在 DB2 客户机上生成的。它包含客户机上已编目的实例(也称为节点)和数据库的相关信息。
让我们逐步地看一下 DB2 访问配置文件方法。
1、使用 Configuration Assistant 将信息导出到访问配置文件(该文件就是一个 ASCII 文件)。在下图中,请注意部分 DB2 环境设置(如数据库管理器配置和 DB2 配置文件注册库)也可导出。
2、将导出的文件发送给客户机。
3、使用 Configuration Assistant 将文件导入 DB2 客户机。
您可能会发现,要向您的所有用户解释如何使用 Configuration Assistant 导入配置文件是件相当麻烦的事情。而且某些用户所安装的某些版本的 DB2 运行时客户机可能不包含 Configuration Assistant。在这种情况下,您可使用以下命令,执行与上述相同的导入操作: db2cfimp access_profile_name
手动配置数据库连通性
如果您了解配置连通性所必需的所有信息,那么可以使用 Configuration Assistant 中的 Add Database 向导,如下所示。
除此之外,您还可以通过 DB2 Command Line Processor(CLP)或 DB2 Command Window 使用 catalog 命令,如下所示。
1、您必须首先编目节点(或 DB2 服务器)与实例的结合。
您希望附加的各实例均需要编目为节点。使用带有不同关键字的 catalog 命令,这些不同的关键字代表所支持的各种通信协议。示例如下:
db2 catalog tcpip node mynode remote db2server.mycompany.com server db2icdb
db2 catalog netbios node jeremy remote N01FCBE3 adapter 0
2、编目数据库。
编目一个或多个属于已编目实例的数据库。示例如下:
db2 catalog database sample as mysamp at node mynode
db2 catalog database baydb as newbaydb at node mynode
列举节点和数据库目录
已成功编目的节点(DB2 服务器)和数据库的相关信息存储在 DB2 NODE 目录和 DATABASE 目录中。这些信息提供了客户机所使用的 DB2 实例与数据库的抽象映射。
要在 node 目录中列举服务器与实例的结合,可使用如下命令:
db2 list node directory
您应看到形式如下的输出结果:
要列举 database 目录,可使用如下命令:
db2 list database directory
您应看到形式如下的输出结果;
让我们通过一个示例来完整地了解一下 DB2 客户机/服务器环境,并了解如何编目 DB2 节点和数据库。
在下面的示意图中,第一个 DB2 服务器(host1)上定义了两个 DB2 实例和 3 个数据库。第二个 DB2 服务器(host2)仅包含一个实例和一个数据库。
要使客户机连接到本场景中的全部 4 个数据库,各远程实例必须编目,并存储在客户机的 node 目录中,各数据库必须在其相应节点上编目(DB2 服务器和实例)。
附加到实例并连接到数据库
通过编目节点和数据库设置完客户机/服务器连通性后,您可附加到实例以进行实例级管理任务,也可连接到数据库以读取该数据库中的数据或向数据库写入数据。
要附加到 DB2 实例,可使用 DB2 命令 attach,如下所示:
attach to nodename user username using password
附加到实例后,您可在该实例上执行管理任务,例如:
创建和删除数据库
检索、更新和重置数据库管理器及数据库配置参数
管理数据库监控程序
备份、还原和前滚数据库
强制用户和应用程序与实例中定义的数据库断开连接
要连接到数据库,以选择、插入、更新或删除数据,您必须首先通过以下方式连接到数据库:
connect to database_name user username using password
[new new_password confirm new_password ]
请注意,connect 语句还允许您为特定用户指定新口令 —— 如果您希望这样做的话。
连接到数据库之后,即可执行 Data Manipulation Language(DML)操作,例如:
SELECT
INSERT
UPDATE
DELETE
您还可执行:
数据库定义语言(DDL)以 CREATE 或 ALTER 数据库对象。
数据库控制语言(DCL)以 GRANT 或 REVOKE 对象特权。
预编译包操作并将其绑定到数据库。
使用 EXPORT、IMPORT 和 LOAD 实用工具将数据移入移出数据库。