【产品名称】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的日志目录,麻烦打个压缩包再发下吧
权限检查失败,是否有主动检查权限给的够不够呢
这是我们的一个bug,后面会修复的。选择迁移对象时带上表,不要仅选择视图,可以先饶过这个问题。
报错信息给下
源端数据源是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有几个视图依赖的表没了,所以报那个错,但是其他视图在转换的时候报错了:
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’)刚才有测试了下,相同的表和视图,5.7可以同步,8.0报视图转换语法错误,是不是oms对mysql8.0的支持有问题