当我试图在infiniDB上运行“Create”sql时,我会得到以下错误:
错误代码: 122 IDB-2010:无法执行DDL/DML,因为会话26正在更新另一个表。
Create没有什么特别之处,它是这样的:
CREATE TABLE table_name
(
col_1 smallint,
col_2 bigint,
create_date datetime
) ENGINE = InfiniDB DEFAULT CHARSET=utf8;为什么会发生这样的错误?
发布于 2015-02-18 11:57:28
这是因为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 4673https://stackoverflow.com/questions/18025005
复制相似问题