2014-11-13 8 views
11

'덩어리가 더 이상 존재하지 않습니다'나는이 오류를 받고 있어요H2 DB 오류

"invited_users 값으로 ('ID', _ 이름 ')를 삽입"dB로 새 행 추가하기 위해 노력하고있어 경우 :

General error: "java.lang.IllegalStateException: Chunk 2089 no longer exists [1.4.181/9]" 

아마도 db에 대한 몇 가지 문제점이 있습니다. 새 db에 동일한 행을 추가하려고했을 때 오류가 사라 졌기 때문일 수 있습니다.

업데이트 2014년 11월 20일

좋은 소식! H2 db의 개발자에게 연락하여 다음 릴리스에서 버그를 수정한다는 것을 알았습니다. https://groups.google.com/forum/#!topic/h2-database/i_GHXExjotc

업데이트 2014년 12월 6일

간단한 해결 방법은 추가하여 MVStore을 비활성화하는 것입니다 "; mv_store = false"를 데이터베이스 URL에.

그러나 이전 db가 필요한 경우이 속임수는 작동하지 않습니다.

을 극복하려면 이전 데이터베이스 ".mv.db"(복구 도구 포함)의 SQL 스크립트를 만들어야합니다. "runscript ..."를 사용하여이 스크립트를 실행하십시오.

+0

아마도 흥미 : https://www.mail-archive.com/[email protected]/msg16976.html 및 https://groups.google.com/forum/#!topic/h2 -database/i1YwSTG8CS8 –

+0

@ JimGarrison 예, 감사합니다. 나는 이미 이것을 읽었습니다. – klvtsov

+0

[최소한의 완전하고 검증 가능한 예제를 제공하십시오] (https://stackoverflow.com/help/mcve). – philipxy

답변

5

버전 1.4.182에서는 청크가 더 이상 참조되지 않을 때를 감지하는 메커니즘에 문제가있을 수 있습니다. 현재는 reference counting 가비지 수집입니다. 실시간으로 페이지 및 라이브 공간을 계산하여 계산합니다. 이 값이 0에 도달하면 45 초 후에 청크를 덮어 쓸 수 있습니다.

간단한 해결 방법은 데이터베이스 연결을 mv_store=false으로 변경하여 완화 방법으로 mv_store 대신 page store 저장 메커니즘을 사용하는 것입니다.

MV_STORE 옵션은 버전 1.4.177 Beta 이후 자동으로 활성화됩니다.

By default, the MV_STORE option is enabled, so it is using the new MVStore storage. The MVCC setting is by default set to the same values as the MV_STORE setting, so it is also enabled by default. For testing, both settings can be disabled by appending ";MV_STORE=FALSE" and/or ";MVCC=FALSE" to the database URL.

+0

@PierAlexandreBouchard 아무도,이 해결 방법은 나를 위해 작동하지 않습니다. 그것은 새로운 데이터베이스를 생성하지만 이전 데이터베이스가 필요합니다. – klvtsov

+0

@PierAlexandreBouchard 이것을 극복 할 수 있습니까? – klvtsov

+0

이전 데이터베이스에서 새 데이터베이스로 행을 복제 할 수 없습니까? –