Почему pg_clog не упоминается в документе postgresql о восстановлении на определенный момент времени (PITR)?

Во-первых, пожалуйста, прости мой плохой английский.

Ключевое слово "pg_clog" не упоминается в главе "Непрерывное архивирование и восстановление на момент времени (PITR)" документов postgresql 9.x. Но, как я узнал из книги " Внедрение системы баз данных", журналы фиксации необходимы для восстановления базы данных после сбоя или из резервной копии, поскольку они помогают восстановить базу данных до согласованности.

Это потому, что записи коммитов также записаны в других файлах? Например, WALS?

Спасибо.

1 ответ

Решение

Журнал фиксации содержит информацию о том, была ли конкретная транзакция зафиксирована или откатана.

Когда строки записываются в таблицу, еще не ясно, будет ли транзакция успешной или нет. Вместо этого, сохраняя эту информацию в каждой версии строки ("кортеж") при фиксации или восстановлении транзакции, PostgreSQL отмечает только состояние транзакции в журнале фиксации.

Поэтому необходимо иметь журнал фиксации, чтобы определить, является ли определенный кортеж видимым или нет; без этого база данных непригодна для использования.

Журнал фиксации специально не упоминается в документации по восстановлению, поскольку он является частью каталога данных и записывается на диск во время контрольной точки.

Для восстановления не обязательно иметь информацию журнала фиксации за пределами контрольной точки, с которой вы восстанавливаете: COMMIT а также ROLLBACK записываются в журнал транзакций ("WAL"), вся информация там и будет записана в журнал фиксации во время восстановления.

Другие вопросы по тегам