FlyWay没有获取JVM内存设置

时间:2017-09-26 16:23:03

标签: java sql-server jvm flyway multiple-databases

我正在使用Flyway部署到300!数据库。我所做的是创建了一个包含flyway命令的cmd文件 - 每个300个数据库都有1行。

像这样:
flyway -configFile = -url = migrate。

cmd文件中有300条这样的行,当执行顺序时它的工作效果很好 - 显然它也需要更多的时间。

如果我想在并行运行它,我必须在命令开头添加'start',如下所示:

启动flyway -configFile =< conf file path> -url =< DB URL>迁移

这种方法面临的问题是 - 在大约100个DB上迁移后,Microsoft-Windows-Resource-Exhaustion-Detector检测到低虚拟内存条件。现在我知道如何设置JVM内存并尝试了各种选项,但我认为它根本没有任何区别。我认为FlyWay完全忽略了JVM设置。

我在Windows服务器(6位)上有16GB物理内存,正在执行Flyway。 当并行运行发生时 - 我已经检查了任务管理器,并且使用量不超过3 GB。 JRE版本是64位。 我设置_Java_Options。 我也尝试在Java控制面板中设置JVM内存,但似乎没有任何工作。

谢谢

1 个答案:

答案 0 :(得分:0)

您需要限制并行运行的迁移次数。根据您的描述,您似乎正在尝试运行300,这使用了太多RAM。并行尝试10并从那里开始工作。

对于基于Linux的方法,请参阅此问题Best strategy to run multiple flyway migration in parallel。使用git bash为windows安装git是一种方便的方法,可以让linux工具尝试这个。