问题现象:某人安装完DB2
9.7以后,发现db2inst1用户下无法运行一切db2命令,如果跑到db2的bin目录下运行db2命令,会给出标题内的错误提示。
分析:开始以为是传统的PATH变量抽风了,后来发现不是。偶然发现db2ilist可以运行,只是结果是空的,于是想到报错是因为没有建立instance造成的。
解决:回到root用户,运行db2icrt命令去创建instance,再切回db2inst,一切ok。当然,不要忘记db2start
以下是引用了某位兄弟博客里的关于db2 创建instance的,蛮详细的
比较重要的一个,参照利用向导创建instance的过程,他用的是:
db2icrt -a server -s ese -u db2fenc1 -p
db2c_db2inst1 db2inst1
-----------------------------------------------------------------------------------------------------------------
使用 db2icrt
创建实例
DB2® 实例是用来存储数据和运行应用程序的一种环境。使用 db2icrt 命令来创建实例。
在 Linux® 或UNIX®
操作系统上,必须具有 root 用户权限。
在
Windows® 操作系统上,必须以本地管理员登录。
要使用 db2icrt 创建实例:
1. 使用适当权限登录。
2. 运行
db2icrt 命令。例如,在 Linux 或 UNIX 操作系统上:
DB2DIR/instance/db2icrt -a AuthType
-u FencedID InstName
/opt/ibm/db2/V9.5/instance/db2icrt -a AuthType -u
FencedID InstName
在 Windows 操作系统上:
DB2DIRbindb2icrt -u FencedID InstName
其中:
DB2DIR
是 DB2 安装目录。
* 在
AIX®、HP-UX 或 Solaris 操作系统上,缺省 DB2 安装目录是 /opt/IBM/db2/V9.5
* 在 Linux 操作系统上,缺省安装目录是
/opt/ibm/db2/V9.5
-a AuthType (Linux 或 UNIX)
表示实例的认证类型。AuthType 可为 SERVER、CLIENT 或 SERVER_ENCRYPT
其中之一。 SERVER 是缺省值。此参数是可选的。
-u FencedID
表示将用来运行受防护用户定义的函数(UDF)和受防护存储过程的用户的名称。如果您正在客户机上创建实例,那么此标志不是必需的。但是在server上创建时必须要指定这个FencedID的。指定您创建的受防护用户的名称。
InstName
表示实例的名称。实例的名称必须与拥有实例的用户的名称相同。指定您创建的拥有实例的用户的名称。将在拥有实例的用户的主目录中创建该实例。
例如,如果正在使用服务器认证,受防护用户为 db2fenc1,并且拥有实例的用户为 db2inst1,那么使用以下命令以在 AIX
系统上创建实例:
/opt/IBM/db2/V9.5/instance/db2icrt -a server -u
db2fenc1 db2inst1
创建前的准备:
因为实例的名称必须与拥有实例的用户的名称相同。
所以 1 必须先创建拥有实例的用户 useradd db2int2
2 一个用户只能拥有一个实例
因为在server上创建时必须要指定这个FencedID的
所以 1 必须先创建这个Fencedid useradd db2fenc2
执行完创建instance命令后
/opt/IBM/db2/V9.5/instance/db2icrt -a server -u
db2fenc2 db2inst2
会自动将用户加入到相应的组中
su - db2inst2
id
uid=506(db2inst2) gid=506(db2inst2)
groups=103(dasadm1),506(db2inst2)
如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!
赞0
添加新评论0 条评论