DB2 · 实例
DB2实例(DB2 Instance)实例是数据库管理的逻辑单元,包括数据库,表,索引等所有对象。本质上,它又由后台运行的一组进程组成,来提供安全,通信,内存分配等。
多个实例的优势:
·将一个实例用作开发环境,将另一个实例用作生产环境。
·调整一个实例以用作特定的环境。
·限制对敏感信息的访问。
·控制每个实例中对SYSADM,SYSCTRL和SYSMAINT权限的指定。
·优化每个实例的数据库管理器配置。
·限制实例失败所带来的影响。如果一个实例失败,那么只影响一个实例。其他实例可继续正常运行。
劣势:
·每个实例都需要额外的系统资源(虚拟内存和磁盘空间)
·由于要管理其他的实例,因此增加了管理工作量。
在使用数据库管理器之前,必须更新每个用户的数据库环境,以便该环境可以访问实例并运行DB2数据库程序。
通过sqllib/db2profile脚本来设置环境,可以使用sqllib/userprofile为每个用户定制脚本。
db2profile包括:将sqllib下bin,adm和misc目录放入PATH环境变量中,并将DB2INSTANCE设置为实例名。
在实例创建期间,将创建空文件 sqllib/userprofile 和 sqllib/usercshrc 以允许您添加自己的实例环境设置。
DB2INSTANCE这个环境变量十分重要,表示当前活动的实例。
实例目录存放着与实例相关的所有信息,该目录一旦创建,不能修改位置。
目录包括:
数据库管理配置文件
系统数据库目录
节点目录
节点配置文件(db2nodes.cfg,用来定义参与DB2实例的数据库分区服务器。
包含调试信息的任何其他文件
PS:实例目录为INSTHOME/sqllib,INSTHOME为实例所有者的主目录。
db2nodes.cfg 文件用来定义参与 DB2 实例的数据库分区服务器。如果想要将高速互连用于数据库分区服务器通信,那么还可以使用 db2nodes.cfg 文件来指定高速互连的 IP 地址或主机名。
创建实例:
db2icrt
>>-db2icrt--+-----+--+-----+--+---------------+----------------->
+- -h-+'- -d-''- -a--AuthType-'
'- -?-'
>--+---------------+--+---------------+--+---------------+------>
'- -p--PortName-''- -s--InstType-''- -u--FencedID-'
>--InstName----------------------------------------------------><
在 AIX 服务器上创建实例时,必须提供受防护的用户。
如:db2icrt -u db2fenc1 dbinst1
可在 DB2PATH 中使用 DB2INSTPROF 环境变量更改实例目录的位置。需要该实例目录的写访问权。如果想要在不同于 DB2PATH 的路径中创建目录,那么输入 db2icrt 命令之前必须设置 DB2INSTPROF。
更新实例配置:
当安装fix pack,安装新feature等,需要更新实例配置。
>>-db2iupdt--+-----+--+-----+--+-----+--+-----+--+-----+-------->
+- -h-+'- -d-''- -k-''- -D-''- -s-'
'- -?-'
>--+---------------+--+---------------+--+-InstName-+----------><
'- -a--AuthType-''- -u--FencedID-''- -e------'
如:db2iupdt -u db2fenc1 dbinst1
db2iupdt可在/opt/IBM/db2/V9.1/instance找到
自动启动实例
db2iauto -on instance1
db2iauto -off instance1
启动实例:
1. 登陆用户具有SYSADM,SYSCTRL或SYSMAINT等权限。
2. . INSTHOME/sqllib/db2profile
3. db2start
停止实例:
1. 登陆用户具有SYSADM,SYSCTRL或SYSMAINT等权限。
2. 要停止的特定数据库连接的所有应用程序和用户,强制所有应用程序和用户与该数据库断开。
3. db2stop,停止的实例,实例为DB2INSTANCE环境变量所制定的。
删除实例:
1. 停止当前使用该实例的所有应用程序,在每个命令窗口中,通过运行 terminate 命令来停止命令行处理器。
2. db2stop停止实例。
3. db2idrop InstName 其中 InstName 是要删除的实例的名称。db2idrop 命令从实例列表中除去实例条目,并除去实例所有者主目录下的 sqllib 子目录。
4. 如果所删除的实例是缺省实例,请通过发出 db2set 命令来设置新的缺省实例:db2set db2instdef=instance_name -g
5. 可以手动删除用户和组
连接实例和拆离连接
连接实例目的是让应用程序可以执行实例级别的命令,如CREATE DATABASE 和 FORCE APPLICATION。
>>-ATTACH--+--------------+------------------------------------->
'-TO--nodename-'
>--+---------------------------------------------------------------------------+-><
'-USER--username--+-------------------------------------------------------+-'
+-USING--password--+----------------------------------+-+
| '-NEW--password--CONFIRM--password-' |
'-CHANGE PASSWORD---------------------------------------'
>>-DETACH------------------------------------------------------><
detach拆离当前attach的实例。
db2ilist
显示当前copy下的所有实例。
查看当前活动实例
1. 查看DB2INSTANCE环境变量的值
2. db2 get instance
关于多个实例:
如果DB2是由具有 root 用户特权的用户安装的,那么在 Linux或 UNIX操作系统上可以有多个实例。虽然每个实例同时运行,但每个实例都是独立的。因此,每次只能在数据库管理器的一个实例内工作。要防止两个或更多实例之间的环境冲突,应确保每个实例都有它自己的主目录。如果共享主目录,那么会返回错误。每个主目录可以位于相同或不同文件系统中。
实例所有者和“系统管理”(SYSADM)组与每个实例相关。实例所有者和 SYSADM组是在创建实例期间指定的。一个用户标识或用户名只能用于一个实例,并且该用户标识或用户名也称为实例所有者。
每个实例所有者必须有一个唯一的主目录。运行实例需要的所有配置文件都在该实例所有者的用户标识或用户名的主目录中创建。如果需要从系统中除去实例所有者的用户标识或用户名,可能会丢失与该实例相关的文件并失去对存储在此实例中的数据的访问权。因此,将要独占使用的实例所有者用户标识或用户名专用于运行数据库管理器。
实例所有者的主组也很重要。此主组自动成为该实例的系统管理组,并获得该实例的 SYSADM 权限。作为该实例所有者主组成员的其他用户标识或用户名也获得此级别的权限。因此,可能想要将该实例所有者的用户标识或用户名指定给为管理实例而保留的一个主组。(还要确保将一个主组指定给该实例所有者的用户标识或用户名;否则,使用系统的缺省主组。)
如果已经有一个组并希望使它成为该实例的系统管理组,当创建实例所有者的用户标识或用户名时可将此组指定为主组。要赋予其他用户对该实例的管理权限,将他们添加到指定作为系统管理组的那一组。
为了将不同实例的 SYSADM 权限区别开,确保每个实例所有者的用户标识或用户名使用不同的主组。但是,如果选择对多个实例具有公共的 SYSADM 权限,那么可对这多个实例使用同一个主组
页:
[1]