- DC/OS 1.9.0
- 마라톤 1.4.2
- LIQUIBASE 3.5.3
나는 MySQL 데이터베이스에 대한 Liquibase 마이그레이션을 실행하는 단명 고정 표시기 컨테이너를 구현했습니다. 컨테이너는 도커 작성을 통해 개발 중 잘 작동합니다. 그러나 생산을 준비하기 위해이 컨테이너를 DCOS 클러스터 내에 구현하려고합니다.DC/OS에서 잠금을 획득 한 후 MySQL 데이터베이스에서 Liquibase 마이그레이션이 중단되는 이유는 무엇입니까?
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]"}
그래서 나는 그것이 모두 데이터베이스에 액세스하고 테이블을 만드는 알고 있지만 그냥 죽으면, 다음은 실행의 출력입니다.
:이 명령 liquibase 강타 파일이 실행이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
입니다 : 여기
MySQL [myapp]> select * from DATABASECHANGELOGLOCK;
+----+--------+-------------+----------+
| ID | LOCKED | LOCKGRANTED | LOCKEDBY |
+----+--------+-------------+----------+
| 1 | | NULL | NULL |
+----+--------+-------------+----------+
이 실행되는 명령입니다 : 같은
은 실행 후, 잠금 테이블은 보인다
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
내가 말했듯이,이 컨테이너는 도커 작성으로 로컬에서 잘 작동하며, dcos 노예 중 하나에있는 모든 deps가 로컬에서 liquibase를 실행합니다.
더 나은 디버깅 방법이 있습니까? DCOS 클러스터 내에서 누군가가 성공적으로 liquibase 마이그레이션을 실행 했습니까?
앱 정의도 표시해야합니다. 또한 메소 로그를 확인하십시오. 나는 당신이 너무 적은 기억을 지정한 것으로 의심하고, 컨테이너 OOMs – Tobi
@ 토비 당신은 나의 영웅입니다. 나는 OOM 이슈에 대해 생각해 본 적이 없었는데, 128MB에서이 문제를 해결했습니다. 정말 고마워! 답변으로 제출해 주시면 고맙겠습니다. – rjbez
OOM을 어디에서 찾을 수 있습니까? 로그의 위치는 무엇입니까? 오류와 라인을 공유하는 마음? 나는 고맙겠습니다. –