民航电子数据库: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

相关推荐
wu8587734573 分钟前
向量数据库不是银弹:从枚举漏检到 ReACT 多轮召回的实践路径
前端·数据库·react.js
hsg7738 分钟前
简述:Jensen Huang‘s Footsteps网站全内容分析
前端·javascript·数据库
yuezhilangniao39 分钟前
MySQL 8.0.32 二进制安装脚本 和初始化 操作系统版本rocky86
数据库·mysql·adb
Trouvaille ~1 小时前
【Redis篇】Redis 主从复制:数据同步的原理与实现
数据库·redis·缓存·中间件·高可用·主从复制·后端开发
真实的菜1 小时前
Redis 从入门到精通(五):哨兵模式(Sentinel)—— 自动故障转移的完整原理与实战
数据库·redis·sentinel
唔661 小时前
(二)补充完整的数据库、中间件、MQTT、JAR后台和Web前端的部署脚本,全部一键自动化。
数据库·中间件·jar
六月雨滴1 小时前
Oracle 内存优化
数据库·oracle
学代码的真由酱2 小时前
MySQL数据库进阶-数据库设计实践-Java
数据库·mysql·数据库设计
遇事不決洛必達2 小时前
【数据库系列】本地映射云服务器Mysql的方法
服务器·数据库·mysql·定时任务
海鸥-w2 小时前
用python (fastapi)做项目第一天创建项目结构,数据建表,ORM配置安装,写第一个接口
数据库·python·fastapi