InfiniDB: невозможно выполнить ошибку DDL/DML

Когда я пытаюсь запустить sql "Create Table" на infiniDB, я получаю следующую ошибку:

"Код ошибки: 122 IDB-2010: невозможно выполнить DDL/DML, поскольку сеанс 26 в настоящее время обновляет другую таблицу".

Создание таблицы sql не является чем-то необычным, это что-то вроде этого:

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

Почему происходит эта ошибка?

1 ответ

Это происходит из-за того, что InfiniDB использует модель блокировки таблиц (по крайней мере, для заданий импорта), поэтому одновременно для таблицы может выполняться только одна модификация.

В вашем случае, возможно, в данный момент выполняется задание или сбой. Это может произойти, если, например, cpimport segfaults. в любом случае, проверьте состояние блокировки с помощью команды:

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
Другие вопросы по тегам