PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

грешка в postgresql PANIC:не можа да се намери валиден запис на контролна точка

Той търси запис на контролна точка в регистъра на транзакциите, който вероятно не съществува или е повреден. Можете да определите дали това е така, като изпълните:

# Postgres >= 10
pg_resetwal DATADIR

# Postgres < 10
pg_resetxlog DATADIR

Ако регистърът на транзакциите е повреден, ще видите съобщение като:

Сървърът на базата данни не беше изключен чисто. Нулирането на дневника на транзакциите може да доведе до загуба на данни. Ако все пак искате да продължите, използвайте -f за принудително нулиране.

След това можете да следвате инструкциите и да стартирате с -f за принудително актуализиране:

# Postgres >= 10
pg_resetwal -f DATADIR

# Postgres < 10
pg_resetxlog -f DATADIR 

Това трябва да нулира регистъра на транзакциите, но може да остави вашата база данни в неопределено състояние, както е обяснено в документацията на PostgreSQL на pg_resetwal :

Ако pg_resetwal оплаква, че не може да определи валидни данни заpg_control , можете да го принудите да продължи така или иначе, като посочите -f (силова) опция. В този случай липсващите данни ще бъдат заменени с правдоподобни стойности. Повечето от полетата могат да се очакват да съвпадат, но може да е необходима ръчна помощ за полетата за следващия OID, следващия идентификатор на транзакция и епоха, следващия идентификатор на мултитранзакция и изместване и WAL начално местоположение. Тези полета могат да бъдат зададени с помощта на опциите, разгледани по-долу. Ако не можете да определите правилните стойности за всички тези полета, -f все още може да се използва, но възстановената база данни трябва да се третира с още по-голямо подозрение от обикновено:незабавното изхвърляне и презареждане е наложително. Не изпълнявайте никакви операции за промяна на данни в базата данни, преди да ги изхвърлите, тъй като всяко подобно действие може да влоши повредата.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Съпоставяне на тип PostgreSQL text[][] и тип Java

  2. Получаване на [archiver] неподдържана версия (1.13) в заглавката на файла при стартиране на pg_restore

  3. Как мога да използвам задействания на PostgreSQL за съхраняване на промени (SQL изрази и промени в редовете)

  4. ГРЕШКА:не можа да се зареди библиотеката “/opt/PostgreSQL/9.0/lib/postgresql/plperl.so”:libperl.so:

  5. Пазете PostgreSQL понякога да избира лош план за заявка