InfiniDB:无法执行DDL / DML错误

时间:2013-08-02 19:44:03

标签: infinidb

当我尝试在infiniDB上运行'Create Table'sql'时,出现以下错误:

  

“错误代码:122 IDB-2010:由于会话无法执行DDL / DML   26目前正在更新另一张表。“

Create Table sql没什么特别的,它是这样的:

CREATE TABLE table_name
(
 col_1 smallint,
 col_2 bigint,
 create_date datetime
) ENGINE = InfiniDB DEFAULT CHARSET=utf8;

为什么会出现此错误?

1 个答案:

答案 0 :(得分:2)

这是因为InfiniDB使用表锁定模型(至少对于导入作业),因此一次只能在表上运行一次修改。

在您的情况下,可能有一个当前正在运行的作业或一个已崩溃的作业。如果即cpimport段错误,这可以开启。无论如何,使用以下命令检查锁定状态:

root@big1:~# /usr/local/Calpont/bin/viewtablelock 
 There is 1 table lock

  Table                       LockID  Process   PID    Session   Txn  CreationTime              State    DBRoots    
  mydb.stats_test             4673    cpimport  20855  BulkLoad  n/a  Wed Feb 18 11:48:04 2015  LOADING  1,2,3,4,5 

如果你确定这个过程不再运行,你可以杀死并清理它:

/usr/local/Calpont/bin/cleartablelock 4673