- 论坛徽章:
- 0
|
db2的很多的变量设置是在os层面的,这和oracle是一样的,
其实很很多的其他的软件也是一样的
无法是让软件知道去什么地方找path,lib,class等等他们在运行过程之中需要寻找和使用的东西
其实就是让软件按图索骥
防止你自己独特地将这些玩意放到一个啥的爪哇的地方了
所以
在这个时候
db2首先就会有db2profile文件来集中处理和设置这些玩意
当然db2profile是b shell的
对于c shell的,是db2cshrc文件
当然
在db2软件和实例创建好了之后
很多的环境变量就已经自动创建好了
在db2的环境变量中有2个比较重要
一个是db2instance
就是决定了当前的活动的实例是什么
db2node
就是在分区环境中,决定了当前活动节点是什么
当然我们如果需要对db2再设置一些其他的什么环境变量的话
我们还需自己去显示地去指定
这当然需要各种shell来使用不同的办法
比如 b shell的
export a=b
c shell的
setenv a b
等等
db2的注册参数
db2的注册参数分为几个层次
实例级别, 就是 i 级别
也就是只能作用于某个特定的实例,也就是当前的活动的实例
全局,就是 g 级别
也就是作用于物理机器上的所有的实例
节点级别
就是作用于一个分区环境中的某个特定的节点
当然
db2set的命令自然有参数来指定和限制这些层次
反正我是没有用过
没有这么复杂和变态的场景
比如
db2set DB2COMM=TCPIP -i YPINSTANCE
就是将这个注册参数设置为实例级别的
db2set DB2COMM=TCPIP -g
就是将这个参数设置为全局级别的
我们自然知道,这样的注册参数的生效与否只需要推出当前用户再登录就可以了。
db2的注册参数的常用命令
db2set -all 列出当前的所有的参数配置
db2set -lr 列出可以设置的配置
db2set -h 语法帮助
db2set db2xxx= 删除一个配置
实例
我们从体系结构的方面来看,实例实际就是db2的执行代码和数据库对象的中间层面。
实例也可以看成是关于所有的数据库及其对象的集合
也可认为是所有的数据库及其对象和db2的代码之间的联系和结合。
我们总是有误解
就是删除了一个实例之后,所有的数据库的及其数据就挂了。
其实不是这样的
数据库及其对象依然还在
只是我们需要重建实例
我们需要小心修改文件
过程是负责危险的
后果可能是严重以至于我们不愿意面对的
所以
当发生这种情况
我们不要绝望
不要心死
但是最好不要这样
实例的创建
实例的创建是需要首先有个实例用户的及其组的创建
也就是说假如我们想创建 实例 a
那么我们首先必须在os里面有个用户 a 和相应的组
另外的前提是实例的创建需要有root权限
64位的实例的创建
在db2v9中
64位的实例创建在db2icrt的命令里面就自动默认了,当然只要你的os是64bit的就可以了。
在db2v8中似乎还要在db2icrt 中再指定 -w 64来指定它
我们通常所说的实例实际都是指的是服务器实例,就是一个全功能的实例。
其实db2的实例还有一个类型是客户端实例类型
这个主要是在一些cs的架构的程序结构中
很多的几年以前的程序都是这样的cs结构,需要去调用db2的执行代码和各个库文件
这个实例实际就是只能去提供对db2程序和库文件的链接和实现对目标实例的attach和对目标数据库的连接
但是不能做关于数据库对象的任何操作
再详细一点,就是不能创建数据库
实现命令:
db2icrt -s client ypinstance
删除实例
db2idrop ypinstance
我们也可以实现将某个实例设置为服务器启动,实例自动启动的,
db2iauto on ypinstance
但是我估计没有人愿意用这样的功能,实在想不出有什么需要这个功能的理由。
在实例启动之后,我们在ps -ef 中可以看见有个db2sysc的进程出现了。这个进程就是实例的主进程。
停止实例
停止实例的命令是db2stop
但是实际数据库一般都是活动的并且有大量的连接,我们需要首先deactivate db,这样首先将数据库停止,
然后将我们的连接断掉,就是connect reset
我估计就是这样,我们也很难将所有的链接断开,因为程序是不停的起连接,
一般情况之下我们都是用 force applications all
但是这样并不能阻止新的连接的产生
所以我都是用db2stop force
这个命令2个作用
1 force applications all
2 阻止新的连接
attach
attach是针对实例的。
假设你在一个linux机器上面的实例里面去开发和测试,这时你需要去另外一个实例中去做一些维护操作
比如 查看总共有多少链接
监控数据库的情况
更改dbm的参数
你如何做?
再开一个securecrt的session,链接另外的机器,输入用户名和密码,然后执行操作?
attatch就是将远程的实例编目到本地的实例,使你可以直接去做对另外的实例的操作。
这样肯定是比较简单的
当然如果你不辞劳苦,不怕麻烦是另外一回事了。
反正我现在是特别懒,我已经懒到了不想上班了,随便在小区里面遛弯的时候,钱就已经挣到了,而且是直接打到我的信用卡上,
可以直接去消费了。
这是我的终极目标。
attach是实例的链接
connect to 是数据库层面的链接。
实例层面的命令
db2start
db2stop
db2icrt
db2idrop
db2ilist
get dbm cfg
reset dbm cfg
歇会儿,出去抽袋烟。
原文链接: http://www.ituren.org.cn/html/jishusuibi/200809/07-125.html |
|