LanDom
作者LanDom·2010-04-30 18:00
软件开发工程师·互联网企业

DB2 实例

字数 7821阅读 1753评论 0赞 0
实例

实例(Instance)是逻辑数据库管理器环境,可以在实例中创建数据库、对数据库进行编目(参见 3.4.4 小节)和设置配置参数。根据需要,可以在同一台物理服务器上创建多个实例,每个实例拥有唯一的数据库服务器环境。通常情况下,一套系统在研发阶段处于一个实例中,在测试阶段使用另一个实例,这样开发和测试可以隔离开,相互不产生干扰。当系统可以正式发布时,直接从测试的实例进行升迁即可。

使用实例的另外一个好处是可以从实例和数据库两个层次进行权限管理。通常 DBA 都拥有对数据库很高的权限,但是当系统正式上线之后,考虑到某些业务的保密性,进行数据库维护的 DBA 不应该看到数据库中具体的数据。在 DB2 中,给这样的 DBA 分配 SYSCTRL 权限(实例级别的权限),而不分配 DBADM 权限(数据库级别的权限)(关于权限的内容参见第 5 章),就可以实现让该 DBA 对数据库进行正常的维护,而无法看到数据库内部的数据。

实例是一个逻辑环境,每个实例对应于一个进程,每个实例都拥有独立的系统资源。

3.3.1 实例的创建、删除、列示与切换

DB2 在安装的时候会创建一个默认的实例,在 Windows 环境下为 DB2,在 UNIX 或 Linux 环境下为 db2inst1。

要创建实例必须拥有相应的权限,Windows 中属于 Administrators 组的用户,UNIX/Linux 中具有 root 权限的用户,可以创建新的实例。

创建实例的系统级命令为:

db2icrt < 实例名 >

创建一个新的实例之后,在系统中就会产生对应的目录和进程。需要注意的是,在 UNIX 或 Linux 环境下,还需要提供受防护的用户标识(即 UNIX 和 Linux 识别的用户 ID),具体命令格式为:

db2icrt – u < 用户标识 > < 实例名 >

删除实例的系统命令为:

db2idrop < 实例名 >

列示实例的系统级命令为:

db2ilist

可以使用 DB2 命令:

get instance

来查看当前实例。其实在 UNIX 和 Linux 环境下实例就是当前用户。

当系统中包含多个实例时,可以在不同的实例之间进行切换。

Windows 环境下,使用系统级命令:

set DB2INSTANCE=< 实例名 >

来切换实例。需要注意的是,在当前命令窗口中该命令不会生效,要先执行 exit 退出命令窗口,重新打开一个命令窗口执行该命令。还可以直接在控制面板中修改环境变量 DB2INSTANCE 的值。

在 UNIX 或 Linux 环境下,实例对应于一个用户,只要切换到该用户也就切换到了该实例中:

su - < 实例名 >

例 3‑2 在 Linux 中创建一个名为 newinst1 的新实例。

创建新用户

使用 useradd 命令创建新用户,使用 passwd 命令修改密码,如图 3.4 所示。


图 3.4 新建用户并修改密码
 #su - root
#useradd newinst1
#passwd newinst1
#

切换到 DB2 默认的实例 db2inst1 中:

su – db2inst1

然后运行 db2level 命令,可以得到 DB2 的安装目录,本例中为 /opt/ibm/db2/V9.5。

切换到 root 账户下:

su – root

进入到安装目录中的 instance 子目录中:

cd /opt/ibm/db2/V9.5/instance

运行 db2icrt 命令创建新的实例:

./db2icrt – u newinst1 newinst1

切换回 db2inst1 用户,运行 db2ilist 命令列示所有实例:

su – db2inst1 db2ilist

可以看到新建的 newinst1 实例。

有两点需要注意,一是 Linux 下用户名必须全部小写,二是 DB2 的实例名长度不能超过 8 位。

3.3.2 实例的启动与停止

每个实例对应于一个进程,默认实例会自动启动,而在安装完成之后新建的实例不会自动启动。要启动一个实例,需要切换到该实例中,然后运行如下系统级命令:

db2start

要停止当前实例,使用系统级命令:

db2stop

如果想让一个实例自动启动(即让对应的进程自动执行)或者取消自动启动,在 Windows 环境中,可以通过在服务面板中进行设置,在 UNIX 或 Linux 环境中,可以使用如下系统级命令自动启动一个实例:

db2iauto – on < 实例名 >

使用如下系统级命令取消一个实例的自动启动:

db2iauto – off < 实例名 >

3.3.3 实例的附接与断开

如果要管理远程的实例,需要先进行实例的附接(ATTACH),相应的语法为:

attach to < 实例名 > user < 用户名 > using < 密码 >

断开与远程实例的连接使用如下命令:

detach

关于实例附接后进行的详细管理操作,参见 3.4.4 小节。

3.3.4 DB2 的管理服务器

DB2 中有一个特殊的实例,叫做 DB2 管理服务器(DB2 Administration Server,简称 DAS)。它能够调度执行在任务中心中创建的任务。DB2 创建的各种任务保存在一个称为“工具目录数据库”的特定数据库中,这些任务可以在任务中心或者控制中心中创建,然后由 DAS 进行调度。

DAS 在 Windows 中对应于控制面板中的“DB2DAS00”服务,在 UNIX 或 Linux 中,安装时会创建一个 dasadm1 用户,就是 DAS。

启动和停止 DAS 服务分别使用如下系统级命令:

db2admin start db2admin stop

3.3.5 实例级别的参数配置

通过设置各种数据库管理器参数,可以实现对整个实例环境都有效的配置,使用命令 db2 get dbm cfg,可以得到数据库管理器的配置参数:

数据库管理器配置

节点类型  = 带有本地和远程客户机的数据库服务器
数据库管理器配置发行版级别 
     = 0x0c00
最大打开文件数  
     (MAXTOTFILOP) = 16000
 CPU 速度(毫秒 / 指令) 
     (CPUSPEED)= 2.597893e-007
最大并发活动数据库数 
     (NUMDB) = 8
联合数据库系统支持 
     (FEDERATED) = NO
事务处理器监视器名 
     (TP_MON_NAME) =
缺省对方付费账户   
     (DFT_ACCOUNT_STR) =
  Java Development Kit 安装路径(JDK_PATH)= D:PROGRA~1IBMSQLLIBjavajdk
诊断错误捕获级别 
     (DIAGLEVEL) = 3
通知级别 
     (NOTIFYLEVEL) = 3
诊断数据目录路径 
    
     (DIAGPATH) =
  缺省数据库监视开关
 缓冲池 
     (DFT_MON_BUFPOOL) = OFF
 锁定 
    
     (DFT_MON_LOCK) = OFF
 排序 
     (DFT_MON_SORT) = OFF
 语句 
    
     (DFT_MON_STMT) = OFF
 表  (DFT_MON_TABLE) = OFF
 时间戳记   (DFT_MON_TIMESTAMP) = ON
 工作单元  (DFT_MON_UOW) = OFF
监视实例和数据库的运行状况  (HEALTH_MON) = ON
 SYSADM 组名  (SYSADM_GROUP) =
 SYSCTRL 组名  (SYSCTRL_GROUP) =
 SYSMAINT 组名  (SYSMAINT_GROUP) =
 SYSMON 组名  (SYSMON_GROUP) =
  客户机用户标识 - 密码插件  (CLNT_PW_PLUGIN) =
  客户机 Kerberos 插件  (CLNT_KRB_PLUGIN) = IBMkrb5
组插件  (GROUP_PLUGIN) =
  本地授权的 GSS 插件  (LOCAL_GSSPLUGIN) =
服务器插件方式  (SRV_PLUGIN_MODE)= UNFENCED
 GSS 插件的服务器列表   (SRVCON_GSSPLUGIN_LIST) =
  服务器用户标识 - 密码插件  (SRVCON_PW_PLUGIN) =
服务器连接认证  (SRVCON_AUTH)= NOT_SPECIFIED
集群管理器  (CLUSTER_MGR) =
数据库管理器认证  (AUTHENTICATION) = SERVER
没有权限就允许编目  (CATALOG_NOAUTH) = NO
信赖所有客户机  (TRUST_ALLCLNTS) = YES
可信的客户机认证  (TRUST_CLNTAUTH) = CLIENT
绕过联合认证  (FED_NOAUTH) = NO
缺省数据库路径  (DFTDBPATH) = D:
  数据库监视器堆大小(4KB)  (MON_HEAP_SZ) = AUTOMATIC
  “Java 虚拟机”堆大小(4KB)  (JAVA_HEAP_SZ) = 2048
  审计缓冲区大小(4KB)  (AUDIT_BUF_SZ) = 0
  实例共享内存(4KB)的大小  (INSTANCE_MEMORY) = AUTOMATIC
  备份缓冲区缺省大小(4KB)  (BACKBUFSZ) = 1024
  复原缓冲区缺省大小(4KB)  (RESTBUFSZ) = 1024
代理程序的堆栈大小  (AGENT_STACK_SZ) = 16
  最小已落实专用内存(4KB)  (MIN_PRIV_MEM) = 32
  专用内存阈值(4KB)  (PRIV_MEM_THRESH) = 20000
  排序堆阈值(4KB)  (SHEAPTHRES) = 0
目录高速缓存支持   (DIR_CACHE) = YES
  应用程序支持层堆大小(4KB)  (ASLHEAPSZ) = 15
  最大请求者 I/O 块大小(以字节计)  (RQRIOBLK) = 32767
  查询堆大小(4KB)  (QUERY_HEAP_SZ) = 1000
已调速实用程序对工作负载的影响  (UTIL_IMPACT_LIM) = 10
代理程序的优先级  (AGENTPRI) = SYSTEM
代理程序池大小  (NUM_POOLAGENTS) = AUTOMATIC
池中的初始代理程序数  (NUM_INITAGENTS) = 0
最大协调代理程序数  (MAX_COORDAGENTS) = AUTOMATIC
最大客户机连接数  (MAX_CONNECTIONS) = AUTOMATIC
保留受防护的进程  (KEEPFENCED) = YES
合用受防护的进程的数目  (FENCED_POOL) = AUTOMATIC
受防护的进程的初始数目  (NUM_INITFENCED) = 0
索引重新创建时间和重做索引构建  (INDEXREC) = RESTART
事务管理器数据库名称  (TM_DATABASE) = 1ST_CONN
事务再同步时间间隔(秒)  (RESYNC_INTERVAL) = 180
 SPM 名称  (SPM_NAME) = GREENWI1
 SPM 日志大小  (SPM_LOG_FILE_SZ) = 256
 SPM 再同步代理程序限制  (SPM_MAX_RESYNC) = 20
 SPM 日志路径  (SPM_LOG_PATH) =
 NetBIOS 工作站名  (NNAME) =
 TCP/IP 服务名称  (SVCENAME) =
发现方式  (DISCOVER) = SEARCH
发现服务器实例  (DISCOVER_INST) = ENABLE
最大查询并行度   (MAX_QUERYDEGREE) = ANY
启用分区内并行性  (INTRA_PARALLEL) = NO
  内部通信缓冲区数(4KB)  (FCM_NUM_BUFFERS)=AUTOMATIC
内部通信信道数  (FCM_NUM_CHANNELS)=AUTOMATIC
 db2start/db2stop 超时(分钟)  (START_STOP_TIME) = 10

针对每个参数的详细解释,请参见 IBM 的官方手册。

在控制中心中,展开到实例级别,右键弹出菜单中选择“配置参数…”,可以通过图形界面查看和修改数据库管理器的配置参数,如图 3.5 所示。


图 3.5 数据库管理器配置参数
 

3.3.6 实例级别的常用命令

实例级别的常用命令如表 3.1 所示。


表 3.1 实例级别常用命令
命令名称 描述
GET DBM CFG [SHOW DETAIL] 返回数据库管理器的参数设置
UPDATE DBM CFG USING < 参数 > < 值 > 将数据库管理器的某个参数设置为新的值
db2icrt < 实例名 > 创建实例
db2idrop < 实例名 > 删除实例
db2ilist 列示实例
GET INSTANCE Windows 中获取当前实例名称
set DB2INSTANCE=< 实例名 > Windows 中切换实例
db2start 启动当前实例
db2stop 停止当前实例
db2iauto -<on|off> < 实例名 > UNIX 或 Linux 下设置某个实例是否自动启动
ATTACH TO < 实例名 > [USER < 用户名 >] [USING < 密码 >] 附接到指定的实例进行远程操作
DETACH 断开与当前实例的附接
LIST ACTIVE DATABASES 列出活动的数据库和连接数量
LIST APPLICATION [SHOW DETAIL] 返回当前连接的应用程序的信息
FORCE APPLICATION[S] ALL 断开与所有应用程序的连接
FORCE APPLICATION (< 句柄 1>[,< 句柄 2>, … ,< 句柄 n>]) 断开指定句柄的应用程序的连接
db2admin start 启动管理服务器实例
db2admin stop 停止管理服务器实例
CATALOG LOCAL NODE < 节点名 > INSTANCE < 实例名 > 编目实例作为本地节点
CATALOG TCPIP NODE < 节点名 > REMOTE < 主机名 > SERVER < 端口号 > 编目远程实例作为本地节点

注:表格中大写的命令表示该命令是 DB2 级的,可以直接在命令行处理器中执行,小写的命令表示该命令是系统级的,需要在命令窗口中执行,而且在 UNIX 或 Linux 下必须小写,而在 Windows 下不区分大小写。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关问题

X社区推广