0

我在 AIX 服务器上的 DB2 上有一些数据库。

我以 DB2 实例用户 ID“chandroo”(登录时自动设置 db2profile)登录并发出如下命令,但没有得到任何结果。

chandroo@xxxxxxxx::/db2/chandroo> db2 list db directory
chandroo@xxxxxxxx::/db2/chandroo>

但是,如果我直接从安装目录调用 db2,我可以看到这些条目,但我不知道为什么会发生这种情况。

chandroo@xxxxxxxxx::/opt/IBM/db2/V9.5/bin> ./db2 list db directory

 System Database Directory

 Number of entries in the directory = 2

Database 1 entry:

 Database alias                       = CHANDB
 Database name                        = CHANDB
 Local database directory             = /db2/chandroo/db
 Database release level               = c.00
 Comment                              =
 Directory entry type                 = Indirect
 Catalog database partition number    = 0
 Alternate server hostname            =
 Alternate server port number         =

Database 2 entry:

 Database alias                       = CHAN
 Database name                        = CHAN
 Local database directory             = /db2/chandroo/db
 Database release level               = c.00
 Comment                              =
 Directory entry type                 = Indirect
 Catalog database partition number    = 0
 Alternate server hostname            =
 Alternate server port number         =

chandroo@xxxxxxxxx::/opt/IBM/db2/V9.5/bin>
4

1 回答 1

2

听起来 db2profile 脚本的来源不正确。该脚本中定义的环境变量需要为您当前的 AIX shell 进程设置,而不是由 sh、ksh 或 bash 启动的临时子进程。这是通过指定一个点而不是程序名来运行 db2profile 脚本来实现的。区别很微妙,但很重要。

如果这是问题所在,运行此命令将通过正确初始化当前的 shell 进程来解决问题:

. ~chandroo/sqllib/db2profile

和类似的命令db2 list db directory将开始工作。

下一步是确定在您的$HOME/.profile启动脚本中阻止这种情况发生的原因。如果您看到对 db2profile 的调用使用如上所示的正确语法,则可能是$HOME/.profile.

于 2013-08-08T05:17:49.123 回答