一、实例管理

1、实例概念

1、实例为数据库提供了运行时环境
2、实例是由一组后台进程和共享内存组成的
3、数据库是物理的,而实例是逻辑的

db2 实例与管理服务器_数据库

2、实例数量

1、一个DB2产品可以创建多个实例
2、每个实例都有自己的配置文件
3、每个实例都有自己独立的共享内存和进程结构
4、实际生产系统中,实例的个数选择要视情况而定

db2 实例与管理服务器_sql_02

3、创建实例

实例与操作系统用户的关系
Windows不需要创建用户,默认实例名为DB2
Linux&Unix:实例名与用户名一样
注意: 确保用户状态正常

创建实例的语法

db2 实例与管理服务器_数据库_03

db2 实例与管理服务器_数据库管理_04

创建实例示例:
Linux&Unix上创建实例
DB2DIR/instance/db2icrt -u FencedID InstName
Windows上创建实例
DB2DIR\bin\db2icrt InstName

4、启动实例

1、启动实例:连接数据库、编译应用程序、绑定程序包等
2、启动实例必须具有相应的权限
3、启动实例的命令:db2start

5、连接/断开实例

连接实例的命令:db2 attach to InstName
断开实例的命令:db2 detach

6、停止实例

1、停止实例必须具有相应的权限
2、停止实例的命令:db2stop
3、强制应用程序与用户与数据库断开:db2stop force

7、实例参数

1、查看实例参数:db2 get dbm cfg
2、修改实例参数:db2 update dbm cfg using 参数名 参数值
2、复位实例参数为默认值:db2 reset dbm cfg

8、删除实例

1、删除实例,必须具有root或者系统管理员权限
2、删除实例前,要确保实例已经停止
3、删除实例的命令:db2idrop

9、操作实例的其他命令

查看实例:db2ilist
更新实例:db2iupdt
迁移实例:db2imigr
自动启动实例:db2iauto

二、环境变量

1、环境变量的优先级

1、操作系统级别的环境变量,使用set或者export设置
2、全局级概要文件注册变量,使用db2set -g设置
3、实例级概要文件注册变量,使用db2set -i设置
4、实例节点级概要文件注册变量,使用db2set -i <instance name> <nodenum>命令

db2 实例与管理服务器_sql_05

2、管理实例注册变量

1、管理实例变量的命令:db2set
2、查看已经设置的实例变量:db2set -all
3、查看所有可进行定义的实例变量:db2set -lr

三、实例目录

1、概念与作用

1、存储与数据库实例相关的所有信息
2、实例创建后,自动生成实例目录
3、在Linux&Unix上,实例目录位于User_home/sqllib目录中
4、在Windows上,实例目录位于db2数据库产品的sqllib目录下

2、实例目录的内容

sqllib目录下
db2dump:此目录中的db2diag.log文件记录db2错误信息
sqldbdir:系统数据库目录
db2nodes.cfg:节点配置文件
db2systm:数据库管理器配置文件

四、管理服务器

1、概念与作用

1、数据库管理服务器DAS是一个特殊的数据库实例
2、用于执行远程的db2数据库管理任务
3、DAS和受控实例是一对多的关系,即一个DAS可以管理多个实例

db2 实例与管理服务器_数据库管理_06

2、管理命令

db2admin start #用于启动DAS
db2admin stop #用于停止DAS
dasicrt #在Linux&Unix环境下创建DAS
dasidrop #在Linux&Unix环境下删除DAS
db2admin create #create在windows环境下创建DAS
db2admin drop #drop在windows环境下删除DAS
db2 get admin cfg #用于显示DAS的数据库管理器配置
db2 update admin cfg #用于更改DAS的数据库管理器配置文件的参数
db2 reset admin cfg #用于将DAS的配置参数设置为默认值

五、示例

1、查看db2icrt和db2idrop所在的路径
cd /opt/ibm/db2/V10.5
2、检查是否创建了受防护的用户和示例用户,并且设置密码
3、在创建实例前,查看home路径下是否有sqllib
4、创建实例
5、检查sqllib目录是否创建成功
6、启动实例
db2start
7、连接到实例
db2 attach to db2inst1
8、从实例中断开
db2 detach
9、停止实例
db2stop
10、启动实例并创建一个测试数据库
db2start
db2 create db test
11、额外用一个用户连接实例,再停止实例
db2 connect to test
db2stop
db2stop force
12、查看实例的参数
db2 get dbm cnf
db2 update dbm cnf using ASLHEAPSZ 20
13、删除实例
db2idrop db2inst1
14、检查sqllib目录是否还存在