在使用 YMP 进行数据库迁移时,有用户在执行元数据阶段的索引创建操作时遭遇如下报错:

YAS-04204 number of PARALLEL must be between 1 and 4

这个错误通常出现在资源配置较小的环境中。别急,这其实和数据库创建索引时允许的并发度有关。
image.png

一、问题背景
用户在一台 2 核 CPU、8GB 内存的最小配置机器上部署了 YashanDB 和 YMP,在执行元数据迁移第二阶段——也就是创建索引这一步骤时,迁移任务中断,系统提示并发度设置超限。
image.png

image.png
二、问题原因
YashanDB 在执行索引创建时,系统会根据实际 CPU 核数限制最大并发度。这个限制是 CPU 核心数乘以 2。

也就是说,2 核的环境下,并发创建索引的最大值为 4。

而 YMP 的配置文件中默认将 migration.parallel.index 设置成了 5,这个值超过了数据库允许的上限,因此执行时就会触发 YAS-04204 报错。
image.png

三、解决方法
要解决这个问题,其实很简单:

1.打开 YMP 的配置文件;

2.找到 migration.parallel.index 这个参数;

3.将其数值改为 4 或更低;

4.保存配置,重启 YMP;

5.在 YMP 控制台选择“失败项重试”,即可继续任务。

修改后,YMP 就不会再尝试以超出数据库限制的并发度去建索引,迁移流程也能顺利走通。

四、适用版本
此问题主要出现在以下版本组合中:

YMP:23.2.1.100

YashanDB:23.2.1.1000

尤其是在资源较小的测试环境或试用场景下更易出现。

五、经验建议
在执行 YashanDB 迁移时,尤其是自动化工具(如 YMP)进行并发建表建索引时,一定要注意目标机器的 CPU 核心数是否足够。如果机器配置较低,建议适当下调 YMP 的并发参数,避免类似错误反复出现。

对于标准生产环境,推荐使用至少 4 核及以上配置,以保障迁移效率和稳定性。


数据库砖家
1 声望0 粉丝