DB2 9 管理 第 1 部分:服务器管理
一、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 命令及函数在其中执行。您可将实例视为管理对数据库文件的访问的服务或守护进程。在一台服务器上可定义多个实例。各实例独立于其他实例,也就是说所有实例均可分别管理、操纵及调优。
要在 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)
待续……