스프링 배치는 몇 가지 시퀀스 테이블을 사용하는데, MySQL의 경우에는 MyISAM 스토리지 엔진을 사용한다. 내가 직면 한 문제는 Amazon Web Services RDS 데이터베이스를 사용하고 있으며 "Point in Time"데이터베이스 복원 기능이 MyISAM 테이블이 포함 된 데이터베이스와 잘 작동하지 않는다는 것입니다.스프링 배치 MyISAM 시퀀스 테이블을 InnoDB로 옮기기
AWS RDS의 "Point in Time"데이터베이스 복원 기능을 사용하기 위해 Spring Batch MyISAM 시퀀스 테이블을 전환하고 대신 InnoDB 테이블로 대체 할 수있는 솔루션을 찾고 있습니다.
편집 :
, 여기에 순서 읽는 자바 클래스MySQLMaxValueIncrementer
에서 주석의 당 마이클의 반응 @
:
The sequence is kept in a table; there should be one sequence table per
table that needs an auto-generated key. The table type of the sequence table
should be MyISAM so the sequences are allocated without regard to any
transactions that might be in progress.
그래서 내 특정 질문에 대한 가장 간단한 방법은 무엇인지 "입니다 MyISAM 시퀀스 테이블을 삭제 "하고 Spring Batch 허밍을 유지 하시겠습니까?
은 무엇입니까 단계 #에서 증가 기 공장을 사용하는
org.springframework.batch.core.repository.support.JobRepositoryFactoryBean
구성을 업데이트 너 진짜 질문이야? 당신은 스크립트를 바꿀 수 있습니다 ... –마이클, 제 질문을 확인해 주셔서 감사합니다. 테이블 정의를 변경하는 것만 큼 간단하다면 좋습니다. MySQLMaxValueIncrementer의이 주석은 그렇게 단순하지 않다고 믿게했습니다. "시퀀스는 테이블에 유지되며 자동 생성 된 키가 필요한 테이블 당 하나의 시퀀스 테이블이 있어야합니다. 시퀀스 테이블의 테이블 유형은 MyISAM이어야하므로 시퀀스가 진행중인 트랜잭션과 상관없이 할당됩니다 . " – Alex