数据库未在DB2中列出

数据库未在DB2中列出,db2,db2-luw,Db2,Db2 Luw,我在AIX服务器上的DB2上有一些数据库 我以DB2实例用户id“chandroo”(登录时自动设置db2profile)登录,并发出如下命令,但没有得到任何结果 chandroo@xxxxxxxx::/db2/chandroo> db2 list db directory chandroo@xxxxxxxx::/db2/chandroo> 但是,如果我直接从安装目录调用db2,我就能够看到条目,并且我不知道为什么会发生这种情况 chandroo@xxxxxxxxx::/opt/I

我在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>

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

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

. ~chandroo/sqllib/db2profile
db2listdbddirectory
这样的命令将开始工作


下一步是确定是什么阻止了在
$HOME/.profile
启动脚本中发生这种情况。如果您看到使用如上所示的正确语法调用db2profile,则
$HOME/.profile
上的执行权限可能有问题

我还注意到,没有一个db2命令适用于这个实例,chandroo@xxxxxxxx::/db2/chandroo>db2 get dbm cfgchandroo@xxxxxxxx::/db2/chandroo>当您以用户chandroo的身份登录时,您从命令
哪个db2
?@IanBjorhovde:我想您已经抓住了一个要点<代码>chandroo@XXXXXXXX::/db2/chandroo>哪个db2./db2但如果我给出如下所示的其他实例,我会得到一个路径作为结果。也许这就是原因<代码>instant1@XXXXXXXXX::/home/instant1>哪个db2
/home/instant1/sqllib/bin/db2
文件/db2/chandroo/db2是什么?它是二进制、shell脚本等吗?我会让它成为不可执行的(
chmoda-x/db2/chandroo/db2
),验证
哪个db2
返回正确的可执行文件(
/db2/chandroo/sqllib/bin/db2
),然后看看是否一切都恢复正常。@ianbjorhode:你救了我一天!!!我无法向上投票,因为我按了两次投票按钮,出现了错误:“您已经撤消了对此评论的投票;您无法再次向上投票”我尝试了您的建议,但问题仍然存在。下面是我的.profile文件:
chandroo@a25cirdb022::/db2/chandroo>cat.profile路径=/usr/bin:/etc:/usr/sbin:/usr/ucb:$HOME/bin:/usr/bin/X11:/sbin:。导出路径if[-f/db2/chandroo/sqllib/db2profile];那么/db2/chandroo/sqllib/db2profile fi
此外,我注意到以下不寻常的事情:
chandroo@a25cirdb022::/db2/chandroo>db2asdasdchandroo@a25cirdb022::/db2/chandroo>db2一些参数空间不足chandroo@a25cirdb022::/db2/chandroo>db2 xyzchandroo@a25cirdb022::/db2/chandroo>
db2不会因为无效参数而引发错误