F.31. page_repair#

F.31. page_repair

F.31. page_repair

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

F.31.1. О расширении page_repair

Версия: 1.0

GitHub

F.31.2. Установка

Создайте расширение page_repair на сервере Tantor SE.

$ psql
=# CREATE EXTENSION page_repair
CREATE EXTENSION

F.31.3. Использование

Расширение page_repair предоставляет функцию pg_repair_page(table regclass, block_number bigint, connstr text). Где table и block_number это имя таблицы и номер поврежденного блока соответственно. connstr - это строка подключения к резервному серверу. Резервный сервер, к которому можно подключиться с помощью connstr, должен иметь тот же системный идентификатор, что и сервер, на котором выполняется эта функция. Эта функция может быть выполнена на главном сервере и суперпользователем. Если вы хотите восстановить другие форки, такие как карта свободного пространства, карта видимости, вы можете использовать функцию pg_repair_page(table regclass, block_number bigint, connstr text, forkname text) где forkname может быть main, fsm vm.

pg_repair_page получает блок AccessExclusiveLock на целевое отношение и может ожидать, пока вторичный сервер догонит основной сервер. Эта функция не пытается восстановить страницу, которая отмечена как грязная в общем буфере, потому что грязная страница будет выгружена на диск и, таким образом, может восстановить поврежденную страницу.