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

相关推荐
Coder_Boy_22 分钟前
技术让开发更轻松的底层矛盾
java·大数据·数据库·人工智能·深度学习
helloworldandy29 分钟前
使用Pandas进行数据分析:从数据清洗到可视化
jvm·数据库·python
数据知道2 小时前
PostgreSQL 故障排查:如何找出数据库中最耗时的 SQL 语句
数据库·sql·postgresql
qq_12498707532 小时前
基于SSM的动物保护系统的设计与实现(源码+论文+部署+安装)
java·数据库·spring boot·毕业设计·ssm·计算机毕业设计
枷锁—sha2 小时前
【SRC】SQL注入WAF 绕过应对策略(二)
网络·数据库·python·sql·安全·网络安全
Coder_Boy_2 小时前
基于SpringAI的在线考试系统-考试系统开发流程案例
java·数据库·人工智能·spring boot·后端
Gain_chance2 小时前
35-学习笔记尚硅谷数仓搭建-DWS层最近n日汇总表及历史至今汇总表建表语句
数据库·数据仓库·hive·笔记·学习
此生只爱蛋3 小时前
【Redis】主从复制
数据库·redis
马猴烧酒.3 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库
天天爱吃肉82184 小时前
跟着创意天才周杰伦学新能源汽车研发测试!3年从工程师到领域专家的成长秘籍!
数据库·python·算法·分类·汽车