我是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问题的东西吗?
答案 0 :(得分:0)
OOME可能是堆内存的湖泊,或者是RAM内存的湖泊。
使用命令top(linux)或系统管理器(windows),您可以查看系统是否正在运行足够的中央内存或交换空间。
解决问题的另一种方法是如何在命令行中指定堆大小?