第2 章 新手入门(摘自: DB2 9 FOR LINUX,UNIX,WINDOWS数据库管理认证指南(原书第6版) )
DB2 软件安装
使用DB2 命令行处理器
创建实例
建立DB2 环境
实例管理
本章通过概览如何建立一个DB2 服务器来开始学习DB2 。本章首先讨论在不同操作系统下的DB2 安装过程,特别是在Windows 操作系统环境下的DB2 安装过程。 另外,在本章中还将介绍分布式的安装方法。如果用户计划在整个网络中安装DB2 产品,那么使用基于相应文件的安装将会为用户带来很多便利之处,诸如快捷、简化的安装部署等等。同时,对于一个DB2 产品的多个相同的副本和配置也可以使用该安装响应文件系统架构。
在DB2 产品安装完毕以后,系统将会检测安装过程所创建的环境。这需要从全局、用例以及用户级别等不同角度去理解对DB2 进行管理的方法。DB2 数据库是在数据库服务器的一个实例当中创建的,因此本章还将介绍在数据库服务器上多个实例的管理,包括实例管理的命令和工具。
211 产品安装
在本节中,我们将讨论在Linux 、Windows 和UNIX 环境下安装DB2 的过程。虽然在这些平台上的DB2 安装过程有些差异,但在安装完成之后,这些环境下的DB2 数据库管理过程是非常相似的。 在DB2 安装过程中,安装进程会自动检测系统上使用的通信协议是TCP/IP 还是命名管道并对DB2 自动进行默认配置。
21111Windows 环境下的安装
本节将讨论在Windows XP 工作组版环境下安装DB2 的过程。
在Windows 操作系统上进行DB2 安装之前,需要保证执行安装过程的用户具有以下属性:
. 应该被定义在本地机器上。
. 定义为本地管理员组中的成员。
. 需要具有ACT AS PART OF THE OPERATING SYSTEM 的高级用户权限。
. 确定操作系统满足安装DB2 9 的基本需求,如内存、磁盘空间等。常见的一些安装DB2 9 的流行的操作系统需求请参见IBM 网站www.3061ibm1com/software/data/db2/udb/sysreqs1html 。
. 虽然不是强制性要求,DB2 在安装时会推荐用户关闭所有程序以便安装程序可以顺利地更新操作系统中的某些文件而不需要重启系统。
一般情况下,安装DB2 数据库服务器和DB2 补丁包应用程序的时候,需要访问Windows 的系统注册表以及Windows 服务,因此需要ADMINISTRATORS 组的账户来完成安装过程。在DB2 9 中,需要一个属于ADMINISTRATORS 组的账户的限制得到了进一步的提升。属于POWER USERS 或者USERS 组的用户要使用Windows 的提升权限功能来执行安装。为了使用该特性,需要用户拥有管理权限来提供设置,同时在提升功能使用之前,为该用户授予特殊的权限。用户可以使用Windows 组策略编辑器(GPEDIT1MSC )来提升用户账号特权。这部分内容可以参考DB2 9 的相关文档。
注意:自从DB2 8 发布以来,DB2 客户端以及DB2 Connect PE 已经支持非管理员组的安装。因此这里就不需要为这些产品的安装使用提升特权的方法。在Window XP 下安装DB2 ,先将DB2 光盘插入光驱,光盘上带有的自动运行功能会自动启动安装程序。安装程序将根据操作系统的语言类型选择相应语言支持的安装程序(用户也可以忽略这个功能直接在安装程序中使用不同的语言,如图2.1 )。图2.1DB2 启动面板如果安装程序由于某种原因没有自动启动(或者用户想通过部署在局域网络中的软件安装程序的映像来之执行安装程序),可以在操作系统的命令窗口执行下列命令:
X:/SETUP1EXE ,其中X 代表光盘驱动器的盘符。
在启动面板中,用户可以查看安装先决条件、迁移信息、版本发布信息以及安装产品。单击Install a Product 开始安装DB2 ,并打开安装DB2 产品窗口(图2.2 )。图2.2 产品安装窗口上图中显示出可供安装的DB2 产品。在这张CD.ROM 上有DB2 企业服务器版本(DB2 企业版)、DB2 Client 以及提供给Visual Studio 2005 的IBM 数据库add.in 插件。
用户通过单击相应的Install New 按钮来执行不同产品的安装,紧接着弹出相应的欢迎窗口,单击Next 继续安装(图2.3 )。
提供给Visual Studio 2005 的IBM 数据库add.in 插件将在本地Visual Studio 2005 下安装一些DB2 功能组件,以促进在1NET 环境中的应用程序的快速开发。注意:如果DB2 企业服务器版安装过程中检测到本机已装有Visual Studio 2005 版本,安装程序将会推荐用户安装该plug.in 插件。如果用户想为已安装有DB2 服务器或客户端版本机器中增加1NET 组件的支持,那么可以点击相应的Install 按钮进行安装。接受许可证条款后点击Next 继续(图2.4 )。
接受安装DB2 产品所规定的条款之后,用户可以在图2.5 中选择所执行安装程序的类型。图2.3DB2 企业服务器版欢迎窗口图2.4DB2 许可证协议窗口DB2 9 提供了以下三种安装类型供用户在安装过程中方便地控制所要安装的部件。它们分别是:
. 典型安装
典型安装方式安装最基本的数据服务器功能、数据库管理工具以及绝大多数的产品功能。典型安装也可以创建和配置默认的DB2 实例(该实例名为DB2 )。这种类型安装大约需要350MB~560MB 的磁盘空间。
. 压缩安装
压缩安装方式仅仅安装最基本的数据服务器功能以及有限的工具。使用这种安装方式,在安装过程中只执行很少数量的配置程序。不推荐新手在第一次安装DB2 的时候使用这个安装选项。该类型安装根据系统平台的不同大约需要260MB~400MB 的磁盘空间。图2.5 选择安装类型. 定制安装
定制安装方式给用户提供了在安装过程中自由选择安装组件的方式。在默认状态下,定制安装和典型安装实际是相同的,除非用户进一步通过增加或者移除那些不属于典型安装方式下的默认组件来定制安装组件。正因为如此,这种方式下所需要的磁盘空间会根据用户选择的组件不同而相差非常大。定制安装方式下需要的最小磁盘空间大约为260MB ,最大约为600MB 。
用户可以在定制安装方式下选择的组件和功能如图2.6 所示。图2.6 安装组件和功能图2.6 中展示了典型安装方式下所有的默认组件和功能。这些默认的服务选项作为用户选择定制安装的初始选择。比如,DB2 企业版中的卫星同步功能是不包含在典型安装方式下的组件,并且在定制安装的默认方式下用X 来表示当前的安装方式下该组件没有被选中。注意:DB2 安装过程中安装组件的选择只能在用户选择自定义安装方式下才会出现。实际上这个定制安装组件的选项窗口是在安装过程中的图2.7 出现之后才会显示出来,之所以在这里讲述就是为了用户能方便地查看到在典型安装方式下默认安装的组件。在这里推荐用户选择典型安装方式,选择安装类型后点击Next 继续。本章其余部分的内容将假定用户采用典型安装的方式进行安装,如图2.7 所示。
图2.7 选择安装操作响应文件生成器工具(DB2RSPGN ,DB2 Response File Generator )是在安装过程中产生的(图2.7 ),用户也可以在DB2 安装程序之外访问这个文件。用户可以在这个界面中选择创建包含在安装过程相应选择信息的响应文件(包括用户在定制安装方式下包括或排除或两者兼而有之的组件信息)。在安装程序后台,DB2 使用DB2RSPGN 工具来创建响应文件。如果用户在一个已经安装好的DB2 数据服务器中运行DB2RSPGN 工具,该工具创建的响应文件不但可以安装在同一个DB2 数据服务器上,还可以模拟DB2 注册信息、数据库管理配置设置、数据库设置、数据库连接等信息。
DB2RSPGN 工具对于所有的DB2 数据服务器以及客户端安装来说都是一个创建安装脚本的非常好的方法(不论是本章节中讲述的用在现有的安装还是作为新的服务器安装的一部分)。它可以作为很多有经验的数据库管理员经常使用的工具包中的一部分。
沿用本章中的这个例子,选择Install DB2 Enterprise Server Edition on this computer and save my settings in a response File 的选项按钮,并输入响应文件存放路径,点击Next 继续,接着打开安装路径选择对话框(图2.8 )。
在上图中,在Directory 输入框中输入DB2 的安装目录,点击NEXT 进入下一窗口。或者点击Change 改变DB2 的默认安装目录(DB2 的默认安装目录是C:/Program Files/IBM/SQLLIB ),点击Disk Space 检查在目标驱动器中安装DB2 所需磁盘空间。图2.8 选择安装文件夹设置好安装目录后,紧接着需要对DB2 管理服务器(DAS ,DB2 Administration Server )进行相应的配置(图2.9 )。DAS 是用于协助用户对数据库服务器进行管理任务的管理控制点。用户使用配置助手、控制中心等DB2 9 的管理功能的前提是必须要运行DAS 。一般情况下,DAS 可以协助控制中心和配置助手进行以下管理任务:图2.9 为DB2 管理服务器设置用户信息. 允许对DB2 数据库实例进行远程管理
. 提供作业管理功能,以及对包含DB2 数据库管理和操作系统命令的脚本进行调度的能力。
. 使用任务中心为位于本地和远程主机上的作业定义相应的作业调度、查看已完成作业的结果以及执行其他的管理任务。
. 提供为DB2 数据服务器内置的Discovery 功能搜集DB2 实例、数据库以及其他的DB2 数据服务器的相关配置信息。这些信息将被控制中心和配置助手工具所使用,用以简化和自动完成DB2 数据库客户端连接的配置工作。
DB2 安装程序允许用户指定一个已经存在的用户来使用DAS 服务,也可以创建一个新的账户。在创建新账户的时候,必须以一个具有管理域用户组和域用户权限的用户登录域。
推荐使用在本机上属于ADMINISTRATORS 组的用户账号(只要选择其中一个即可)。此外,DB2 还将配置一些其他的服务,此时最佳做法就是选中Use the same user name and password for the remaining DB2 services 选项来将这些服务指定为上面提到的那个账户来操作,点击Next 继续安装(图2.10 )。注意:如果用户在安装过程中选择不对DAS 进行配置或者执行压缩类型的安装方式,可以在以后使用DASCRT -u<das_user_account> 命令来创建DAS 。不管怎么样,使用DB2 安装程序来做这些事情往往是事半功倍的。图2.10 配置默认的DB2 实例在典型安装方式下,安装程序会创建一个默认的DB2 实例。该实例一旦被创建,安装程序会自动图2.11DB2 实例启动配置选项检测安装配置在主机上的通信协议,用户也可以自己选择要使用的通信协议。同时,DB2 会为每个检测到的通信协议的相应参数生成默认值。用户也可以忽略这些选项通过点击Configure 来生成这些参数值。
需要指出的是,DB2 安装程序会根据用户系统上安装的通信协议来安装和配置DB2 实例。如果安装程序没有检测到任何一个协议,Do not configure at this time 单选框将被高亮显示(图2.11 )。
DB2 安装程序将会为TCP/IP 服务名和端口号参数生成默认值,这两个参数的值在所安装的主机上必须是惟一的。指定的TCP/IP 端口号被用作来监听来自于DB2 客户端的请求。因此推荐使用安装程序生成的默认值,否则它们有可能与系统上的其他服务冲突的可能。用户也可以使用默认的DB2 实例的startup 特性来设置该实例是在操作系统启动时自动激活,还是需要手工通过db2start 命令来激活(也可以通过在Windows 任务栏上的快捷访问图标来激活)。
推荐用户使用默认选项并点击Next 继续。
DB2 任务中心以及调度服务都需要使用数据库来存储元数据(包含调度过的计划、存储后的计划等)。元数据存储在被称做是DB2 工具目录的表中。为了更好的使用DB2 管理工具丰富的功能,强烈推荐通过创建DB2 工具目录来进行调度(图2.12 )。图2.12 准备DB2 工具目录虽然在同一系统上可能存在多个DB2 工具目录,但是在任何一个特定的时刻使用DB2 调度程序时只能有一个DB2 工具目录被激活。
在安装过程中选择Prepare the DB2 tools catalog 选项创建DB2 工具目录,点击Next 继续。用户可以选择一个已存在的数据库或指定一个新的数据库来存放DB2 工具目录的数据。(这个新的数据库将在随后安装程序中创建,用户在这里也可以指定所要创建的数据库的模式名称)。
DB2 管理服务器能够存储一个联系人列表。这样DB2 管理服务器就可以在特定事件发生时通过Email 或传呼机通知数据库管理员,如默认的健康指示器数值被超过时。联系人列表可以本地存储在每台服务器上,也可以作为一个全局联系人列表存储在某台特定的由DB2 管理服务器维护的服务器上。
用户可以使用设置通知信息窗口来配置该联系人列表,如图2.13 所示。
选择Set up your DB2 server to send notifications 选项来指定需要设置的SMTP 服务器以便给管理联系人发送Email 或者提示信息(稍后将会介绍),并在Notification SMTP server 输入框中输入SMTP 服务器TCP/IP 主机名。
建议选择Local.Create a contact list on this computer 来将管理联系人列表存储在本地系统上。该列表将会被驻留在该系统上的全部实例所使用。如同前面提到的那样,这个列表也可以被其他服务器使用。要对远程通知列表进行配置,选择Remote.Use an existing contact list on another DB2 server 并且在Remote DB2 server 选项中输入远程服务器的主机名,并点击Next 继续。图2.13 为DB2 服务器设置通知信息接下来,指定健康监控器通知的联系人信息窗口就会弹出(图2.14 )。如果用户无法确定在本窗口内所需的信息,则可以通过点击取消Set up your DB2 server to send notifications 选项框来跳过这一配置步骤(图2.13 )。如果想在安装后设置相应的通知信息,请参阅《DB2 Command Reference 》一书中关于UPDATE ADMIN CONFIG 命令的详细介绍。图2.14 指定DB2 健康监控器通知的联系人信息在上图中用户可以为DB2 健康中心所搜集到的警告信息配置联系人信息,点击Next 继续。如果用户不确定在此窗口中所需要配置的信息,可以通过选中Defer this task until after the installation is complete 选项跳过这一步骤。要了解在安装过后启动消息通知操作方法,参见《DB2 Command Reference 》一书中关于UPDATE ADMIN CONFIG 命令的详细介绍或者使用健康中心的联系人列表功能,该功能在Tools 菜单项下。
接下来,在图2.15 中将显示DB2 对象操作系统安全窗口。图2.15 指定联系人信息为了使用户所安装的DB2 环境尽可能的安全可靠,需要在系统主机的文件系统级别上指定特定的用户组来访问DB2 对象,如文件、文件夹、注册表键值以及其他一些对象。
激活操作系统安全特性有助于保护用户的DB2 对象不会被非授权的用户组进行必要的文件级别的访问。
同时,用户也可以指定是否需要仅限于在DB2 管理员组和DB2 普通用户组中才能访问DB2 对象。DB2 管理员组拥有本机上所有DB2 对象完全访问权限,而DB2 普通用户组则只能通过Windows 操作系统来读取和执行DB2 对象。
选择Enable operating system security 选项来激活该安全特性。接受DB2 管理员组和DB2 普通用户组的默认值,当然,如果有必要的话,用户也可以自行设置该信息。为了获取更好的安全性,DB2 administrators group 和DB2 users group 的值最好不要完全一致,接下来点击Next 继续下一窗口。
接下来,文件复制开始以及创建相应文件的窗口将会显示出来(图2.16 ),该窗口通常包含了接下来安装程序所做内容的汇总信息。
在上图中,DB2 9 企业版将会在用户点击Finish 按钮之后开始安装。如果用户是在Windows 平台的服务器上安装DB2 9 企业版,那么在图2.17 的窗口中将会增加安装IBM Add.ins for Visual Studio 2005 的附带选项。选中对应的选项后,在点击Finish 之后,IBM Add.ins for Visual Studio 2005 安装程序将会首先被执行。
第一步是在DB2 数据库服务器( 图2.18) 安装结束之后自动开始的一个配置工具,同时也可以在安装完毕之后在DB2 程序菜单中的Set.up Tools 菜单组中运行该工具。
用户可以通过该工具来完成以下任务:
. 创建Sample 样本数据库。
. 创建用户自己需要的数据库。
. 配置对远程数据库的访问。图2.16 安装选项汇总图2.17 安装完成. 连接数据库或远程服务器。
. 获取在不同开发工具环境下创建应用程序的帮助信息,如IBM Rational 开发工具、Microsoft Visual Studio 1NET 、Eclipse 以及DB2 Developer Workbench 等。
. 执行基本的数据库管理任务。
. 从海量资源中搜索DB2 信息。
. 检测更新以及选择安装。
推荐用户在此时查看每一个安装选项。为了配合本书,用户在这里请选择First Steps 主窗口左面列表框中的Database Creation 选项并点击创建样本数据库按钮来创建样本数据库(图2.19 )。图2.18 对于DB2 新手来讲First Steps 是一个很不错的工具图2.19 使用First Steps 工具创建样本数据库在DB2 9 中,可以自由选择使用或者不使用XML 数据来创建样本数据库。如果用户需要跟随本书中的例子进行学习的话,在接下来的窗口中就要确定选中create the SAMPLE database with the XML data 选项(图2.20 )。图2.20 使用First Steps 工具创建XML 数据格式的样本数据库在默认情况下,样例数据库在创建时所使用的是Unicode(UTF.8) 代码页, 可以满足所有的pureXML 需求。
21112Linux 和UNIX 环境下的安装
以图形方式驱动的DB2 9 安装程序同样也可以在Linux 和UNIX 平台上运行。同时在Linux 和UNIX 系统平台下也支持使用响应文件来进行分布式安装(关于响应文件的内容将在本章中稍后的部分讲述)。在该系统平台下DB2 安装程序的初始化过程生成的响应文件所存储的数值和参数实际上与上节提到的在Windows 平台上生成的响应文件的内容是一样的。
对于DB2 版本9 ,数据服务器的安装不再是传统的操作系统的程序包,因此用户不必像以前一样去使用操作系统命令来安装DB2 数据库服务器。比如AIX 环境下用户不再使用installp 命令来安装DB2 产品了。
Linux 和UNIX 环境下的DB2 安装程序,管理员在安装的时候可以从以下几个方法中选择一种进行安装:
.db2setupDB2 产品安装时推荐的安装方法,它在使用的时候有些类似Windows 平台下的图形驱动安装程序,可以对即将安装的DB2 实例自动检测和配置通信协议,而其他的安装方式则需要用户手工配置系统参数。在Linux 和UNIX 环境下使用db2setup, 需要设置Xserver 来显示GUI 。(该工具可以在www1freedesktop1org/wiki/Software/Xserver 或其他相关网址下载)
.db2_install 安装脚本该工具用于Linux 和UNIX 系统平台下系统管理员进行手工安装DB2 。在使用该工具进行安装时不会创建任何用户或者用户组、实例及其配置。该安装方式非常适合于在安装过程中需要更好的控制安装过程或者用户对DB2 安装程序相当熟悉的情况下。
.db2_install 安装脚本将会按照用户需要安装DB2 产品,在默认环境下是英语语言支持。如果用户需要安装过程中的其他语言支持,可以在安装命令后加-L 的参数。此外,使用db2_install 安装脚本并不会给用户像在db2setup 安装程序下使用自定义安装方式那样自由的选择或取消选择安装组件的能力。实际上,使用db2_install 安装脚本的结果实际上是在做取舍选择:在安装过程中用更多的组件控制和自动配置过程来换取在用户指定的语言支持下用db2_install 安装所有组件情况下的较少的组件控制。相比之下,db2setup 安装程序可以使用户在选择自定义安装方式进行安装的过程中拥有更多地控制权。
. 响应文件安装响应文件是一个包含了安装选项和配置的ASCII 码文件。该文件可以被传送给db2setup 程序,然后安装程序会按照文件中所设定的值进行安装。该安装类型在本章后面会做专门介绍。
. 此外还有一种提供给用户在操作系统环境下去执行手工安装的工具。用户可以通过安装相应的有效内容文件(payload files )来执行手工安装。DB2 有效内容文件是压缩文件,该文件包含可安装组件所有文件和元数据。一般情况下不推荐此安装方式,以为在此安装方式下不能自动检测和配置相应信息。注意:在安装基于Linux 服务器的DB2 软件之前,用户应确保自己的Linux 发行版本满足DB2 数据服务器的Linux 的验证标准,有关支持Linux 分发产品的最新信息,请使用浏览器访问以下网址:www-3061ibm1com/software/data/db2/linux/validate/ 。到目前为止,本章详细介绍了在Windows 系统中安装DB2 9 数据服务器的过程。为了内容完整起见,接下来将介绍在Linux 或UNIX 环境下的安装过程。当然,这与在Windows 下的安装介绍的详细程度不能相提并论。
在Linux 或UNIX 下开始DB2 安装程序之前,用户首先要确认系统是否满足以下要求:
. 确定所选择的系统满足DB2 文档或相应的README 文件中所列出的内存或磁盘空间的要求。
. 必须拥有root 用户权限来执行DB2 的安装。
. 必须有一个支持图形用户界面的X windows 软件来执行db2setup 工具的运行。X windows 服务器必须运行起来并确保用户已经正确设置了显示模式。比如export DISPLAY=912611631144:0 。
要运行db2setup 来安装DB2 9 ,需要以下几个步骤:
. 作为root 用户登录到操作系统。
. 安装CD.ROM 文件系统,通过输入cd /cdrom/disk1 命令切换至存储 DB2 数据库产品CD 的安装目录,其中 cdrom 表示 DB2 数据库产品 CD 的安装点。
如果用户拥有 DB2 数据库产品映像,那么在安装之前必须解压缩产品文件。常用的解压缩软件是GZIP ,下面就是一个解压缩产品文件的例子:在此之后需要解压产品文件,一般使用tar 命令来完成,如:. 输入1/db2setup 命令来启动DB2 安装程序,接下来的步骤与在Windows 环境下大体相同。
安装结束以后,默认情况下,DB2 数据库产品将安装在下面的其中一个目录中:
AIX 、HP.UX 和 Solaris /opt/IBM/db2/V911
Linux/opt/ibm/db2/V911
当然,用户可以指定自己的 DB2 数据库产品安装路径。
21113 多副本的安装
DB2 9 还可以允许用户在同一台服务器上安装和运行多个DB2 副本。该功能可以在Linux 和UNIX 环境下以某种形式运行(同时支持多个版本的DB2 数据服务器以及FixPacks 修补程序维护),但是不支持Windows 版本下DB2 的安装。另外,使用替代的补丁包并不总是代表该产品的意图。在DB2 9 中,这一切的改变连同用户可以安装的多个版本和产品级别的代码一起,使它们共存,并列在任意的平台之上。
这种多版本支持以及DB2 数据服务器维护级别的能力为管理员提供了以下便利:
. 具有为不同业务功能运行独立的DB2 产品副本的能力。例如,某种业务可能需要立即使用某些新功能,同时其他的业务并不需要这么做。因为这么做可能会带有一定的风险,这些风险主要表现在转换使用新的代码时通常要经过一段漫长的质量保证过程以及产品宕机的风险。
. 在将生产数据库移至更新版本的 DB2 产品之前,能够在同一台计算机上测试。
. 可以支持不同类型的应用程序包,如ERP (Enterprise Resource Planning )、SCM (Supply Chain Management )和PLM (Planning and Logistics Management )产品等等。举例来讲,用户可以把SAPTM 产品运行在DB2 的某一级别上,而把SiebelTM 产品运行在另一级别上。
. 用户甚至可以把DB2 8 的副本与9 同时并存,但在这种情况下,用户应该注意一些事项。比如它们之间无法共享1Net Provider 、每个副本都必须具有惟一的实例名等等。关于这些内容请参考DB2 相关文档。
这里所指的DB2 副本是用于在某指定地点的同一台服务器上的一个或多个DB2 安装产品。当用户服务器上存在一个以上的DB2 副本的时候,用户必须在执行维护时或者执行日常的连接管理等作业时去指定对应的副本来进行管理。
现在,还是回到DB2 安装程序界面上。假设需要在一台已经安装了DB2 9 的机器上运行安装程序时,安装界面比较类似于图2.21 展示的那样。
在图2.21 中可以看到,用户可以选择work with the existing 也可以通过Install New 来安装另一个DB2 副本。
在安装了第二个DB2 副本之后,可以看到该副本的名称以及它的相关链接(如开始菜单中的菜单项)。每个链接都对应着一些工具和实用程序,这些工具都与自己默认的DB2 副本相对应。
如图2.22 所示,当用户从DB2COPY2 文件夹中启动CLP 会话的时候,将会激活该副本下的对应窗口。此外还可以看到DB2COPY1 这个数据服务器已经存在了一个样本数据库(在本章节前些部分已经创建了该数据库),而DB2COPY2 还没有该样本数据库,此时就可以通过db2sampl 命令来创建该样本数据库。图2.21 在单一服务器上多个DB2 9 副本的安装图2.22 使用对应的开始菜单项来控制相应DB2 副本请注意图2.22 中每个安装了多个DB2 副本的服务器只能有一个默认的DB2 副本。在Windows 系统环境下,用户可以使用DB2SWTCH 命令来为服务器指定默认的DB2 副本。但该命令执行的时候,DB2 副本选择向导界面将会被激活(该向导可以从IBM DB2 的开始菜单项中找到),如图2.23 。图2.23 改变默认DB2 副本DB2SWTCH 命令有两个参数可以用来作为激活此向导的选择项目。使用-l 参数用于列出当前服务器上所有的DB2 副本信息,而使用参数-d 用于设置当前服务器的默认DB2 副本。下面的命令清单则揭示了如何在Windows 环境下切换默认DB2 副本的方法。在UNIX 和Linux 的系统环境下,可以通过db2ls 命令列出安装在系统上的 DB2 产品和功能部件。
如果在用户的同一个服务器上运行着多个DB2 的副本,那么需要注意的是DAS 在此种情况下是如何进行工作的。DAS 是 DB2 中的一个独特组件,它仅限于使一个版本处于活动状态,而无所谓在同一台计算机上安装了多少个 DB2 副本。这也意味着在任何时候用户只能使用DAS 来管理一个当前运行的DB2 副本。这时候就需要使用DASUPDT 命令来完成在DB2 副本之间切换DAS 。注意:如果需要在一个已经安装了DB2 版本8 的服务器上安装DB2 版本9 ,需要注意要将DAS 迁移到版本9 的格式。这是因为:DAS 在版本9 上可以管理版本8 和版本9 的实例,而版本8 的DAS 则只能管理版本8 的实例。迁移DAS 可以使用DASMIGR 命令。21114 响应文件安装
响应文件安装是一种可以使批量安装多个DB2 产品副本变得更加简单的一种安装方法。如果用户计划通过网络来安装DB2 产品的话,基于网络的响应文件安装可以达到非常显著的效果。通常情况下,可以使用这种安装手段来完成连接到DB2 服务器上的DB2 客户端的安装。
在开始DB2 产品安装之前,首先要创建一个称为响应文件的ASCII 文件。该文件可以用来定制安装和配置数据,进而可以使安装程序自动进行。通常状况下,这种安装和配置数据需要在交互式安装模式下要进行一些信息的输入,而通过响应文件,整个安装过程都可以在没有任何外界干预的情况下自动完成。
响应文件包含了在DB2 安装过程中所需要的各种信息,如安装路径、要安装的产品和组件信息等。此外,通过响应文件,还可以对以下参数进行设置:
. 全局DB2 注册表变量
. 实例变量
. 实例数据库管理器配置参数
用户可以通过响应文件在网络中的每一个工作站系统上安装具有完全相同配置的DB2 产品。比如,可以定制安装预先配置好数据库连接信息的DB2 客户端的响应文件。紧接着就可以将此文件分发到要安装此产品的每一个工作站系统上。
用户可以选择以下方法来创建响应文件:
. 修改产品光盘中提供的响应文件的样本。
. 使用Windows 环境下的响应文件生成器(DB2RSPGN )。
. 使用本章前面提到DB2 安装向导程序。
样本响应文件
DB2 光盘中包含了一个带有默认选项的样本响应文件可供用户随时使用。该样本响应文件存放在db2/platform/samples 目录下。切记在选择目录的时候要选择与操作系统和处理器架构相对应的目录。
用户可以将样本响应文件复制到硬盘上并根据自己的需要更改相应参数。响应文件中的参数的详细说明请参见《Installation and Configuration Supplement 》。
下列样本响应文件是存放在DB2 Enterprise 9 for Windows 的安装光盘中的,对于每一个产品和平台所包含的样本响应文件都不尽相同。
.db2ese1rsp ——DB2 企业服务器版的响应文件。
.db2vsai1rsp ——用于IBM add.ins for Visual Studio 2005 的响应文件。
.db2client1rsp ——DB2 客户端的响应文件。
.db2un1rsp ——用于从系统中卸载DB2 的响应文件。
.db2fixpk1rsp ——用于补丁包安装的响应文件。注意:DB2 9 企业版还提供了额外的两种相应文件专门用于DB2 的数据库分区功能(DPF ,Database Partitioning Feature )。其中,db2eseio1rsp 用于在DPF 环境中实例自身的节点,而db2esenn1rsp 用于新的节点。这些响应文件只能应用于在分区数据库环境下部署DB2 的情况,这部分内容也超出了本书所讲述的内容范畴。现在让我们一同回顾下图2.7 中关于生成名为DB2ESESampleResponseFile 的响应文件的选项部分。当在DB2 安装过程中这个选项被选中时,安装程序生成的响应文件的部分内容如图2.24 所示。图2.24Windows 环境下的响应文件注意:用户可能会关心使用密码来作为响应文件安装的一个组成部分的内容。使用DB2 安装程序来生成响应文件的一个最好作用是帮助用户对密码部分进行加密。在图2.24 中的样本响应文件中可以看到DB21PASSWORD 关键字已经做了加密的处理。响应文件生成器(适用于Windows 系统环境)
响应文件生成器工具可以根据已经安装并配置好了的DB2 系统来创建响应文件和实例配置文件。通过响应文件生成器创建的响应文件,用户可以在其他的机器上重新建立配置完全相同的DB2 系统。这个是截至目前用以重新分发用户已经事先设置和配置的DB2 代码的最好的方法。
例如,用户可以安装并配置一个DB2 客户端并通过网络来连接不同的数据库。一旦上述工作完成之后,用户就可以通过响应文件生成器来为每个实例创建响应文件和配置文件。
要想通过响应文件生成器来创建一个响应文件,应该执行下面这个命令:响应文件会被创建在用户用-d 选项指定的路径当中。具体的文件名将依赖于系统所安装的DB2 产品。例如,如果安装的是DB2 企业版,那么生成的响应文件名将会是DB2ESE1RSP 。
除了响应文件之外,在系统中存在的所有实例的实例配置文件也将生成在相同的目录当中(用户也可以通过-i 参数来设置响应文件生成器仅仅为指定的实例生成实例配置文件)。每个实例配置文件中包含所有的DB2 注册表变量、数据库管理器配置参数、节点目录以及数据库目录等信息的设置。实例配置文件的命名以<name>1ins 形式出现。图2.25 中展示了一个实例配置文件的样例。图2.25 实例配置文件样例尽管系统中可能已经安装了多个 DB2 副本,但是,响应文件生成器将只为当前副本(即,运行 db2rspgn 实用程序的地方)生成响应文件。
如果用户计划安装和配置多个相同的DB2 产品(如DB2 客户端),仅仅需要在执行DB2 安装的时候指定安装响应文件来完成自动安装和配置。此时,由响应文件生成器所生成的安装响应文件将会自动调用每个实例的配置文件。用户只需要确定实例配置文件的路径与安装响应文件相同就可以了。
虽然该工具不能用于Linux 和UNIX 环境下,但是用户仍然可以通过配置助手、控制中心或者客户端配置文件导入(DB2CFIMP )和导出程序(DB2CFEXP )来生成实例配置文件,这些方法在Windows 环境下同样适用。
Linux 和UNIX 系统中,用户可以利用响应文件中CLIENT_IMPORT_PROFILE 关键字设置在安装过程中自动调用实例配置文件。使用此方法与使用db2rspgn 的不同之处在于响应文件生成器会在生成的配置文件中自动设置CLIENT_IMPORT_PROFILE 关键字,而在Linux 和UNIX 环境下用户需要自行设置该关键字,以便能够在安装过程中调用该实例的配置文件。
使用响应文件进行分布式安装
通过使用响应文件,整个安装过程可以在没有人为因素干扰的情况下完成。用户可以通过共享光盘驱动器或者硬盘驱动器使DB2 安装文件和响应文件能够被网络上其他要安装DB2 系统的主机所访问。要使用响应文件进行安装,用户只需要在正常安装过程中利用DB2 安装程序指定要使用的响应文件即可。例如,在Windows 系统环境下,用户可以通过运行下面的命令以响应文件的方式来开始安装DB2 。/U 选项用于指定安装过程所需的配置信息应当从相应的响应文件中得到。/M 选项表明在DB2 安装程序使用进度条的显示方式(这个方法非常适合嵌入在DB2 数据库服务器安装程序中的应用程序的安装,比如SAP 的应用程序)。表2.1 中显示了其他选项的说明。表2.1 安装程序选项
参数说明/U 指定相应的响应文件名称,该参数是必需的/N 指定安装程序名称,在响应文件中该名称值在响应文件被忽略/L 指定完全合格的日志文件名称,安装信息以及安装过程发生的错误信息记录在内,可选选项/F 在安装之前强制停止所有的DB2 进程,可选选项/T 创建一个安装跟踪信息文件,可选选项/C 确保setup1exe 在开始安装之后立即退出,可选选项/P 修改产品的安装路径。指定该选项之后将会忽略在响应文件中指定的安装路径,可选选项/M 与-u 一起使用以便在安装过程中显示进度对话框,可选选项
欲了解其他详细信息请参阅相关DB2 文档。
21115 使用DB2 命令行处理器
我们曾在第1 章中简单介绍了DB2 命令行处理器(CLP ),本节将讨论如何在DB2 环境下使用DB2 命令行处理器以及操作系统的命令行处理器,通常操作系统的命令行处理器要在DB2 环境下使用都需要手工地在每条DB2 命令前添加db2 的命令前缀。同时这些命令同样也可以在DB2 命令编辑器中执行,命令编辑器在第1 章内容中已经讲过,它是一个面向用户的图形界面命令处理器。
如果用户计划使用操作系统的命令行处理器与DB2 之间进行交互使用的话(这在Windows 环境下也被称为是DB2 命令窗口),那么应当注意的是操作系统不会去分析用户所输入的SQL 语句以及有可能把部分SQL 语句错误地认成操作系统的命令去执行。不过,如果将所输入的SQL 语句或者DB2 命令使用双引号( “”) 括起来之后就会确保操作系统不会把双引号里面的内容错误解析了。
例如,下面的命令将会返回不同的操作结果。第一条将会返回STAFF 表中的所有行并且存储在文件名为20 的文件当中,而另外一条将会把STAFF 表中满足DEPT>20 条件的所有行进行标准输出。在DB2 命令行处理器中用户还可以通过在命令前面加上一个感叹号(!)作为前缀来执行操作系统命令。下面的代码所完成的就是在Windows 环境下列出c:/ 目录下的内容:如果需要输入的命令过长,超出了操作系统所允许的限度,可以使用反斜杠(/ )作为续行符。这样在DB2 命令行处理器当中就可以非常方便地与下一行的命令继续在一起作为一条命令使用。例如:在操作系统命令行处理器下也支持DB2 命令的续行符,不过用户必须在每条命令的开始处使用db2 前缀。所有DB2 命令的详细语法和解释都被归档在《DB2 Command Reference 》一书当中。注意:用户可以在www1ibm1com/software/data/db2/udb/support/manualsv91html 网站上下载PDF 格式的DB2 信息库文件,或者直接从在线信息中心publib1boulder1ibm1com/infocenter/db2luw/v9/index1jsp 访问这部分信息。此外,用户还可以通过命令行处理器的DB2 ? 命令来获得DB2 命令的语法和相关信息,如:
.DB2 ? command ——显示某条命令的相关信息。
.DB2 ? SQLnnnn ——显示某个SQLCODE 的解释信息。
.DB2 ? DB2nnnn ——显示某个DB2 错误信息的解释信息。
查看当前命令行处理器的设置,可以执行下面这个命令:图2.26 显示了命令行处理器的默认设置,这些设置既可以全局更新,也可以针对每个CLP 会话更新。
可以使用DB2OPTIONS 环境变量来修改这些默认设置。减号(- )后面紧跟选项字母表示使该选项在ON/OFF 状态之间切换。用户可以使用?选项来获取更多帮助,比如使用DB2 ? OPTIONS 命令可以显示所有的选项。
要为某些CLP 更新全局选项或者使用文件输入的方法来运行命令可以使用下面这条命令:图2.26CLP 选项设置DB2 CLP 分为前台进程和后台进程两部分。前台进程名为db2 ,后台称为db2bp 。后台进程用于维护与数据库的连接。如果想要释放该连接,可以使用TERMINATE 命令。如果只想终止一个交互式的CLP 会话,可以使用QUIT 命令(该命令不会释放与数据库的连接)。
Windows 环境下的DB2 CLP
Windows 平台不允许DB2 CLP 直接运行在操作系统命令窗口中。而在其他诸如AIX 操作系统中可以允许用户使用操作系统自身的CLP 并通过添加db2 前缀来完成DB2 命令的输入。如果要在Windows 操作系统的CLP 中输入DB2 命令,用户可以运行DB2 命令窗口进程来对CLP 进行初始化以便能够识别DB2 命令。DB2 命令窗口的功能与Window 命令提示符窗口比较类似,不过它只能用于处理DB2 命令。
用户可以通过DB2 安装程序组中的Command Line Tools 文件组的相应命令或者在Windows CLP 中通过执行db2cmd 来启动DB2 命令窗口(DB2 CW )。注意:为简单起见,本章中其余部分只要涉及DB2 命令窗口以及Windows 命令提示符窗口的部分都简称为CLP 或者称为本地操作系统的CLP 。DB2 CLP 与操作系统CLP 的最大区别就是DB2 CLP 不必在每个DB2 命令前面添加db2 的前缀。
另外,像我们在前面提到过的,DB2 命令编辑器可以用于输入DB2 命令。这是用于执行多条命令或语句、保存命令为脚本、命令重新调用、基本的编辑复制粘贴操作以及查看语句的解释信息等等的最常用的方法。
用户可以使用以下几种方法来运行命令编辑器,运行之后如图2.27 所示:
. 在操作系统CLP 中输入db2ce 命令。
.DB2 安装程序组中的Command Line Tools 文件组的相应命令。
. 使用控制中心(在CLP 中输入db2ccin )。图2.27DB2 命令编辑器命令编辑器是一个直观的工具,只需要点击Add 按钮来添加要进行维护的数据库连接,接下来的事情就水到渠成的了。推荐用户使用该工具输入命令以及学习它所提供的其他一些有用的功能。
212DB2 环境
在创建和使用DB2 数据库之前,用户需要对DB2 的环境有一定程度的了解。DB2 环境控制和管理者许多数据库和数据库相关的要素。如:
. 用于访问远程数据库的协议。
. 应用程序搜索数据库相关文件的路径。
. 分配给数据库和应用程序使用的各种缓冲区内存的大小。
. 特定情况下系统的行为。
.DB2 环境可以通过DB2 配置文件注册表、环境变量以及配置参数等机制来进行控制。
本节将讨论有关DB2 配置文件注册表和环境变量的相关内容,而关于配置参数的详细信息将会在本书的其余章节讨论。
21211DB2 配置文件注册表
DB2 环境中的许多设置都可以通过存储在DB2 配置文件注册表变量来进行控制。配置文件注册表的作用在于巩固DB2 环境,从而创建一个使很多影响到DB2 服务器以外的实例和数据库配置设置的关键性控制因素可以被集中管理的空间。配置文件中有许多注册表变量可以控制DB2 接口、通信参数等信息,因而具体的注册表变量可能随着系统平台的不同而稍有差别。
使用DB2 配置文件注册表可以用来改变DB2 数据服务器相应的操作。比如,用户可以用它来改变锁机制以解决并发问题,或者为C/S 通信指定具体的通信协议。而且通过修改配置文件注册表来调整服务器的系统环境是不需要重新启动就能直接生效的,这对一些老用户来讲无疑是一个福音。因为在老版本中,如果要用环境变量级别来修改数据库服务器配置时往往需要重启系统后才会生效。不过需要指出的是,对于那些依赖于所修改变量的一些服务,往往需要用户重启数据库或数据库实例后才会生效。
DB2 配置文件注册表可以分成如下四个类别,分别是:
.DB2 实例级配置文件注册表。大多数DB2 环境变量都被归于此类别当中。而针对特定实例的环境变量设置也被保存在此类注册表当中。在该级别定义的变量值将覆盖在全局级配置文件注册表所定义的变量值。
.DB2 全局级配置文件注册表。如果没有为特定的实例设置相应的变量,该类注册表中将会包含整个系统范围内的变量值。
.DB2 实例节点级配置文件注册表。该级别包含指定给分区数据库环境中某个分区的变量设置(如果用户使用数据库的分区功能,那么就需要用该类注册表来关注系统)。该级别定义的变量值将覆盖在全局级配置文件注册表所定义的变量值。
.DB2 实例配置文件注册表。此类注册表信息包含系统可识别的所有实例名称列表。用户可以通过DB2ILIST 命令来查看完整的实例列表。该类注册表不能用于修改系统的具体行为,而仅仅是出于获取更多信息的目的。
在DB2 配置文件注册表中可以设置的注册表值有很多,因此用户不必为了日常管理(或为了获取认证)的目的而刻意地去牢记它们。不过,用户有必要从根本上去了解这种机制是如何来影响DB2 的一些具体行为。
下面给出了一些可以在DB2 注册表中设置的变量的例子:
.DB2_SKIPINSERTED ——该注册表变量控制对于使用游标稳定性(CS ,Cursor Stability )或读稳定性(RS ,Read Stability )隔离级别的游标是否可以忽略未落实插入。
.DB2_MDC_ROLLOUT ——指示DB2 为多维集群(MDC )表使用专门的删除算法,该算法可以尽可能少得进行日志记录从而能够非常快速地删除数据。DB2 使用该算法后,对在MDC 表中指定要进行删除的数据行以及它所相应的块索引的日志记录和处理会大幅减轻。
.DB2COMM ——该注册表变量用于为当前 DB2 实例设置可用的通信协议监听器。如果变量未定义或设置为NULL ,则启动数据库管理器时就不会启动任何协议连接监听器。
需要注意的是,一部分DB2 配置文件注册表变量是与平台相关的。比如下面这些就是只能用于Windows 平台的注册表变量的例子:
.DB2NTNOCACHE ——DB2NTNOCACHE 注册表变量指定 DB2 数据库系统是否使用 NOCACHE 选项打开数据库文件,以便避免数据服务器软件和文件系统同时作用于缓冲区的双缓冲效应情况的发生。
.DB2NTPRICLASS ——设置 DB2 实例的优先级类别(Normal ——默认值、Realtime 和High )。用户可以将此变量与个别线程优先级(使用 DB2PRIORITIES 设置)一起使用,以确定此系统中 DB2 线程相对于其他线程的绝对优先级。
. 接下来是一个只能用于AIX 平台的注册表变量的例子:
.DB2_EXTENDED_IO_FEATURES ——此功能包括提高内存高速缓存的命中率以及减少高优先级的I/O 操作等待时间来提高整个I/O 的性能。
最后这个注册表变量可以用于Windows 以及AIX 平台,而在Linux 、Solaris 和HP.UX 平台下不能使用:
.DB2_LARGE_PAGE_MEM ——指示应使用大页内存(large page memory )的所有适用内存区域,用户也可以为个别的内存区域指定使用大页内存。使用大页内存的目的主要是为了提高高性能计算应用程序的性能。
21212 环境变量
有一些环境变量可以由用户去选择存储在DB2 配置文件注册表中还是不存储(这取决于操作系统环境)这些DB2 所使用的系统环境变量必须存储在本地操作系统系统变量所在的位置。下面给出了一些DB2 系统环境变量的例子:
.DB2INSTANCE ——指定活动的DB2 实例。
.DB2PATH ——指定DB2 可执行文件所在的路径。
在Windows 操作系统下,DB2 环境变量在Windows 系统环境变量中定义,用户可以通过点击在系统属性窗口中的高级选项页的环境变量按钮来进行设置。对于UNIX 和Linux 系统,变量被存储在db2profile (Bourne shell 或Korn shell )或db2cshrc (C shell )文件当中。这些文件通常可以与用户环境初始化文件(1profile or 1login) 一起配合使用。如果需要获取各个操作系统平台上环境变量的更详细信息,请参阅《DB2 Administration Guide 》。
声明注册表和环境变量
注册表信息都被存储在文件中,这些文件包含了各个变量的名称以及相应的值。但是,这些文件不能直接进行编辑或者修改。要想更改注册表变量和环境变量的值,应当使用db2set 命令。任何对注册表变量所进行的更改都会动态生效,而不需要用户重新启动系统。
使用带-all 选项的DB2 命令可以查看系统中设置的所有配置文件注册表变量。如图2.28 所示:图2.28db2set -all 命令使用带-all 选项的db2set 命令的输出结果如图2.28 所示。注意实例级的注册表变量旁边标有“[i] ”,而全局级变量旁边是“[e] ”。注意:在分区数据库环境中,节点变量的旁边是“[n] ”。如果用户仅仅输入db2set 命令而不带任何参数的话,该命令将返回所有实例级的注册表变量。下面是有关db2set 命令用法的一些例子:命令说明db2set parameter=value 设置当前实例的一个参数db2set parameter=value -I instance_name 为特定实例设定参数值db2set parameter=value -g 设置一个全局级的注册表变量db2set -lr 查看能够被设置的所有配置文件注册表变量的列表db2set parameter= 删除一个注册表变量的值,忽略等号右边的任何值db2set parameter -null 设置注册表变量的值为NULL (注意与删除的区别),后面跟-null 选项列出所有的变量名称
DB2 环境变量的层次性
由于可以在多处进行变量设置,DB2 使用一个层次关系来确定在哪里寻找变量的值。具体的顺序如下:
11 使用db2set 命令设置的环境变量(或者是在UNIX 和Linux 平台上使用export 命令设置的环境变量)。
21 在DB2 分区数据库环境下的实例节点级配置文件的注册表变量(使用db2set -n <INSTANCE NAME><NODENUM> 命令进行设置)。
31 实例级配置文件的注册表变量(使用db2set -i 命令进行设置)。
41 全局级配置文件的注册表变量(使用db2set -g 命令进行设置)。
虽然大多数DB2 环境变量既可以在DB2 配置文件注册表中设置,也可以在操作系统中设置,但还是强烈建议用户尽可能的在DB2 配置文件注册表中进行设置。如果将DB2 变量设置在DB2 配置文件注册表以外的地方,用户将无法对这些变量进行远程管理,并且在对这些变量进行更改之后,必须重新启动系统来使更改生效。
21213DB2 实例
DB2 实例是一个逻辑的数据库服务器环境。DB2 数据库就将创建在数据库服务器的DB2 实例上面。在同一台服务器上可以同时创建出多个实例,每个实例都可以单独作为一个DB2 服务器对外提供服务。例如,用户可以同时在一台机器上创建拥有相同代码路径的测试环境和产品环境(当然在DB2 9 中用户还可以把这些环境通过DB2 副本分隔到不同的代码级别上)。
每个实例都有一个分配给它的管理员组。该管理员组必须定义在一个被称做是数据库管理器配置文件的实例配置文件当中。如何创建用户ID 和用户组依赖于具体的操作系统环境。默认情况下,DB2 会使用操作系统的基本安全控制来实现认证级别。用户可以通过安全插件在DB2 中使用绝大多数认证机制,不过有关这部分内容已经超出了本章节所讨论的内容范畴。
除非用户额外指定,安装程序将会创建一个默认的DB2 实例,这是我们推荐使用的创建实例的方法。当然,实例也可以在安装过程结束之后根据需要被创建或删除。
实例目录存储了属于该数据库实例的所有信息。一旦创建,实例目录就不能进行更改。该目录大致包括以下信息:
. 数据库管理器配置文件
. 系统数据库目录
. 节点目录
. 节点配置文件(db2nodes1cfg )
. 包含调试信息的其他文件,如DB2 进程抛出的异常、寄存器转存、调用堆栈等。
Windows 环境下的DB2 实例
DB2 for Windows 安装时创建的默认实例为DB2 。在安装时,安装程序会设置一些相应的DB2 环境变量。如果用户还需要创建其他的实例,可以使用DB2ICRT <name_of_instance> 命令。例如,可以通过以下命令创建另外一个实例:与在UNIX 环境下不同的是,Windows 环境下创建时指定的实例名称不需要与某个用户ID 的名称相匹配。
Windows 环境下DB2 实例的注意事项
在Windows 环境下安装DB2 时,DB2 实例将作为一个服务来定义。因此,用户所定义的DB2 实例必须服从Windows 服务的命名规则。除了实例,DB2 管理服务器(DAS )也将被定义为一个服务。用户可以在安装过程中或者通过Windows 操作系统的服务控制界面将上述服务配置为自动启动。
用户可以使用Windows 控制面版中的服务来查看DB2 所使用的各种类型的服务,如图2.29 所示:图2.29Windows 平台DB2 所使用的服务图2.29 显示了每个实例和DB2 副本所对应的多个服务。每一个实例都将使用一些服务来为该实例执行各种所支持的功能。
例如,上图中DB2.DB2COPY1.DB2.0 是当前的数据库实例,DB2 安全服务器服务用于为指定DB2 副本执行安全服务。需要注意的是,这里只有一个DB2DAS.DB2DAS00 实例,并且该管理实例是不属于任何一个DB2 副本的。这在前面的内容中已经讲过,任何一台机器只能拥有一个DAS 实例。
实例可以从控制面板启动,也可以通过在系统命令行处理器中输入NET START <service_name> 命令来启动(NET STOP <service_name> 命令用于停止实例) 。DB2 有一套自己的命令集并用于从DB2 本身更自然地启动实例。
Linux 和UNIX 环境下的DB2 实例
实例操作在UNIX 和Linux 工作站上有细微的差别,因为实例名的所有者决定了实例的名称。不过,实例的概念和用途是一致的。
如果用户执行手动安装或者在安装程序中选择不创建实例的话,就必须在实例被创建之前完成下列任务:
11 为DB2 实例创建支持组和用户ID 。
需要以下三个用户和用户组来管理DB2 :表2.2 需要的用户和用户组
需要的用户用户名样例组名样例实例拥有者db2inst1db2iadm1 受隔离用户db2fenc1db2fadm1DB2 管理服务器db2asdb2asgrp
其中:
.DB2 实例会建立在实例拥有者的主目录中。
. 受隔离用户用于在DB2 数据库使用的内存空间之外来运行用户自定义函数(UDF )和存储过程。
.DB2 管理服务器使用的用户ID 用于在系统上运行DB2 管理服务器服务。
. 用于为DB2 创建必需的用户组和用户ID 的命令依赖于其具体的操作系统,下列命令是AIX 系统下的例子:为每个组创建用户:注意:要创建用户和用户组,用户必须具有root 权限。另外,在指定用户名和密码的时候一定要遵从操作系统的命名规则和DB2 命名规则。详细信息请参阅《DB2 Quick Beginnings 》。21 使用DASCRT -u <DAS_user_name> 命令创建DB2 管理服务器。31 使用DB2ICRT 创建实例。其中:
.DB2DIR 是DB2 的安装目录,在AIX 系统环境下是/usr/opt/db2_09_01 。
.-a AuthType 是该实例的认证类型,可以是SERVER (默认值)、CLIENT 和 SERVER_ENCRYPT 以及其他所支持的类型。该参数是可选的。
.-u FencedID 代表受隔离的用户名,所有受隔离的用户自定义函数和存储过程将在该用户下运行。
.InstName 是DB2 实例的名称。该名称必须与实例拥有者的名称相同。该实例将会被创建在实例拥有者的主目录下。
41 为该实例设置通信参数。
DB2COMM 注册表变量允许用户为DB2 实例设置通信协议。变量值可以是以下关键字的任意组合,多个关键字之间用逗号分隔:
.NETBIOS 提供对NETBIOS 协议的支持。
.NPIPE 提供对命名管道协议的支持。
.TCPIP 提供对TCPIP 协议的支持。
例如,可以输入以下命令来为DAS 服务和数据库管理器启动TCPIP 连接管理器:数据库管理器配置文件中有个名为SVCENAME 的参数,该参数用于指定实例的主要连接端口名称。该名称在/etc/services 文件中被定义。例如,如果定义在db2c_DB2 服务文件中,更新数据库管理器配置文件的命令如下:在/etc/services 文件中的对应项如下:51 更新产品许可证信息。
参照《DB2 Command Reference 》中关于db2licm 命令的信息。
启动DB2 实例
DB2 实例被创建后,在使用之前必须先启动或者初始化该实例。启动DB2 实例的过程与启动网络文件服务器的过程类似。直到该实例被启动之后,其他客户端应用程序才能够对服务器上的数据库进行访问。
启动DB2 实例的命令为DB2START ,执行该命令后,系统将会为该实例分配包括内存和通信支持在内的DB2 资源。在前面已经提到过了,在Windows 系统环境下,用户也可以通过以下Windows CLP 命令来启动DB2 实例:停止DB2 实例
用于停止当前数据管理器实例的命令为DB2STOP ,执行该命令后,在输出设备上将显示出相应信息提示该命令是否执行成功。在Windows 环境下,也可以通过下面的命令来停止DB2 实例:注意:用户在某些时候(如在修改了一个注册表变量值之后)需要停止或者重启数据库实例。该操作实际上就是实例的循环启用。用户想要使用一个命令来完成上述操作,就可以使用DB2STOP 或DB2START 命令。实例管理
本节将讨论对DB2 本地实例和远程实例进行管理的方法。在DB2 系统中,某些任务需要在实例级上执行,如创建数据库、更新数据库管理器配置参数等。而另外一些任务却需要先对相应的数据库进行连接,如执行SQL 数据操纵语言(DML )语句、使用LOAD 工具或BIND 命令等。
用户可以通过DB2 CLP 、操作系统CLP 或控制中心的ATTACH 命令对DB2 实例进行本地和远程管理。例如,用户使用ATTACH 命令在一台机器上的多个实例之间可以来回切换而不需要关注DB2INSTANCE 当前是如何设置的。如果在不带任何参数的情况下执行ATTACH 命令,系统会返回用户当前连接的节点名称。如果用户在已经连接到一个实例的情况下试图连接到另外一个实例,那么当前的实例连接将被中断。换句话说,用户一次只能连接到一个实例上。注意:可以通过GET INSTANCE 命令来查看当前活动的实例,该命令会返回DB2INSTANCE 环境变量的当前值。数据库连接独立于实例连接。一个单独的应用程序可以同时连接多个数据库,但是却只能连接到一个实例上。
数据库的连接方式分为隐式和显式两种。隐式数据库连接将连接到DB2DBDFT 注册表变量指定的数据库上,而显式数据库连接则通过CONNECT TO <database_name> 语句来建立连接。
本地实例由DB2INSTANCE 变量的值来决定。要连接到另外一个实例时,用户将用到本地实例的目录服务。当连接到一个实例以后,就不能查看、更改或重置另一个实例中的数据库目录、节点目录和DCS 目录。如果要进行以上这些操作,用户就必须通过设置DB2INSTANCE 环境变量的值来完成实例之间的切换(本节稍后会简要介绍该部分的内容)。
本地实例管理
在DB2 服务器安装完毕并且完成实例创建以后,用户可以通过以下两种方式来访问实例:
. 设置DB2 环境变量DB2INSTANCE 的值为该实例名称,DB2PATH 环境变量必须设为DB2 可执行文件的地址。这种实例连接方式被称为隐式连接。
. 对本地实例进行编目,并通过ATTACH 命令进行连接。这种被称为显示连接。
一个实例连接的例子
这个场景中的例子假设本地用户在登录系统后不需要改变环境就能够访问位于同一个数据库服务器上的两个实例。
这两个本地实例的名称分别是DB2CERT 和DB2 ,它们驻留在一台AIX 系统的数据库服务器上。用户Tasha 是该数据库服务器上的一个本地用户,他已经更改了DB2 环境变量DB2INSTANCE 和DB2PATH 的值来允许访问DB2CERT 实例。在AIX 系统上,Tasha 将下面一行添加到自己的配置文件当中:Tasha 还需要访问位于同一台服务器上的DB2 实例,为达到这个目的,它还需要使用下面这条命令将DB2 实例编目为本地节点:其中,LOCAL 说明是一个本地实例,MYDB2 是被编目节点的本地别名,它可以是为该连接指定的任意的名称,DB2 是要访问的本地实例名称。
要查看节点目录的内容,可以使用LIST NODE DIRECTORY 命令,显示结果如图2.30 所示:图2.30 节点目录要访问名为DB2 实例中的数据库,Tasha 必须使用下列命令来编目数据库:其中,DB2CERT 是存在于数据库服务器实例中的数据库名称,MYCERT 是Tasha 连接时使用的数据库别名,MYDB2 是CATALOG NODE 命令中Tasha 赋给本地实例的本地别名。
接着Tasha 使用LIST DATABASE DIRECTORY 命令查看系统数据库目录的内容,显示结果如图2.31 。
从上图中我们可以看到,DB2CERT 数据库被编目在MYDB2 节点。同样的不是直接连接到数据库上,而是用户是连接在该数据库的别名MYCERT 上面了。
Alternate server hostname 和Alternative server port number 项用于客户机自动重新路由(ACR ,Automatic Client Reroute )功能。ACR 可以用于为发生故障的DB2 服务器转移至备用服务器提供透明的故障转移功能。当该目录结构下的客户端成功地连接到MYCERT (DB2CERT 的别名)数据库,此时数据库服务器配置在故障转移合作伙伴对的环境下(比如高可用性灾难恢复HADR ,High Availability Disaster Recovery ),在连接成功后会自动填充上述这两项。故障发生后,ACR 功能将会自动重试发生故障的服务器,以确保它不是出于意外地确定主数据库宕机而实际恰好相反的这种状况。如果主数据库依旧没有任何响应,HADR 将会发起将数据库的所有权转移至备用服务器的动作(当然还有更多其他工作要做,比如保持一致性等),同时客户端也将使用该信息通过ACR 自动尝试连接备用服务器的数据库。图2.31 数据库目录使用多个实例
在前面已经提到,用户可以使用DB2INSTANCE 环境变量在不同的实例之间切换工作。因此这个环境变量可以用会话级进行设置,它为用户提供了使用CLP 会话来实现实例之间进行快速切换的能力。
图2.32 中显示了使用SET DB2INSTANCE 以及GET INSTANCE 命令在同一服务器上不同实例之间切换的情况。图2.32 在多实例环境下使用DB2INSTANCE 从图2.32 可以看出,当前的默认实例是DB2CERT 。假设该实例已经启动,并且有一个连接试图链接SAMPLE 数据库。由于该数据库在实例中并不存在,因此运行此连接命令后将会返回错误信息。接着,用户使用SET DB2INSTANCE 命令,此时默认的连接就会从DB2CERT 实例切换到SAMPLE 数据库所在的DB2 实例上。此时,就可以成功地创建到SAMPLE 数据库的连接,并且该会话会把DB2 实例作为当前默认的实例连接。需要注意的是,一旦用户关闭了所修改的CLP 会话窗口之后,操作系统的DB2INSTANCE 参数设置将会重新恢复到默认实例的设置(即DB2INSTANCE=DB2CERT )。通过在这个例子中的会话级设置DB2INSTANCE=DB2 ,用户可以临时变换当前默认实例。
使用控制中心连接实例
除了可以使用DB2 命令来连接实例之外,还可以通过控制中心进行连接实例的操作。如图 2.33 所示,用户可以在控制中心选择相应的实例并通过鼠标右键单击,然后从菜单中选择Attach 命令来连接对应的实例。图2.33 使用控制中心连接实例21214DB2 管理服务器(DAS )
DB2 管理服务器(DAS )一个控制点,仅用于辅助 DB2 数据库实例上的任务。如果要使用提供的工具如控制中心、配置助手自动编目数据库的发现功能、任务中心的调度功能等等,则必须有一个正在运行的 DAS 。一旦DAS 被创建,DB2 全局级配置文件注册表变量DB2ADMINSERVER 的值就会作为DAS 的名称。
DAS 协助DB2 工具能完成以下的管理任务:
. 允许对DB2 数据库实例进行远程管理。
. 提供用于作业管理的工具,包括调度 DB2 数据库管理器和操作系统命令脚本运行的能力。这些命令脚本是用户定义的。
. 使用任务中心来对 DAS 的远程或本地作业定义作业的调度、查看已完成作业的结果以及执行其他管理任务。
. 与 DB2 Discovery 实用程序一起提供一种查找关于 DB2 实例、数据库以及其他 DB2 管理服务器配置信息的方法。配置助手和控制中心使用此信息来简化和自动执行客户机与 DB2 数据库的连接配置。
DAS 包括一个调度程序,用以运行适用任务中心定义的任务(例如,DB2 数据库和操作系统命令脚本)。任务信息如要运行的命令,与任务相关联的安排、通知和完成操作以及运行结果存储在 DB2 数据库中称为工具目录的一组表和视图中。工具目录是作为安装的一部分创建的,还可以通过 “控制中心”或通过 CLP 使用 CREATE TOOLS CATALOG 命令创建和激活。
下面列举了一些用于管理DAS 服务的命令:
.DB2ADMIN START :用于启动DAS 。
.DB2ADMIN STOP :用于终止DAS 。
.DASICRT :在UNIX 环境下创建DAS 。
.DASIDROP :在UNIX 环境下删除DAS 。
.DB2ADMIN :CREATE 在Windows 环境下创建DAS 。
.DB2ADMIN :DROP 在Windows 环境下删除DAS 。
.DB2 GET ADMIN CFG :用于显示DAS 的数据库管理器配置。
.DB2 UPDATE ADMIN CFG :用于更改DAS 的数据库管理器配置文件的参数(需要执行DB2ADMIN STOP 和DB2ADMIN START 命令之后才能生效)。
.DB2 RESET ADMIN CFG :用于将DAS 的配置参数设置为默认值(需要执行DB2ADMIN STOP 和DB2ADMIN START 命令之后才能生效)。
213 小结
在本章中,介绍了在不同系统平台下安装DB2 的过程。此外还介绍了创建DB2 实例的过程以及DAS 在DB2 系统中起到的作用。
DB2 安装程序是一个可以在Linux 、UNIX 和Windows 环境下运行的图形化安装工具。它为安装DB2 产品和完成初始化时的设置和配置任务提供了简单易用的界面。
DB2 安装程序还可以用来创建实例和响应文件。用户通过DB2 安装程序进行DB2 产品安装的时候所进行选择的结果都存储在本地系统的响应文件中。为了方便起见,DB2 安装程序允许用户在不执行安装过程的情况下完成响应文件的创建。这种功能在数据库管理员没有权限时进行产品安装的情况下特别有用。在这种情况下,数据库管理员可以利用DB2 安装程序生成一个响应文件,然后交给系统管理员来完成DB2 产品的安装工作。
数据库实例可以看做是一个逻辑的数据库服务器环境。不同环境下创建实例的过程(包括所在Linux 和UNIX 环境下所需要的系统用户和用户组)的相关信息在本章节中有所体现。
DB2 环境变量也是本章所讨论的内容。包括DB2INSTANCE 和DB2PATH 在内的大多数环境变量都可以适用于各种平台,只不过由于平台的不同,环境变量的存放位置会有所不同。
同时,本章中也介绍了关于DB2 配置文件变量以及配置文件注册表内容,这些变量可以分为不同的级别,而不同级别的注册表会包含不同级别的信息,以及不同级别的变量设置对系统会产生怎么样的影响。
在本章中还介绍了如何通过DB2 命令窗口或操作系统命令行处理器来执行DB2 命令。DB2 命令行处理器可以通过针对每个会话更改也可以通过DB2OPTIONS 配置文件变量进行全局更改。
启动和停止DB2 实例的实例管理操作在本章中也进行了介绍。在Windows 环境下的DB2 实例被集成在Windows 的服务管理中,每个DB2 实例都是一个Windows 服务。用于启动和停止DB2 实例的命令是DB2START 和DB2STOP 。