DB2数据库完整性暂挂SQL0668N的错误案例

报错,错误号为:SQL0668N

详细说明:

SQL0668N 不允许对表 "<表名 designtimesp=24220>" 执行操作, 原因码。

解释:

限制对表 "<表名 designtimesp=24224>" 的访问。原因基于下列原因码

原因码:

1 该表处于“设置完整性暂挂无访问”状态。未强制表的完整性并且表的内容可能是无效的。如果从

属表处于“设置完整性暂挂无访问”状态,则对于未处于“设置完整性暂挂无访问”状态的父表或基

础表执行的操作也可能会接收到此错误。

2 表处于“无数据移动”状态。当处于此状态时,禁止导致数据移动的操作。数据移动操作包括REDISTRIBUTE、数据库分区键的更新、多维集群键的更新、范围集群键的更新、数据分区键的更新和 REORG TABLE。

3 表处于“装入暂挂”状态。对此表的先前的 LOAD尝试失败。在重新启动或终止 LOAD操作之前不允许对表进行访问。

4 表处于“读访问”状态。此状态可以在联机装入(LOAD)处理(带有 READ ACCESS 选项的 LOAD insert)期间发生,或在联机装入(LOAD)操作后发生,除了在使用SET INTEGRITY

语句在表的新追加的部分验证所有约束之前。不允许对此表的更新活动。

5 表处于“正在装入”状态。LOAD 实用程序当前对此表进行操作,直到 LOAD完成才允许访问。

6 不能在 ESE 中刷新引用昵称的具体化查询表。

7 表处于“REORG 暂挂”状态。在执行包含 REORG 建议的操作的 alter TABLE语句后,可能会发生这种情况。

8 表处于“改变暂挂”状态。当在包含 REORG 建议的操作的 alter TABLE语句所在工作单元中使用该表时,就可能会发生这种情况。

用户响应:

1 对表 "<表名 designtimesp=24243>" 执行带有 IMMEDIATE CHECKED 选项的SETINTEGRITY 语句,以使表脱离“设置完整性暂挂无访问” 状态。对于用户维护的具体化查询表,执行带有IMMEDIATE UNCHECKED选项的语句,而不是带 IMMEDIATECHECKED选项。

2 对表 "<表名 designtimesp=24245>"

的从属立即具体化查询表和登台表执行 REFRESH TABLE语句。可以通过先前的 LOAD insert 操作根据 "<表designtimesp=24248>" 的追加数据以及通过先前带有 ATTACH子句的 alter TABLE 语句根据 "<表名 designtimesp=24249>" 的连接数据以增量方式维护这些从属立即具体化查询表 和登台表的内容。

3 通过分别发出带有 RESTART 或 TERMINATER 选项的LOAD来重新启动或终止先前失败的对此表的 LOAD 操作。

4 发出 LOAD QUERY

命令以检查该表是否正在装入。如果是,则一直等到 LOAD 实用程序完成,或如有必要,重新启动或终止先前失败的“装入”操作。如果当前未在进行LOAD,则发出带有 IMMEDIATE CHECKED 选项的 SET INTEGRITY语句以验证表的新装入部分中的约束。

5 一直等到当前 LOAD 操作完成。可用使用 LOAD QUERY命令来监视装入的进度。

6 使用 MAINTAIN BY USER

选项定义具体化查询表。然后,使用带有子查询的insert 语句填充具体化查询表。

7 使用 REORG TABLE命令重组表(注意,不允许对处于“REORG暂挂”状态的表执行 INPLACE REORG TABLE)。

8 完成该工作单元,然后重新发出该命令。

sqlcode : -668

sqlstate : 57007

-------------------------------------------------------

解决方案:

在服务器端CLP执行下列命令即可:

SET INTEGRITY FOR DB2ADMIN.ALARMTARGET IMMEDIATE CHECKED

说明:如果表处于"设置完整性暂挂"的状态,那么就需要尽快处理,否则该表不能进行 select、update、delete 等操作。

时间: 2024-12-24 13:31:33

DB2数据库完整性暂挂SQL0668N的错误案例的相关文章

LOAD工具使DB2各种暂挂问题解决方案整理

为了加快数据的装载速度,许多DBA们喜欢使用load工具进行数据的迁移和装载,但是load工具带来便利性的同时也为我们带来一些问题,今天就着重介绍一下当我们再使用Load工具时遇到问题后的解决办法.众所周知,load过程分为4个阶段:load/build/delete/index copy.load阶段是将源文件parser成物理数据存储的格式,直接装入到页中,而不通过db2引擎,load阶段会检查表定义,违背定义的数据不会装入到表中.build阶段建议索引(如果装入表有索引的话),会检查唯一性

DB2数据库物化视图:MQT物化查询表的使用

使用 MQT物化查询表(Materialized Query Tables, MQT) MQT 的定义基于查询的结果.MQT 可以显著提高查询的性能.本教程将介绍 MQT.总结表(summary table)和 staging 表,并通过一些实用的例子展示如何创建和使用物化查询表. MQT 是基于查询的结果定义的一个表.MQT 中包含的数据来自 MQT 定义所基于的一个或多个表.总结表(也称自动总结表[AST])对于 IBM DB2 for Linux, UNIX, and Windows 的用

DB2数据库表空间重定向恢复实例分析

一.发出重定向恢复命令 DB2 RESTORE DB OLDDB FROM "C:\OLDDBbak" TAKEN AT 20150717164847 TO "C:" INTO NEWDB REDIRECT 其中,OLDDB是旧数据库.备份的数据库名称,NEWDB是新数据库名称,不用事先创建也可以,C:\OLDDBbak是备份文件放置的目录,20150717164847是 备份文件的时间戳,具体可看备份文件的名字OLDDB.0.DB2.NODE0000.CATN00

db2数据库常用操作命令大全_数据库其它

本文详细汇总了DB2的常用操作命令,分享给大家.对于使用db2的朋友可以参考下. DB2数据库管理客户端从v9.7版本之后就不再带有控制中心了,而是使用 Data Studio Client.安装 DB2 数据库产品期间不会应用许可证密钥.但是,下列产品没有激活 CD,因此会在安装这些产品的过程中自动应用其许可证:DB2 Express-C 和 DB2 Connect 个人版.此外,DB2 个人版也是一个特殊案例.虽然 DB2 个人版具有激活 CD,但是会在安装该产品的过程中自动应用其许可证.

数据库应用系统中的数据库完整性

数据库完整性(Database Integrity)是指数据库中数据的正确性和相容性.数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计. 数据库完整性约束可以通过DBMS或应用程序来实现,基于DBMS的完整性约束作为模式的一部分存入数据库中.通过DBMS实现的数据库完整性按照数据库设计步骤进行设计,而由应用软件实现的数据库完整性则纳入应用软件设计(本文主要讨论前者).数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面: 1.数据库完

DB2数据库性能优化的几个小技巧

最简单而最见成效的--Bufferpool 缓冲池是内存中的一块存储区域,用于临时读入和更改数据库页(包含表行或索引项).缓冲池的用途是为了提高数据库系统的性能.从内存访问数据要比从磁盘访问数据快得多.因此,数据库管理器需要从磁盘读取或写入磁盘的次数越少,性能就越好.对一个或多个缓冲池进行配置之所以是调优的最重要方面,是因为连接至数据库的应用程序的大多数数据(不包括大对象和长字段数据)操作都在缓冲池中进行. 缺省情况下,应用程序使用缓冲池 IBMDEFAULTBP,它是在创建数据库时创建的.当

DB2数据库文件系统已满的解决方法

错误案例: 在AIX系统的DB2数据库中创建大小为20G的表空间,具体的SQL如下: create REGULAR TABLESPACE HTDC_DATA PAGESIZE 8 K MANAGED BY DATABASE USING ( FILE '/db2_tag/TABLE_SPACES/HTDC_DATA/HTDC_DATA.dat' 20G) EXTENTSIZE 16 OVERHEAD 10.67 PREFETCHSIZE 16 TRANSFERRATE 0.04 BUFFERPOO

编目DB2数据库(原创)

为什么要对数据库进行编目 在创建数据库时DB2会自动地对数据库进行编目.它在本地数据库目录中为数据库编写一个条目,在系统数据库目录中编写另一个条目.如果数据库是从远程客户机(或者是从同一台机器上另一个实例执行的客户机)创建的,那么也会在客户机实例上的系统数据库中创建一个条目. 那么,为什么必须对数据库进行编目?如果没有编目信息,应用程序就无法连接数据库!DB2 有多个用来访问数据库的目录.这些目录让DB2能够找到已知的数据库,无论它们是在本地系统上,还是在远程系统上.系统数据库目录包含一个列表和

java jdbc 对 DB2 数据库 做CRUD 操作

问题描述 java jdbc 对 DB2 数据库 做CRUD 操作 本人想通过 java 的jdbc 连接 DB2 数据库,并对数据库进行操作,操了好几天了, 是这样的报错 的 DB2 SQL error: SQLCODE: -805, SQLSTATE: 51002, SQLERRMC: null 自己也去找了这个报错是什么意思, 网上是这样解释的 : -805 在计划中没有发现DBRM或程序包名 解决的办法就是重新绑定 然后自己又去 找 怎么绑定的方法. 我之前一直用的 sql server