PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

lỗi postgresql PANIC:không thể định vị bản ghi điểm kiểm tra hợp lệ

Nó đang tìm kiếm một bản ghi điểm kiểm tra trong nhật ký giao dịch có thể không tồn tại hoặc bị hỏng. Bạn có thể xác định xem đây có phải là trường hợp không bằng cách chạy:

# Postgres >= 10
pg_resetwal DATADIR

# Postgres < 10
pg_resetxlog DATADIR

Nếu nhật ký giao dịch bị hỏng, bạn sẽ thấy một thông báo như sau:

Máy chủ cơ sở dữ liệu không được tắt sạch. Đặt lại nhật ký giao dịch có thể làm mất dữ liệu. Nếu bạn muốn tiếp tục, hãy sử dụng -f để buộc đặt lại.

Sau đó, bạn có thể làm theo hướng dẫn và chạy với -f để buộc cập nhật:

# Postgres >= 10
pg_resetwal -f DATADIR

# Postgres < 10
pg_resetxlog -f DATADIR 

Điều đó sẽ đặt lại nhật ký giao dịch, tuy nhiên, nó có thể khiến cơ sở dữ liệu của bạn ở trạng thái không xác định như được giải thích trong tài liệu PostgreSQL trên pg_resetwal :

Nếu pg_resetwal phàn nàn rằng nó không thể xác định dữ liệu hợp lệ cho pg_control , bạn vẫn có thể buộc nó tiếp tục bằng cách chỉ định -f (lực lượng) tùy chọn. Trong trường hợp này, các giá trị hợp lý sẽ được thay thế cho dữ liệu bị thiếu. Hầu hết các trường có thể khớp với nhau, có thể cần hỗ trợ thủ công cho OID tiếp theo, giao dịch tiếp theo và kỷ nguyên, ID đa giao dịch tiếp theo và bù đắp, và các trường vị trí bắt đầu WAL. Các trường này có thể được đặt bằng cách sử dụng các tùy chọn được thảo luận dưới đây. Nếu bạn không thể xác định giá trị chính xác cho tất cả các trường này, hãy -f vẫn có thể được sử dụng, nhưng cơ sở dữ liệu được phục hồi phải được xử lý lại với mức độ đáng ngờ hơn bình thường:kết xuất và tải lại ngay lập tức là bắt buộc. Không thực hiện bất kỳ hoạt động sửa đổi dữ liệu nào trong cơ sở dữ liệu trước khi bạn kết xuất, vì bất kỳ hành động nào như vậy đều có thể làm cho sự cố trở nên tồi tệ hơn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tài nguyên đào tạo &học tập hàng đầu về PostgreSQL

  2. Hai cột trong truy vấn con trong mệnh đề where

  3. Làm cách nào để tự động cập nhật dấu thời gian trong PostgreSQL

  4. Cấu hình cơ sở dữ liệu ActiveRecord ::AdapterNotSpecified không chỉ định bộ điều hợp

  5. Làm thế nào để thực hiện một truy vấn chọn trong một khối DO?