- DC/OS 1.9.0
- マラソン1.4.2
- LiquiBaseを3.5.3
私は、MySQLデータベースに対してLiquiBaseを移行を実行短命ドッカコンテナを実装しました。コンテナは、開発中にドッキング・コンポジションを使用して大きく動作しています。しかし、私は生産の準備のためにこのコンテナをDCOSクラスター内に実装しようとしています。DC/OSでロックを取得した後、LiquibaseのMySQLデータベースへの移行がなぜ停止するのですか?(docker-composeで正常に動作しましたか?
Liquibaseが実行されると、正常にロックを取得してからただちに終了します。ここでは、実行の出力は次のようになります。DATABASECHANGELOGLOCK
テーブルが正常ので、私はそれがデータベースにアクセスして、テーブルを作成しているの両方を知って作成され
DEBUG 4/14/17 8:06 PM: liquibase: Connected to [email protected]@jdbc:mysql://test-db.marathon.l4lb.thisdcos.directory/myapp
DEBUG 4/14/17 8:06 PM: liquibase: Setting auto commit to false from true
DEBUG 4/14/17 8:06 PM: liquibase: Executing QUERY database command: select count(*) from myapp.DATABASECHANGELOGLOCK
DEBUG 4/14/17 8:06 PM: liquibase: Executing QUERY database command: select count(*) from myapp.DATABASECHANGELOGLOCK
INFO 4/14/17 8:06 PM: liquibase: Successfully acquired change log lock
/usr/local/bin/liquibase: line 56: 295 Killed java -cp "$CP" $JAVA_OPTS liquibase.integration.commandline.Main ${1+"[email protected]"}
、しかしそれだけで死にます。
実行した後、ロックテーブルは次のようになります。ここでは
MySQL [myapp]> select * from DATABASECHANGELOGLOCK;
+----+--------+-------------+----------+
| ID | LOCKED | LOCKGRANTED | LOCKEDBY |
+----+--------+-------------+----------+
| 1 | | NULL | NULL |
+----+--------+-------------+----------+
が実行されているコマンドです。
liquibase --changeLogFile=base_change_log.xml --driver=com.mysql.jdbc.Driver --url=jdbc:mysql://test-db.marathon.l4lb.thisdcos.directory/myapp --contexts=production --username=root --password=****** --classpath=/opt/jdbc_drivers/mysql-connector-java-5.1.40-bin.jar --logLevel=debug update
これは、LiquiBaseをbashのファイルの実行コマンドです:
java -cp .:/opt/liquibase/liquibase.jar:/opt/liquibase/lib/snakeyaml-1.17.jar liquibase.integration.commandline.Main --changeLogFile=base_change_log.xml --driver=com.mysql.jdbc.Driver --url=jdbc:mysql://test-db.marathon.l4lb.thisdcos.directory/myapp --contexts=production --username=root --password=****** --classpath=/opt/jdbc_drivers/mysql-connector-java-5.1.40-bin.jar --logLevel=debug update
私が言ったように、このコンテナは、ドッカーの作成でローカルで正常に動作します。すべてのすべてのdepsがdcosの奴隷の1つにあり、ローカルでliquibaseを実行します。
これをデバッグする方法はありますか?誰でもDCOSクラスタ内でliquibaseの移行を正常に実行しましたか?
また、アプリの定義を表示する必要があります。また、メゾスのログを確認してください。私はあなたがあまりにも小さなメモリを指定したと思うし、コンテナOOMs – Tobi
@トビーあなたは私のヒーローです。私はOOMの問題について考えたことは一度もありませんでしたが、それを128MBから上げることはそのトリックでした。本当にありがとう!私はそれを答えとして提出してください、私はそれをマークします。 – rjbez
OOMをどこで見つけましたか?ログの場所は何ですか?エラーとラインを共有する心ですか?私は感謝します。 –