民航电子数据库:CAEMigrator迁移数据库时总是卡死

目录


一、场景

1、对接民航电子数据库

2、将mysql数据库迁移到cae数据库

3、使用CAEMigrator迁移工具进行数据库迁移时,该工具会卡死(不清楚是否是部署cae服务的服务器资源导致)


二、异常情况

在生成任务的时候就会卡死


三、排查

将以下sql分别在mysql5mysql8数据库执行(随便哪个库),会出现不同的结果

以下SQL由民航电子数据库对接人员提供

sql 复制代码
-- sql1
SELECT
	* 
FROM
	information_schema.PARAMETERS;


-- sql2
SELECT
	a.table_schema,
	a.TABLE_NAME,
	a.CONSTRAINT_name,
	b.constraint_type,
	a.column_name,
	a.REFERENCED_TABLE_NAME,
	REFERENCED_COLUMN_NAME,
	c.UPDATE_RULE,
	c.DELETE_RULE,
CASE
		CONSTRAINT_TYPE 
		WHEN 'PRIMARY KEY' THEN
		0 
		WHEN 'FOREIGN KEY' THEN
		1 
		WHEN 'UNIQUE' THEN
		2 
		WHEN 'CHECK' THEN
		3 ELSE 4 
	END,
	a.ORDINAL_POSITION 
FROM
	(
	SELECT
		table_schema,
		TABLE_NAME,
		CONSTRAINT_name,
		upper(
		GROUP_CONCAT( DISTINCT column_name )) AS column_name,
		REFERENCED_TABLE_NAME,
		upper(
		GROUP_CONCAT( DISTINCT REFERENCED_COLUMN_NAME )) AS REFERENCED_COLUMN_NAME,
		ORDINAL_POSITION 
	FROM
		information_schema.KEY_COLUMN_USAGE 
	WHERE
		table_schema = 'business0' 
		AND table_name = 't_aias_busiflowcfg' 
	GROUP BY
		table_schema,
		TABLE_NAME,
		REFERENCED_TABLE_NAME,
		CONSTRAINT_name,
		ORDINAL_POSITION 
	) a
	INNER JOIN ( SELECT TABLE_NAME, CONSTRAINT_NAME, constraint_type FROM information_schema.TABLE_CONSTRAINTS WHERE TABLE_SCHEMA = 'business0' AND TABLE_NAME = 't_aias_busiflowcfg' ) b ON a.constraint_name = b.constraint_name 
	AND a.table_name = b.table_name
	LEFT JOIN ( SELECT CONSTRAINT_NAME, UPDATE_RULE, DELETE_RULE FROM information_schema.REFERENTIAL_CONSTRAINTS WHERE TABLE_NAME = 't_aias_busiflowcfg' ) c ON a.CONSTRAINT_NAME = c.CONSTRAINT_NAME 
ORDER BY
	a.CONSTRAINT_name


-- sql3
SELECT DISTINCT
	t.table_schema,
	t.table_name,
CASE
		
		WHEN p.partition_method = 'RANGE COLUMNS' THEN
		'RANGE' 
		WHEN p.partition_method = 'LIST COLUMNS' THEN
		'LIST' ELSE p.partition_method 
	END,
	NULL,
	p.partition_expression,
	NULL,
	count( p.partition_name ),
	0,
NULL 
FROM
	INFORMATION_SCHEMA.TABLES t,
	INFORMATION_SCHEMA.PARTITIONS p 
WHERE
	t.table_schema = p.table_schema 
	AND t.table_name = p.table_name 
	AND t.table_schema = 'business0' 
	AND t.table_name = 't_aias_busiflownodes' 
	AND t.create_options = 'partitioned' 
GROUP BY
	t.TABLE_SCHEMA,
	t.table_name,
	p.partition_method,
	NULL,
	p.PARTITION_EXPRESSION,
	NULL,
	p.partition_name

1、发现在迁移时,如果源数据库的版本是mysql5则会卡死

2、发现在迁移时,如果源数据库版本是mysql8则迁移正常


四、应急方案

如果需要迁移mysql5版本的数据库,可以先把数据库复制一份到mysql8,再从mysql8迁移到cae

相关推荐
jiayou6418 小时前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库
李广坤2 天前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区3 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1773 天前
《从零搭建NestJS项目》
数据库·typescript
加号33 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏3 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐3 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再3 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest3 天前
数据库SQL学习
数据库·sql
jnrjian3 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle