Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103118234
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类:

2008-04-12 23:38:30

    来源:csdn    作者:Mr_Bean

通过设置环境变量 DB2OPTIONS,也可对这些选项进行设置。如在 Intel 系统下使用:set DB2OPTIONS='+c -a';在 UNIX 系统下使用:export DB2OPTIONS='+c -a'。但命令行处理器选项设置的优先级高于 DB2OPTIONS 的设置。

另外使用 db2 update command options 命令,同样可以实现通过交互式输入模式或命令文件改变选项设置的功能。如:db2 update command options using c off。

2、DB2备份历史文件损坏

环境 产品:DB2

平台:跨平台

版本:DB2 5.2;DB2 6.1

问题 DB2备份历史文件损坏

解答 如果在作数据库备份操作时遇到DB2备份历史文件db2rhist.asc损坏, 错误代码SQL2048的错误,可按照如下步骤操作: 1. 先在NODE000x/SQL000x目录下找到该文件,及其备份文件db2rhist.bak,将db2rhist.asc文件移动到其他目录中。

2. 重新运行备份命令。此命令仍会报同样的错误,但同时DB2系统会自动用db2rhist.bak重新生成db2rhist.asc文件。

3. 再次运行备份命令,它将能够正确运行。

如果按照上面的步骤操作后,仍出同样的错误,则再按如下操作: 1. 先在NODE000x/SQL000x目录下找到该文件,及其备份文件db2rhist.bak,将这两个文件移动到其他目录中。

2. 重新运行备份命令。此命令仍会报同样的错误,但同时DB2系统会自动重新生成这两个文件。

3. 再次运行备份命令,它将能够正确运行。

3、DB2从7.2版本开始支持存储过程的发布,即可以将一个数据库上已编译好的存储过程抽取并安装到其它数据库上,目标数据库所在的服务器上不再需要c编译器。

解答 发布存储过程请按以下步骤:

1. 如果数据库是从7.1版本打补丁后升为7.2版本,请用

db2updv7 -d 数据库名

使DB2可以抽取或安装已编译好的存储过程;

2. 在源数据库,编译好存储过程;

3. 在源数据库,运行

db2 "get routine into 文件名 from procedure 存储过程名"

抽取存储过程;

4. 上传文件至目标服务器;

5. 在目标服务器端,运行

db2 "put routine from 文件名"

安装已编译好的存储过程。

4、DB2数据库中一个表的行长度、列数以及每页行数在表空间中的限制

环境 [产品] DB2 UDB

[平台] Windows 9x/NT/2000, Unix, Linux

[版本] 6.x/7.x

问题 DB2数据库中一个表的行长度、列数以及每页行数在表空间中的限制

解答 在DB2数据库中一个表的每行长度、列数以及每页行数在表空间中的限制如下:

表空间页面大小 表空间中行长度限制(bytes) 表空间中列数限制 表空间中每页最大行数

4K 4005 500 255

8K 8101 1012 255

16K 16293 1012 255

32K 32677 1012 255

注:表空间页面大小只有4K,8K,16K,32K四种。

5、当编译一个复杂的SQL语句时,出现SQL0101N错误,怎么办?

环境 DB2 V5.2; DB2 V6.1; DB2 V7.1

问题 某些SQL语句可能非常复杂,比如嵌套调用多个表或触发许多触发器,在对这样

的SQL语句进行编译时,出现SQL0101N错误,如何处理

解答 对于一个复杂的SQL语句,在调用多个表或触发多个触发器时, 可能会占用

大量的系统资源.

当出现SQL0101N错误时, 首先需要确认系统中没有递归的触发器存在.

之后可通过增加如下参数的值来解决此问题:

1)STMTHEAP

2)APPLHEAPSZ

3)PCKCACHESZ

阅读(340) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~