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

相关推荐
小宁爱Python12 分钟前
MySql的两种安装方式
数据库·mysql
程序员JerrySUN40 分钟前
GPU 基础矩阵精规组织教程:从基础作用到实战应用
数据库·系统架构·gpu算力
不辉放弃42 分钟前
Spark SQL 的 SQL 模式和 DSL模式
数据库·pyspark·大数据开发
飞翔的佩奇4 小时前
基于SpringBoot+MyBatis+MySQL+VUE实现的房屋交易平台管理系统(附源码+数据库+毕业论文+部署教程+配套软件)
数据库·spring boot·mysql·vue·毕业设计·mybatis·房屋交易平台
wb18910 小时前
服务器的Mysql 集群技术
linux·运维·服务器·数据库·笔记·mysql·云计算
zl0_00_010 小时前
web刷题2
数据库
SelectDB11 小时前
森马服饰从 Elasticsearch 到阿里云 SelectDB 的架构演进之路
大数据·数据库·数据分析
寒士obj12 小时前
MySQL偏门但基础的面试题集锦
数据库·mysql
唐叔在学习12 小时前
9类主流数据库 - 帮你更好地进行数据库选型!
数据库·redis·mysql·mongodb·nosql·大数据存储
失因12 小时前
Linux 权限管理与 ACL 访问控制
linux·运维·服务器·数据库·centos