posts - 76,  comments - 621,  trackbacks - 0

DB2 实例 是一种逻辑上下文,DB2 命令及函数在其中执行。您可将实例视为管理对数据库文件的访问的服务或守护进程。在一台服务器上可定义多个实例。各实例独立于其他实例,也就是说所有实例均可分别管理、操纵及调优。

  一、DB2 实例 

 

  1、创建及删除实例

  DB2 实例 是一种逻辑上下文,DB2 命令及函数在其中执行。您可将实例视为管理对数据库文件的访问的服务或守护进程。在一台服务器上可定义多个实例。各实例独立于其他实例,也就是说所有实例均可分别管理、操纵及调优。

  要在 Windows 中创建实例,只需执行以下命令:

db2icrt instance_name

  在 Linux 和 UNIX 中,您必须另外提供一个用户 ID,用以创建 fenced 用户定义的函数和存储过程进程,形式如下:

db2icrt -u fenced_user_ID instance_name

  默认情况下,用户定义的函数和存储过程是在 fenced 模式下创建的,因而这些进程运行在与 DB2 引擎不同的地址空间中,也称为系统控制器进程 db2sysc。这为数据库管理器提供了保护,使之免于被用户定义的例程意外地或恶意地破坏。

  要删除一个实例,首先断开所有数据库连接,然后执行以下命令停止实例:

db2idrop -f instance_name

  2、列举、迁移和更新 DB2 实例

  要列举服务器上存在的 DB2 实例,可使用以下命令:

db2ilist

  若您决定转而使用比服务器上安装的 DB2 软件更新的版本,或者需要将 32 位实例迁移为 64 位实例,就需要进行实例迁移。在Windows 上,实例迁移是在必要的迁移过程中隐式完成的。在 Linux 和 UNIX 上,可使用以下命令显式地迁移已有实例:

db2imigr instance_name

  在为 DB2 安装修补程序包或补丁时,一旦在服务器上安装好了修补程序包,您就需要更新已有实例,以链接到新的修补程序文件。使用以下命令更新实例:

db2iupdt instance_name

3、设置 DB2 环境  恰当地设置 DB2 环境非常重要,这是因为它控制着 DB2 操作和活动的方式。DB2 环境由以下几部分构成:

  ● DB2 配置文件注册库

  ● 操作系统环境变量

  ● DB2 数据库管理器配置参数

  ● DB2 数据库配置参数

  4、设置配置文件注册库

  DB2 配置文件注册库是特定于 DB2 的变量,它会影响 DB2 系统的管理、配置与性能。为使 DB2 配置文件注册库的更改生效,您通常需要停止并重启实例。

  要列举所支持的全部 DB2 配置文件注册库:

db2set -lr

  要设置 DB2 配置文件注册库:

db2set registry_variable = value

  请注意,在变量名、等号和变量值之间没有空格。下面给出一个将 DB2COMM 注册库变量设置为单一值的示例:

db2set DB2COMM=TCPIP

  将 DB2COMM 注册库变量设置为多个值的示例如下:

db2set DB2COMM=TCPIP,NPIPE,LOCAL

  要将 DB2 配置文件注册库重置为默认值,只需使用与上面相同的命令即可,但不指定任何值:

db2set registry_variable =

  要显示服务器上当前设置的所有 DB2 配置文件注册库,请执行以下命令:

db2set -all

5、设置系统环境变量  要了解您当前工作在哪个 DB2 实例中,可运行以下 DB2 命令:

db2 get instance

  此命令的输出结果形式如下:

The current database manager instance is: DB2

  绝大多数 DB2 环境设置都是由 DB2 配置文件注册库控制的。而那些未存储在配置文件注册库中的设置称为操作系统环境变量。设置系统变量的命令将根据您所使用的平台及 UNIX shell 而有所不同。

  ● 在 Windows 中: set DB2INSTANCE=DB2

  ● 在 Linux 和 UNIX 的 Korn shell 中: export DB2INSTANCE=DB2

  DB2INSTANCE 是一个需要掌握的重要系统变量。它指定当前应用程序的会话或窗口的默认 DB2 实例。一旦设置好该变量,后续的所有 DB2 命令都将在该实例的作用域内执行。

  6、设置配置参数

  在 DB2 中,存在两个配置 “级别”。在实例(或数据库管理器)级别,您可为该实例配置整个 DB2 环境,这将影响实例中的所有数据库和使用该实例中数据库的所有应用程序。在数据库 级别,您可配置参数,而这些参数将影响到访问特定数据库的所有应用程序的行为。

  获取 DBMS 或者 DB 的配置参数:

db2 get database manager configuration
db2 get database configuration for database_name

  或者(后同)

db2 get database manager cfg
db2 get database cfg for database_name

  更改 DBMS 或者 DB 的配置参数

db2 update database manager configuration using parameter new_value
db2 update database configuration for database_name using parameter new_value

7、联机设置配置参数  绝大多数配置参数均可在实例或数据库保持运行的情况下联机设置。只要可能,对这些联机配置参数的更改默认为立即生效。例如,若更改了 sortheap 的值,所有新的 SQL 请求将使用新值。为显式指定这种立即生效的行为,可将 immediate 关键字附加到 update 命令中:

db2 update database manager configuration using parameter new_value immediate
db2 update database configuration for database_name using parameter new_value immediate

  若您选择将此更改延迟至实例重启或数据库激活时,则应指定 deferred 关键字:

db2 update database manager configuration using parameter new_value deferred
db2 update database configuration for database_name using parameter new_value deferred

  有时,您可能希望找出已确定并延迟了哪些更改。为显示数据库管理器配置参数的当前值和挂起值,首先进入实例,然后在 get database manager configuration 命令中指定 show detail 选项,方法如下(请注意,instance_name 是系统环境变量 DB2INSTANCE 设置的值):

db2 attach to instance_name
db2 get database manager configuration show detail

  同样地,要列举数据库配置参数的当前值和挂起值,首先连接到数据库,然后使用 show detail 选项:

db2 connect to database_name
db2 get database configuration for database_name show detail

  8、强制停止实例和数据库

  如果您需要使数据库或数据库管理器配置更改立即生效,而您所更改的参数并非动态,那么就需要停止并重启数据库或整个实例。若存在连接并使用此实例中一个或多个数据库的应用程序,您就无法停止并重启数据库或实例。此时,您可使用如下 DB2 命令,强行使用户断开 与数据库的连接:

db2 force application all

  您也可以在停止实例的同时断开所有用户的连接,命令如下:

db2stop force

  若您只希望强制停止一个特定的应用程序,则需要了解该应用程序的句柄。 使用以下命令查找句柄:

db2 list applications

  强制停止该应用程序的连接,可使用如下 DB2 命令:(x 为该应用程序句柄)

db2 force application (x)

 二、DB2 客户机/服务器连通性  1、DB2 客户机/服务器环境

  由于 DB2 用户间整体通信协议使用情况发生了变化,因此为实现 DB2 客户机/服务器连通性,

  DB2 目前支持以下协议:

  ● TCP/IP

  ● NPIPE

  对于到主数据库(如 DB2 for z/OS 和/或 DB2 for iSeries)的连接,必须具备使用 Distributed Relational Database Architecture(DRDA)的 DB2 Connect。

  2、为远程应用程序连接准备您的 DB2 数据库

  在 DB2 客户机(应用程序)能够连接到数据库之前,您必须确保服务器端通信得到了恰当的设置,可接收连接请求。要为 TCP/IP 连接准备服务器,您需要设置一个 TCP/IP 监听器,方法如下。

  (1)、 使用以下命令设置 DB2 配置文件注册库 DB2COMM,使实例能够监听 TCP/IP 的连接:

db2set DB2COMM=TCPIP

  (2)、使用正确的端口号更新数据库管理器配置参数 svcename,如下所示:

db2 update database manager configuration using svcename 50000

  (3)、数据库管理器配置参数 svcename 并非动态,因此您必须停止并重启实例,以使 TCP/IP 监听器启动,如下所示:

db2stop
db2start

  3、使用 DB2 Configuration Assistant

  DB2 Configuration Assistant 提供了用户友好的向导和图形化界面,可配置您或您的应用程序将使用的环境。通过 Configuration Assistant,您可以:

  ● 添加一个新的数据库连接

  ● 更新数据库连通性信息

  ● 查看并更新数据库管理器配置参数

  ● 查看并更新 DB2 配置文件注册库

  ● 将应用程序绑定到数据库

  ● 更新 Call Level Interface(CLI)设置

 4、配置数据库连通性的三种方法

  在 DB2 Configuration Assistant 中,有三个选项可用于设置数据库连接。您可以:

  ● 为 DB2 数据库搜索网络

  ● 使用 DB2 访问配置文件

  ● 手动配置连接

  5、通过搜索网络自动配置数据库连通性

  DB2 Discovery 搜索并定位您的网络上的 DB2 服务器,您可以选择使用搜索 或已知 发现方法。

  搜索方法将在网络中搜索任意 DB2 服务器。这种方法需要花上一些时间才能返回结果。

  如果您知道一些关于希望定位的 DB2 服务器的信息,则可使用已知方法,并提供数据库或服务器名称之类的信息来约束搜索。

  DB2 允许某些 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 被禁用也是如此。

 6、使用 DB2 访问配置文件自动配置数据库连通性

  如果您要为 1,000 台或更多的工作站设置 DB2 客户机/服务器连通性,那么您会怎么做?您当然可以前往每一台工作站,使用Configuration Assistant 中的发现方法,但可能要花上很长一段时间才能完成这个任务。在此类情况下,您应考虑使用 DB2 访问配置文件。

  访问配置文件中包含客户机配置与 DB2 服务器的连通性时所必需的信息。访问配置文件有两种类型:

  ● 服务器访问配置文件 是在 DB2 服务器上生成的。它包含服务器上定义的全部或选定的部分实例和数据库的相关信息。

  ● 客户机配置文件 是在 DB2 客户机上生成的。它包含客户机上已编目的实例(也称为节点)和数据库的相关信息。

  让我们逐步地看一下 DB2 访问配置文件方法。

  (1)、使用 Configuration Assistant 将信息导出到访问配置文件(该文件就是一个 ASCII 文件)。

  (2)、将导出的文件发送给客户机。

  (3)、在客户机上使用 Configuration Assistant 将文件导入 DB2 客户机。

  第三个步骤也可以使用命令实现:

db2cfimp access_profile_name

  7、手动配置数据库连通性

  如果您了解配置连通性所必需的所有信息,那么可以使用 Configuration Assistant 中的 Add Database 向导。

  (1)、必须首先编目节点(或 DB2 服务器)与实例的结合。

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

 8、列举节点和数据库目录  要在 node 目录中列举服务器与实例的结合,可使用如下命令:

db2 list node directory

  要列举 database 目录,可使用如下命令:

db2 list database directory

  9、附加到实例并连接到数据库

  通过编目节点和数据库设置完客户机/服务器连通性后,您可附加到实例以进行实例级管理任务,也可连接到数据库以读取该数据库中的数据或向数据库写入数据。

  要附加到 DB2 实例,可使用 DB2 命令 attach,如下所示:

attach to nodename user username using password

  附加到实例后,您可在该实例上执行管理任务,例如:

  ● 创建和删除数据库

  ● 检索、更新和重置数据库管理器及数据库配置参数

  ● 管理数据库监控程序

  ● 备份、还原和前滚数据库

  ● 强制用户和应用程序与实例中定义的数据库断开连接

  要连接到数据库,以选择、插入、更新或删除数据,您必须首先通过以下方式连接到数据库:

connect to database_name user username using password
[new new_password confirm new_password ]

  连接到数据库之后,就可以进行数据库的相应操作了。

posted on 2008-03-11 14:04 megax 阅读(172) 评论(0)  编辑 收藏 引用 所属分类: 转贴收集

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理