oms迁移视图报错

【产品名称】oms

【产品版本】oms 3.3.0

【问题描述】oms迁移视图时,预检查报错,迁移表数据没问题,报错如下:

报错信息也贴出来看看啊

是看oms_console_stdout.log这个日志么

JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@400414d] will not be managed by Spring
==> Preparing: UPDATE oms_task SET task_result=? WHERE id=?
==> Parameters: {“checkType”:“RDB_OBJECT_DEPENDENCY_INTEGRITY”,“endpointType”:“SOURCE”,“level”:3,“name”:“源端-主库-对象间依赖完整性检
查”,“role”:“MASTER”,“status”:“FINISHED”},{“checkType”:“DB_LOWER_CASE_TABLE_NAMES”,“endpointType”:“SOURCE”,“level”:2,“name”:“源端-主库-
库表名大小写敏感配置一致检查”,“role”:“MASTER”,“status”:“FINISHED”},{“checkType”:“RDB_SCHEMA_EXIST”,“endpointType”:“SOURCE”,“level”:1,"
name":“源端-主库-数据库存在性检查”,“role”:“MASTER”,“status”:“FINISHED”},{“checkType”:“DB_TIME_SYNC”,“endpointType”:“SOURCE”,“level”:1,
“name”:“源端-主库-数据库时钟同步性检查”,“role”:“MASTER”,“status”:“FINISHED”},{“checkType”:“DB_VERSION”,“endpointType”:“SOURCE”,“level”
:1,“name”:“源端-主库-数据库版本检查”,“role”:“MASTER”,“status”:“FINISHED”},{“checkType”:“RDB_CONNECT”,“endpointType”:“SOURCE”,“level”:0
,“name”:“源端-主库-数据库连通性检查”,“role”:“MASTER”,“status”:“FINISHED”},{“checkType”:“RDB_SCHEMA_EXIST”,“endpointType”:“DEST”,“level
“:1,“name”:“目的端-主库-数据库存在性检查”,“role”:“MASTER”,“status”:“FINISHED”},{“checkType”:“DB_TIME_SYNC”,“endpointType”:“DEST”,“leve
l”:1,“name”:“目的端-主库-数据库时钟同步性检查”,“role”:“MASTER”,“status”:“FINISHED”},{“checkType”:“RDB_CONNECT”,“endpointType”:“DEST”,”
level”:0,“name”:“目的端-主库-数据库连通性检查”,“role”:“MASTER”,“status”:“FINISHED”},{“checkType”:“DB_STRUCT_PRIVILEGE”,“endpointType”:
“DEST”,“level”:2,“mcmsMessageInfos”:[{“key”:“PRE_CHECK_FAILED”,“params”:{“jdbcUrl”:“jdbc:oceanbase://10.200.124.40:2883”}}],“name”:“目
的端-主库-结构迁移权限检查”,“role”:“MASTER”,“status”:“FAILED”}
, t_40ktmb9suyw0(String)
<== Updates: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@5d7ab7eb]
Creating a new SqlSession
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@7d510649] was not registered for synchronization because synchronizat
ion is not active
JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@400414d] will not be managed by Spring
==> Preparing: UPDATE oms_task SET task_result=? WHERE id=?

日志目录中,有个ghana的日志目录,麻烦打个压缩包再发下吧

权限检查失败,是否有主动检查权限给的够不够呢

ghana.tar.gz (3.4 MB)
您好,这是ghana目录的日志压缩包

这是我们的一个bug,后面会修复的。选择迁移对象时带上表,不要仅选择视图,可以先饶过这个问题。

迁移对象的时候带上表,还是报错了:

报错信息给下 :sweat_smile:

ghana.tar.gz (5.5 MB)
这是ghana目录日志

源端数据源是mysql8.0吗?

是的,mysql 8.0.18

如果是 MySQL 8.0 版本,请额外赋予 SHOW VIEW 权限。参考文档中的前提条件,这块后续会优化,在预检查时会加上这个检查项。https://www.oceanbase.com/docs/community/oms-cn/V3.3.0/10000000000296157

源端有show view权限的

你怎么验证的,发出来看下。

我试了一个源端是5.7的库,视图迁移没问题,是不是mysql 8.0的问题

刚才的问题解决了,是因为源mysql有几个视图依赖的表没了,所以报那个错,但是其他视图在转换的时候报错了:



视图ddl为:
CREATE ALGORITHM=UNDEFINED DEFINER=insight_uat@% SQL SECURITY DEFINER VIEW prpduser AS select a001.A001735 AS USERCODE,a001.A001001 AS USERNAME,a001.A001301 AS USERENAME,a001.A001302 AS PASSWORD,a001.A001303 AS SEAL,a001.A001304 AS PASSWORDSETDATE,a001.A001305 AS PASSWORDEXPIREDATE,a001.A001306 AS COMCODE,a001.A001307 AS MAKECOM,a001.A001210 AS ACCOUNTCODE,a001.A001308 AS PHONE,a001.A001715 AS MOBILE,a001.A001209 AS ADDRESS,a001.A001223 AS POSTCODE,a001.A001309 AS EMAIL,a001.A001310 AS USERFLAG,a001.A001311 AS LOGINSYSTEM,a001.A001312 AS NEWUSERCODE,(case when (a001.A001725 = ‘014500301’) then ‘1’ else ‘0’ end) AS VALIDSTATUS,a001.A001313 AS ARTICLECODE,a001.A001314 AS FLAG from a001 where (a001.ORG_TYPE = ‘2’)
character_set_client: utf8
collation_connection: utf8_general_ci

刚才有测试了下,相同的表和视图,5.7可以同步,8.0报视图转换语法错误,是不是oms对mysql8.0的支持有问题