F.34. page_repair#
F.34. page_repair #
Модуль восстановления отдельной страницы с использованием данных резервного копирования.
F.34.2. Установка #
Создайте расширение page_repair
на сервере Tantor SE-1C.
$ psql =# CREATE EXTENSION page_repair CREATE EXTENSION
F.34.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
на целевое отношение и
может ожидать, пока вторичный сервер догонит основной
сервер. Эта функция не пытается восстановить страницу, которая
отмечена как грязная в общем буфере, потому что
грязная страница будет выгружена на диск и, таким образом, может
восстановить поврежденную страницу.