首页 > 代码库 > 《循序渐进DB2.DBA系统管理、运维与应用案例》(牛新庄著)读书笔记3 影响DB2环境的变量

《循序渐进DB2.DBA系统管理、运维与应用案例》(牛新庄著)读书笔记3 影响DB2环境的变量

《循序渐进DB2.DBA系统管理、运维与应用案例》(牛新庄著)读书笔记3 

            影响DB2环境的变量

之前我们已经在Windows平台上用向导安装的方式成功安装了DB2 V9.7 Enterprise Edition,现在我们先不急着去进行创建实例和数据库、进行SQL操作等具体的DB2操作。我们应该先对整个DB2这个产品有一个整体上的结构性认识,之后再进行具体的操作。这样做可以避免在操作的过程中由于只见树木不见森林而产生盲目的感觉,也可以通过每一步具体的操作加深对DB2整体的把握。要知道DB2是一个十分复杂的(无论是功能上,还是产品体系架构上)数据库管理系统,从整体上掌握、理解DB2是极其重要的,绝不可以把DB2的各个分部件孤立开来。

我们首先应该建立“环境”(有时候也称为“系统”)的概念。“环境“(或“系统”)指的是具体的一个DB2安装(比如之前我们成功安装了DB2,就可以说我们在Windows平台上搭建了一个DB2“环境“或“系统”)。DB2的用处是存储,管理,协助分析处理数据;我们安装DB2的目的也正是要使用DB2的这些功能。就是说,DB2这个DBMS为我们提供了众多商业数据服务,它为人们处理商业数据提供了功能强大的”工作舞台“,故而我们称一个DB2安装就是搭建了一个“环境“。由于这个”环境“的功能非常强大,所以我们也可以用“系统”指代它。

正是因为DB2环境结构复杂,功能强大,如何保证这个环境总能正常、有序工作,总能提供人们需要的功能就变得非常重要。而这项工作就通常要交给DBA来完成。但是,DBA也不是凭空来完成这项工作的。实际上,DBA是通过DB2环境中自带的一些工具来实现这项工作的。就是说,DB2环境一部分是用于对用户提供商业数据相关的业务服务的,还有一部分是用于调配,管理DB2环境本身的。由于DB2环境提供了自我管理,自我配置的功能,才使得DBA可以通过使用,调用这部分功能来实现运维工作。

DB2环境的自我配置工具最基本的有三个:一、操作系统环境变量 二、DB2概要注册表变量三、配置文件参数

下面分别介绍:

  • 操作系统环境变量:

DB2是我们处理商业数据的环境,它为我们搭建了一个功能强大的工作空间。但是不要忘了,DB2这个环境不是飘在空气中的。就像楼房必须要建在土地上一样,DB2这个环境是建立在确定的操作系统上的。所以对DB2环境的管理配置离不开操作系统这个大环境。成功安装DB2后,应该注意到其所在的操作系统的环境变量多出了几个安装之前没有的,这些多出来的操作系统环境变量就是日后配置,调节DB2环境的工具和手段之一。

 

如果DB2中所有的表全部被存放在了同一个集合中,想像一下是什么情形。如果那样,众多不同的应用在存取数据的时候都会从同一个大集合中访问目标表,这非常混乱而且容易出错。由于所有的表处在同一个级别,意味着所有的表得到的都是同样得DB2环境。然而,这些表是被众多不同的应用使用的。不同的应用有着不同级别的数据库环境性能要求,由于所有的表享有的都是同样的DB2环境性能,为了满足最高的应用的数据库性能需求,就必须把DB2的性能调到最高。这样做显然对于那些对数据库环境性能没有那么高要求的应用而言是一种极大的资源浪费。这是一种由于DB2环境不支持多态引起的不便和资源浪费。一种解决方式就是在每次定义新表格的时候都随之定义一个对应于这个表的DB2环境配置信息文件,用于指定在使用设个表的时候使用什么样的DB2环境性能配置。这种解决方案有它的缺陷。首先是非常麻烦,大量的空间要用于存放性能配置信息文件。更要命的是,如果发生了对多个环境配置信息设置不同的表的并发访问,唯一的DB2环境就会不知道到底运行在那种性能状态下了。因此的最好的解决方法就是允许不同的表处在不同的子环境中,这些子环境相互可以独立运行而且它们的性能不但可以继承其父环境的性能,还可以单独配置以满足不同的应用需要(即子环境的配置可以覆盖从父环境继承得到的配置,还可以加上一些父环境中从来没有过的配置)。DB2实际上就是这样做的。一个DB2安装(一个总体的大环境)中可以有众多“实例“。一个”实例“中可以有众多”数据库“。一个“数据库”中可以有众多表。这是一种数据分级存储,环境分级配置做法。既然环境都被分级了,那么用于调配环境的工具也应该分级才对,同一级别的环境调配工具对应同一级别的子环境。所以在实际情况中,上面提到的那些用于调节DB2环境的操作系统环境变量也是分级的,各自只针对所负责级别的子环境的调配任务。

这里要提示一点,实例很多时候也称为“数据库管理器“,英文缩写为DMA=Database Management Application。日后不要见到”DMA“或”数据库管理器“等字眼的时侯反应不过来。

虽然操作系统环境变量可以起到对大环境和各级子环境的调配功能,但是单凭操作系统环境变量是远远不够的。就好比一个楼的环境固然需要一些统一的设置,如小区的院落布局,每层楼道的结构,同一个单元的房间的布局;但是个性化的配置也是及其重要的,你不可能要求一个楼中的所有的住户都购买一样的家具,也不可能要求所有住户的家具布局都完全一样。所以,除了操作系统环境变量之外,还有一个工具可以用于调配DB2的环境,它就是“配置文件参数“。

 

  • 配置文件参数:

和操作系统环境变量一样的,配置文件参数也是分级别的。不同级别的配置文件参数只针对于同级别的子环境的调配工作。配置文件参数分为两级,分别存储在两种不同的配置文件中。一为“数据库管理器(DMA)级配置文件参数“(DMA指的就是”实例“),这些参数存放在数据库管理器配置文件中,数据库管理器配置文件存放在对应的实例所在的磁盘目录中。二为“数据库级配置文件参数”,这些参数存放在数据库配置文件中,数据库配置文件存放在对应的数据库的磁盘目录中。不同级别的配置文件中的参数是完全不同的,没有重复的。而不同级别的操作系统环境变量有可能是重复的。因为配置文件参数针对的是不同级别子环境中的那些完全个性化的属性。比如在住户中有暖气,而在楼道中可能就根本没有暖气,所以在楼道的配置文件中根本不需要设置“暖气温度”这个参数。进一步讲,操作系统环境变量所针对的子环境属性可以在其父环境中也拥有的属性(继承性属性),也可以是其父环境中没有的属性(个性化属性)。而配置文件参数针对的子环境属性只有个性化属性,没有继承性属性。就像修改操作系统环境变量后要重启生效类似,配置文件参数被修改后,需要重新启动对应的子环境(对应的实例或数据库)后修改才能生效。

 

有一个现象十分不方便,就是如果你改变了操作系统环境变量,想要使修改生效,就要重新启动计算机或服务器。为了解决这个不便,DB2推出了一个工具,它就是DB2概要注册表。

 

  • DB2概要注册表变量:

DB2概要注册表变量仅仅是众多DB2操作系统环境变量的集合,它本身并不包含什么新定义的变量。这一点一定牢记。通过DB2概要注册表修改变量值,本质上修改的还是对应的操作系统环境变量值。多这样的一个机制就是为了解决重启问题。通过DB2概要注册表修改的操作系统环境变量可以不经过重启立即生效。但是要注意的是,有个别的操作系统环境变量是无法列入DB2概要注册表的,对于这些操作系统环境变量,不能通过概要注册表进行修改,只能直接在操作系统中修改,而且修改后还是要重启生效的。你也可以人为个性化指定把那些操作系统环境变量植入到概要注册表中而哪些不植入。但是强烈建议最大限度的把能包含到概要注册表的操作系统变量全部包含进去并一律通过概要注册表修改(尽量避免直接在操作系统平台上修改操作系统环境变量)。这样做不但可以最大限度的省去重启的麻烦,更重要的是,这样做有利于日后可能的远程配置,要知道没有被包含进概要注册表的操作系统环境变量只能在本机上进行修改,无法远程配置!对应于操作系统环境变量的级别,DB2概要注册表变量有四个级别:一为全局级别概要注册表变量,对应全局级别操作系统环境变量,负责对总体大的DB2环境的调配;二为实例级别概要注册表变量,对应实例级别操作系统环境变量,负责实例级别子环境的调配;三为实例节点级别注册表变量,对应实例节点级别操作系统环境变量,负责数据库分区这一个子环境的调配(当使用了数据库分区功能时才会用到)。四为用户级别概要文件注册表变量,对应用户级别的操作系统环境变量,负责具体用户设定的个性化调配任务。

 

DB2通过如下的顺序检查概要注册表变量和操作系统环境变量并解析它们来配置环境:

1、没有包括到概要注册表中的操作系统环境变量

2、用户级别概要注册表变量

3、实例节点级别概要注册表变量

4、实例级别概要注册表变量

5、全局级别概要注册表变量

 

注意,除了上述介绍的四个级别的概要注册表,还有一种概要注册表,称为“实例概要注册表”(别和“实例级别概要注册表”混淆)。这个注册表中仅仅记录了当前的DB2环境中的所有存在的实例的列表。它的用处是当用户运行db2list命令时,可以查看当前DB2环境中有哪些已经创建的实例。注意这个概要注册表仅仅提供查询功能,没有对任何级别环境的配置和修改功能,仅仅就是一个供人查看的实例表列而已。


《循序渐进DB2.DBA系统管理、运维与应用案例》(牛新庄著)读书笔记3 影响DB2环境的变量