小牛
作者小牛2012-02-14 12:23
商业智能工程师, 自由职业

DB2报错:SQL10007N Message "-1390" could not be retrieved. Reason code:

字数 1770阅读 14581评论 0赞 0

问题现象:某人安装完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 条评论

Ctrl+Enter 发表

作者其他文章

相关问题

相关资料

X社区推广