adminpack
Модуль adminpack предоставляет ряд вспомогательных функций, которыми могут
пользоваться pgAdmin и другие средства администрирования и управления для
предоставления дополнительной функциональности, например, для удаленного управления
файлами журналов сервера. По умолчанию использовать все эти функции разрешено
только суперпользователю, но такое право можно дать и другим пользователям с
помощью команды GRANT
.
Функции, приведенные в Таблице 1, предоставляют возможность записи в файлы на компьютере, где работает сервер. (См. также функции в Таблице 94, которые открывают доступ только на чтение.) Обычным пользователям они предоставляют доступ только к файлам в каталоге кластера базы данных, но не ограничивают суперпользователей или членов ролей pg_read_server_files или pg_write_server_files. При этом путь может задаваться как относительный, так и абсолютный.
Таблица 1. Функции модуля adminpack
Функция | Описание |
---|---|
pg_catalog.pg_file_write ( filename text, data text, append boolean ) → bigint | Записывает или дописывает данные в текстовый файл. |
pg_catalog.pg_file_sync ( filename text ) → void | Сбрасывает файл или каталог на диск. |
pg_catalog.pg_file_rename ( oldname text, newname text [, archivename text ] ) → boolean | Переименовывает файл. |
pg_catalog.pg_file_unlink ( filename text ) → boolean | Удаляет файл. |
pg_catalog.pg_logdir_ls () → setof record | Выводит список файлов журналов в каталоге log_directory. |
Функция pg_file_write записывает заданные данные (data) в файл с именем filename. Если флаг append сброшен, этот файл не должен существовать. Если же флаг append установлен, существование этого файла допускается, и в этом случае данные будут дописаны в него. Возвращает число записанных байт.
Функция pg_file_sync синхронизирует с файловой системой заданный файл или каталог с именем filename. В случае неудачи (например, если указанный файл не существует) выдается ошибка. Обратите внимание, что значение data_sync_retry на эту функцию не влияет, и поэтому даже при сбое во время сброса файлов базы данных не будет выдана ошибка уровня PANIC.
Функция pg_file_rename переименовывает файл. Если параметр archivename опущен или равен NULL, она просто переименовывает файл oldname в newname (файл с новым именем не должен существовать). Если параметр archivename задан, она сначала переименовывает newname в archivename (файл с таким именем не должен существовать), а затем переименовывает oldname в newname. В случае сбоя на втором этапе переименовывания она попытается переименовать archivename обратно в newname, прежде чем выдать ошибку. Возвращает true в случае успеха и false, если исходные файлы отсутствуют или их невозможно изменить; в остальных случаях выдаются ошибки.
Функция pg_file_unlink удаляет заданный файл. Возвращает true в случае успеха и false, если заданный файл отсутствует либо при сбое в вызове unlink(); в остальных случаях выдаются ошибки.
Функция pg_logdir_ls возвращает временные метки и пути всех файлов журналов в каталоге log_directory. Чтобы эта функция работала, параметр log_filename должен иметь значение по умолчанию (qhb-%Y-%m-%d_%H%M%S.log).