Instalei o DB2 Express 10.1 em meu notebook com Windows 7 (64 bits). Agora, após a conclusão da instalação, não consigo me conectar ao banco de dados. Durante a instalação, especifiquei "C:\Daten\db\db2" como o diretório a ser usado para o DB2.
Ao tentar conectar, recebo o seguinte erro:
SQL1031N O diretório do banco de dados não pode ser localizado no sistema de arquivos indicado.
No entanto, o banco de dados parece estar lá:
db2 => connect to db2inst
SQL1031N The database directory cannot be found on the indicated file system.
SQLSTATE=58031
db2 => list database directory
System Database Directory
Number of entries in the directory = 1
Database 1 entry:
Database alias = DB2INST
Database name = DB2INST
Local database directory = C:\Daten\db\db2\IBM\DB2\DB2INST
Database release level = f.00
Comment =
Directory entry type = Indirect
Catalog database partition number = -1
Alternate server hostname =
Alternate server port number =
Verifiquei se os privilégios do sistema de arquivos estão corretos para o diretório (o usuário que executa o serviço DB2 tem controle total sobre esse diretório e também o tornei o proprietário).
O conteúdo de C:\Daten\db\db2\
se parece com isso:
\---IBM \---DB2 \---DB2INST +---cfg +---cfgcache +---DB2 | +---ctrl | +---hmonCache | | \---DB2 | | \---0 | | \---ossipcres | +---log | +---segurança | | \---auditdata | +---spmlog | | \---SPMLOGSD | +---SQLDBDIR | +---TMP | \---UIF +---DB2DAS00 | +---cfg | +---despejar | +---log | +---metadados | \---tmp | +---dastmp | \---schedtmp +---db2dump +---função | \---não protegido \---licença
Eu então tentei re-catalogar o banco de dados:
db2 => banco de dados não catalogado db2inst DB20000I O comando UNCATALOG DATABASE foi concluído com êxito. DB21056W As mudanças no diretório podem não ser efetivas até que o cache do diretório seja atualizado. db2 => banco de dados do catálogo db2inst em "c:\Daten\db\db2\IBM\DB2\DB2INST\" DB20000I O comando CATALOG DATABASE foi concluído com êxito. DB21056W As mudanças no diretório podem não ser efetivas até que o cache do diretório seja atualizado.
Mas isso também não ajudou.
Por algum motivo, parece que o DB2 não pode acessar o diretório (existente):
db2 => liste o diretório db em "c:\Daten\db\db2\IBM\DB2\DB2INST\" SQL1031N O diretório do banco de dados não pode ser localizado no sistema de arquivos indicado. SQLSTATE=58031 db2 => listar o diretório do banco de dados
Não tenho experiência com DB2 e da última vez que instalei o Express tudo correu bem, então estou um pouco perdido agora.
Se você criou seu banco de dados em C:\Daten\db\db2\IBM\DB2, esse deve ser o caminho para o diretório do banco de dados. (ou seja, deve ser um maior do que onde reside seu banco de dados).
Além disso, apenas querendo saber qual comando você usou quando construiu seu banco de dados? Onde você especificou que ele mora?
Problema semelhante foi resolvido pelos seguintes passos:
db2stop
db2set DB2COMM=tcpip
3.1. opcional
db2set DB2_CREATE_DB_ON_PATH=YES
db2 CATALOG ADMIN TCPIP NODE {your_node_name} REMOTE {host_name} SYSTEM {system_name} OSTYPE {your_os_type_code}
db2start