运行liquibase generateChangelog

时间:2018-11-29 01:15:27

标签: maven liquibase

我是liquibase的新手,并开始使用它从oracle db导出数据。我收到“ java.lang.OutOfMemoryError:超出了GC开销限制”。在建议增加堆大小的SO线程中发现很少。我也这样做了,但徒劳无功。我尝试运行的命令是

mvn -X liquibase:generateChangeLog -Dliquibase.diffTypes = data

这是我的pom.xml:

  <project>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mytests.liquibase</groupId>
  <artifactId>my-liquibase</artifactId>
  <version>1</version>
  <dependencies>
          <dependency>
                  <groupId>com.oracle</groupId>
                  <artifactId>ojdbc7</artifactId>
                  <version>12.1.0.2.0</version>
          </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <groupId>org.liquibase</groupId>
        <artifactId>liquibase-maven-plugin</artifactId>
        <version>3.4.1</version>
        <configuration>
                <argLine>-Xmx2048m</argLine>
                <propertyFile>
                        C:/Users/ygupta/Tools/db/liquibase.properties
                </propertyFile>
                <promptOnNonLocalDatabase>false</promptOnNonLocalDatabase>
        </configuration>
      </plugin>
    </plugins>
  </build>
</project>

这是liquibase.properties文件:

driver=oracle.jdbc.OracleDriver
url=jdbc:oracle:thin:@//nssrXXXX:1521/com
changelogSchemaName=XX
defaultSchemaName=XX
username=CXX
password=password
outputChangeLogFile=C:/Users/ygupta/Tools/db/dbcalms.changelog.xml

还有什么我可以尝试缓解堆/ GC问题的东西吗?

1 个答案:

答案 0 :(得分:0)

OOME可能是堆内存的湖泊,或者是RAM内存的湖泊。

使用命令top(linux)或系统管理器(windows),您可以查看系统是否正在运行足够的中央内存或交换空间。

解决问题的另一种方法是如何在命令行中指定堆大小?