4

DB2 データベースから SQL データを生成しようとすると、Java ヒープ領域の問題が発生します。約 1000 のレコードを持つ約 25 のテーブルがあります。

変更セット データの生成には、以下のスクリプトを使用します。

C:\liquibase-3.0.2-bin>liquibase --driver=com.ibm.db2.jcc.DB2Driver \
--classpath="C:\db2jcc.jar" \
--changeLogFile="C:\Liquibase Release\liqui_MYDB_MYSCHEMA_Data.xml" \
--url="jdbc:db2://__ip__here__:9008/MYDB" \
--username="user" \
--password="12345" \
--defaultSchemaName="MYSCHEMA" \
--diffTypes=data  \
generateChangeLog

liquibase.bat ファイルで JAVA_OPTS を設定してメモリを増やそうとしましたが、解決策はありませんでした。

  • set JAVA_OPTS="-XX:MaxPermSize=1024m"
  • set JAVA_OPTS="-Xms512m -Xmx1024m"
4

1 に答える 1

3

MaxPermSize を実行するべきではないため、より大きな Xmx フラグを設定するだけで十分です。

--dataOutputDirectory=DIR_YOU_WANTフラグを追加することも役立つ場合があります。これにより、Liquibase はデータを CSV ファイルに出力し、作成に必要なメモリ量が少なくなります。結果の XML+CSV は、通常、巨大な XML ファイルよりも扱いやすいです。

何かのようなもの:

C:\liquibase-3.0.2-bin>liquibase \ 
--driver=com.ibm.db2.jcc.DB2Driver \ 
--classpat h="C:\db2jcc.jar" \ 
--changeLogFile="C:\Liquibase Release\liqui_MYDB_MYSCHEMA_Data.xml" \ 
--url="jdbc:db2://__ip__here__:9008/MYDB" \ 
--username="user" \ 
--password="12345" \ 
--defaultSchemaName="MYSCHEMA" \ 
--diffTypes=data \ 
--dataOutputDirectory=C:\Liquibase Release\liqui_MYDB_MYSCHEMA_Data.out \ 
generateChangeLog
于 2013-09-08T02:11:10.613 に答える