DROP TABLE IF EXISTS `qrtz_job_details`; CREATE TABLE `qrtz_job_details` ( `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `JOB_NAME` varchar(190) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `JOB_GROUP` varchar(190) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `DESCRIPTION` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `JOB_CLASS_NAME` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `IS_DURABLE` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `IS_NONCONCURRENT` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `IS_UPDATE_DATA` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `REQUESTS_RECOVERY` varchar(1) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `JOB_DATA` blob NULL, PRIMARY KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE, INDEX `IDX_QRTZ_J_REQ_RECOVERY`(`SCHED_NAME`, `REQUESTS_RECOVERY`) USING BTREE, INDEX `IDX_QRTZ_J_GRP`(`SCHED_NAME`, `JOB_GROUP`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci; DROP TABLE IF EXISTS `qrtz_triggers`; CREATE TABLE `qrtz_triggers` ( `SCHED_NAME` varchar(120) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `TRIGGER_NAME` varchar(190) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `TRIGGER_GROUP` varchar(190) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `JOB_NAME` varchar(190) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `JOB_GROUP` varchar(190) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `DESCRIPTION` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `NEXT_FIRE_TIME` bigint(13) NULL DEFAULT NULL, `PREV_FIRE_TIME` bigint(13) NULL DEFAULT NULL, `PRIORITY` int(11) NULL DEFAULT NULL, `TRIGGER_STATE` varchar(16) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `TRIGGER_TYPE` varchar(8) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, `START_TIME` bigint(13) NOT NULL, `END_TIME` bigint(13) NULL DEFAULT NULL, `CALENDAR_NAME` varchar(190) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, `MISFIRE_INSTR` smallint(2) NULL DEFAULT NULL, `JOB_DATA` blob NULL, PRIMARY KEY (`SCHED_NAME`, `TRIGGER_NAME`, `TRIGGER_GROUP`) USING BTREE, INDEX `IDX_QRTZ_T_J`(`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) USING BTREE, CONSTRAINT `qrtz_triggers_ibfk_1` FOREIGN KEY (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) REFERENCES `qrtz_job_details` (`SCHED_NAME`, `JOB_NAME`, `JOB_GROUP`) ON DELETE RESTRICT ON UPDATE RESTRICT ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci; qrtz_triggers表无数据、删除qrtz_job_details表中数据会报错1235 -uncertain plan violating external consistency not supported
SYS租户下面的test账户
请创建一个业务租户,在业务租户里用。
sys租户是集群自己用的。
MySQL [oceanbase]> select t1.name resourcepoolname, t2.name unitconfigname, t2.maxcpu, t2.mincpu, round(t2.maxmemory/1024/1024/1024) maxmemgb, round(t2.minmemory/1024/1024/1024) minmemgb, t3.unitid, t3.zone, concat(t3.svrip,':',t3.svrport) observer,t4.tenantid, t4.tenantname from allresourcepool t1 join allunitconfig t2 on (t1.unitconfigid=t2.unitconfigid) join allunit t3 on (t1.resourcepoolid = t3.resourcepoolid) left join alltenant t4 on (t1.tenantid=t4.tenantid) order by t1.resourcepoolid, t2.unitconfigid , t3.unitid; +--------------------+------------------+---------+---------+------------+------------+---------+-------+----------------+-----------+-------------+ | resourcepoolname | unitconfigname | maxcpu | mincpu | maxmemgb | minmemgb | unitid | zone | observer | tenantid | tenant_name | +--------------------+------------------+---------+---------+------------+------------+---------+-------+----------------+-----------+-------------+ | syspool | sysunit_config | 5 | 5 | 1 | 1 | 1 | zone1 | 127.0.0.1:2882 | 1 | sys | | test | test | 9 | 9 | 3 | 3 | 1001 | zone1 | 127.0.0.1:2882 | 1001 | test | +--------------------+------------------+---------+---------+------------+------------+---------+-------+----------------+-----------+-------------+ 2 rows in set (0.012 sec) 这里面的test不属于业务租户么
从这个报错来看,可能是由于可能是由于没有开启 GTS。
执行这个命令查看一下是否开启 GTS MySQL [test]> SHOW VARIABLES LIKE 'ob_timestamp_service'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | ob_timestamp_service | GTS | +----------------------+-------+ 1 row in set (0.01 sec) 如果没有开启的话,可以执行一下语句开启 MySQL [test]> SET GLOBAL ob_timestamp_service='GTS'; Query OK, 0 rows affected (0.01 sec)
那我最上面有外键删除数据报错就不是这个问题sys租户问题?
MySQL [oceanbase]> SHOW VARIABLES LIKE 'obtimestampservice'; +----------------------+-------+ | Variable_name | Value | +----------------------+-------+ | obtimestampservice | LTS | +----------------------+-------+ 1 row in set (0.007 sec) MySQL [oceanbase]> SET GLOBAL obtimestampservice='GTS'; ERROR 1231 (42000): Variable 'obtimestampservice' can't be set to the value of 'GTS'
你连接的是sys租户还是test租户呢,连接串可以发一下?
大概率原因是你现在连接的租户还是sys租户,sys租户下的这个值是不能更改的。
这个test租户也是业务租户,但你现在连接的租户不是业务租户,可以参考这个查看连接方式:
@符号后面跟的是租户名。
查看租户可以直接在sys租户下查询表__all_tenant
select * from __all_tenant;
找到问题了、代码里面确实是连接了sys