DB2表暂挂---db2数据的导入2

报错,错误号为:SQL0668N
  详细说明:
  SQL0668N 不允许对表 "<表名>" 执行操作,原因码。
  解释:
  限制对表 "<表名>" 的访问。原因基于下列原因码
  原因码:
  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 对表 "<表名>" 执行带有 IMMEDIATE CHECKED 选项的SETINTEGRITY 语句,以使表脱离“设置完整性暂挂无访问” 状态。对于用户维护的具体化查询表,执行带有IMMEDIATE UNCHECKED选项的语句,而不是带 IMMEDIATECHECKED选项。
  2 对表 "<表名>"
  的从属立即具体化查询表和登台表执行 REFRESH TABLE语句。可以通过先前的 LOAD INSERT 操作根据
  "<表名>" 的追加数据以及通过先前带有 ATTACH子句的 ALTER TABLE 语句根据 "<表名>"
  的连接数据以增量方式维护这些从属立即具体化查询表 和登台表的内容。
  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
  -------------------------------------------------------
  解决方案(3个,一个不行或者行了,以后有又出问题的解决方案):

1、在服务器端CLP执行下列命令即可:
  SET INTEGRITY FOR DB2ADMIN.ALARMTARGET IMMEDIATE CHECKED
  说明:如果表处于"设置完整性暂挂"的状态,那么就需要尽快处理,否则该表不能进行 Select、Update、Delete 等操作。

2、db2 list tablespaces show detail
所有表都没有STATE没有是0x0020
而是0x0000
建议使用以下语句
IMPORT FROM xxxx.ixf OF IXF  MODIFIED BY  COMPOUND=5    NOCHECKLENGTHS
  COMMITCOUNT 500
  INSERT INTO tablename

其中,xxxx 为要导入的文件。需要注意的是COMMITCOUNT 一定不要太大,我的数据是1.98g,240多万条,使用图形界面生成语句默认值是1000,我改成500就好了。

3、如果表空间是停顿,可以使用以下命令

使用造成停顿的用户操作:db2 connect to instancename或者db2 connect to instancename use administrator using 111
db2 quiesce tablespaces for table <表名> share
db2 quiesce tablespaces for table <表名> reset

我们的表是共享停顿,使用以上方法解决了,最后停顿没有了,但依然有原因码3,最后再 load几条数据,ok了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值