2014-11-13 34 views
11

Khi tôi đang cố gắng để thêm một hàng mới để db "INSERT INTO invited_users VALUES ('id', user_name ')"H2 db 'Chunk không còn tồn tại' lỗi

Tôi nhận được lỗi này:

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

Có thể đó là một số vấn đề với db, bởi vì khi tôi cố thêm cùng hàng vào một db mới - lỗi biến mất.

Cập nhật 20 tháng 11 năm 2014

Tin tốt! Tôi liên lạc với các nhà phát triển của H2 db và tìm ra rằng họ sẽ sửa lỗi đó trong bản phát hành tiếp theo. https://groups.google.com/forum/#!topic/h2-database/i_GHXExjotc

Cập nhật 06 Tháng 12 2014

Một cách giải quyết đơn giản là để vô hiệu hóa các MVStore bằng cách thêm "; mv_store = false" vào URL cơ sở dữ liệu.

Nhưng, mẹo này sẽ không hoạt động, nếu bạn cần db cũ. Nó tạo cơ sở dữ liệu mới, với phần mở rộng .h2.db thay vì .mv.db

Để khắc phục điều này bạn cần tạo tập lệnh SQL của cơ sở dữ liệu cũ ".mv.db" (với công cụ Khôi phục), sau đó chạy tập lệnh này bằng cách sử dụng "runcript ...".

+0

Có thể thú vị: https://www.mail-archive.com/[email protected]/msg16976.html và https://groups.google.com/forum/#!topic/h2 -database/i1YwSTG8CS8 –

+0

@JimGarrison yeah, cảm ơn. Tôi đã đọc điều này – klvtsov

+0

Cung cấp cho [một ví dụ tối thiểu, đầy đủ và có thể xác minh được] (https://stackoverflow.com/help/mcve). – philipxy

Trả lời

5

Trong phiên bản 1.4.182, có thể có sự cố xảy ra với cơ chế phát hiện khi đoạn không còn được tham chiếu. Hiện tại, đây là reference counting bộ sưu tập rác: bằng cách đếm trực tiếp trang và không gian sống. Nếu điều này đạt đến số không, một đoạn có thể được ghi đè sau 45 giây.

Cách giải quyết đơn giản là sử dụng cơ chế lưu trữ page store thay vì mv_store bằng cách thay đổi kết nối cơ sở dữ liệu để sử dụng mv_store=false làm giảm nhẹ.

Tùy chọn MV_STORE được bật tự động từ phiên bản 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 không có người đàn ông, cách giải quyết này không hiệu quả đối với tôi. Nó tạo ra cơ sở dữ liệu mới, nhưng tôi cần một cơ sở dữ liệu cũ. – klvtsov

+0

@PierAlexandreBouchard Có thể khắc phục điều này không? – klvtsov

+0

Bạn không thể sao chép các hàng từ cũ sang cơ sở dữ liệu mới? –

Các vấn đề liên quan