DB2知识总结

来源:互联网 发布:域名企业代备案 编辑:程序博客网 时间:2024/06/06 05:58

1.恢复数据报错:SQL1005N  在本地数据库目录或系统数据库目录中已经存在数据库别名 "LYGYZX"。

SQLSTATE=00000

Answer:用Quest Central for DB2工具删除数据库

 

2.恢复数据库的时候报 SQL0294N  容器已在使用。  SQLSTATE=42730

Answer:把所有DB2目录下面包含“space”的文件夹删除;或者把所有数据库删除,再重新恢复。

把D盘gjyw文件夹的db文件夹删除

 

3.恢复数据库之前先停止数据库

 

4.

今天在公司继续Suse 10上的DB2 v9.5的安装,遇到的两个错误:SQL6031NSQL1032N

 

1.SQL6031N安装完成后无法创建实例,在终端输入命令./db2icrt -u db2fenc1 db2inst1后报错

在终端分别用命令"uname -a","hostname"查看主机名,以及/etc/hosts文件内的hostname是否一致,我的错误是/etc/hosts内的 hostname默认是localhost(127.0.0.1       localhost),将其改成与与命令查询结果一致的主机名即可。

另./db2icrt -u db2fenc1 db2inst1命令耗费时间特别久,所以一定要有耐心,我因为不耐烦N次在命令执行过程中ctrl+c取消了,结果浪费更多时间。

 

2.SQL1032N No start database manager command was issued. SQLSTATE=57019

进入/opt/ibm/db2/V9.5/adm目录下,用db2licm -l命令检查Licence是否过期.如果过期则用db2licm -a导入license;

Reboot后登录db2inst1进入DB2命令集,如果再出现SQL1032N错误,则使用terminate中断服务,再使用db2start重启DB2服务即可。

DB2数据库服务器 v8(Linux)在更改机器名后数据库服务异常,症状是当使用db2 list db directory命令或者其他命令的时候提示错误信息如下:

 

SQL6031N 在 db2nodes.cfg 文件的行号"1" 上出错。原因码为"10"。

 

解决的办法: 打开DB2实例所有者主目录下sqllib子目录下的文件db2nodes.cfg 修改其中的机器名为localhost保存后启动DB2实例即可。

DB2版本8开始,原来的DB2企业版和企业扩展版合并为企业服务器版,无论对于分区数据库和非分区数据库,在实例目录下都会有db2nodes.cfg文件,该文件记录了服务器节点信息。

以Windows平台为例,对于机器名为TSSTEST1上的一个单分区数据库实例DB2,在"SQLLIB"DB2目录下db2nodes.cfg文件中记录了下面一行:

0 TSSTEST1 TSSTEST1 0

如果修改了机器的机器名,则需要修改该文件。比如如果修改机器名为TEST,则上面的文件需要修改为

0 TEST TEST 0

否则,启动实据库实例时会报SQL6031N错误,原因码为10。

原因码10的解释是:确保在 db2nodes.cfg 的第 "<行>"行中定义的主机名值在系统上都定义了,并且可操作。

在Windows平台,如果定义实例为自动启动,或习惯在服务中启动实例,需要特别注意这个问题。

 

源文档 <http://hi.baidu.com/deng947/blog/item/7ce9b135a790e781a71e1228.html>

 

5.加长数据字段的长度

Answer:

 ALTER TABLE BU_ACCTLISTTMP

  ALTER COLUMN "ACCTNO"

    SET DATA TYPE VARCHAR (40);