Informix:create table as select * from <old table =“”>锁定DB,如何解锁?

时间:2017-02-24 15:50:21

标签: informix

我在桌面改造上做了一些R&amp; D.所以,我需要一个表的克隆。

我运行命令&#34; create table <table name> as select * from <old table>&#34;它起作用了。

但是,当我第二次运行时,我在中间取消了命令,之后我收到了以下错误。

$ select count(*) from my_table_copy;
SQL -211: Cannot read system catalog (systables).
ISAM -154: ISAM error: Lock Timeout Expired
SQLSTATE: IX000 at /dev/stdin:1

当我尝试通过Open Admin获取数据库时,也会出现错误:

  

256:数据库查询失败: -

     

错误:-244 [Informix] [Informix ODBC Driver] [Informix]无法执行   物理顺序读取以获取下一行。在sqlerrm(SYSTABLES)   (SQLExecute [-244] at

如何解决这个问题?

谢谢,

1 个答案:

答案 0 :(得分:2)

您必须获得这些锁定错误,因为引擎正在回滚您的克隆表事务。

检查&#34; onstat -x&#34;如果在flags列上有一个带有R的事务。 est.rb_time列显示了恢复完成过程的估计值。

我的建议?如果您不需要在新表上使用完全相同的实际数据,则可以将&#34; SET ISOLATION设置为DIRTY READ;&#34;就在create table命令之前。