Идея этого подхода в создании текстового файла с командами SQL. Такой файл можно передать обратно на сервер и воссоздать базу данных в том же состоянии, в котором она была во время бэкапа. У PostgreSQL для этого есть специальная утилита — pg_dump. Пример использования pg_dump :

Топ бесплатных приложений для iPhone - App-s

PL/Proxy представляет собой прокси-язык для удаленного вызова процедур и партицирования данных между разными базами. Основная идея его использования заключается в том, что появляется возможность вызывать функции, расположенные в удаленных базах, а также свободно работать с кластером баз данных (например, вызвать функцию на всех узлах кластера, или на случайном узле, или на каком-то одном определенном).

Для создания slave, от которого можно реплицировать другие базы данных используется команда create-branch вместо create-leaf (root, корень - master нода, предоставляет информацию для репликации branch, ветка - нода с копией данных, с которой можно реплицировать leaf, лист - нода с копией данными, но реплицировать с нее уже не возможно):

Использует потоковую PostgreSQL репликацию (асинхронная и синхронная репликация)

В версии были внедрены метки восстановления, улучшение управления буфером, CHECKPOINT и VACUUM улучшены

Multicorn может использоваться для получения писем по IMAP протоколу. Для начала установим зависимости:

Существует еще одно решение для борьбы с раздуванием таблиц. При обновлении записи с помощью UPDATE , если в таблице есть свободное место, то новая версия пойдет именно в свободное место, без выделения новых страниц. Предпочтение отдается свободному месту ближе к началу таблицы. Если обновлять таблицу с помощью «fake updates»( some_column = some_column ) с последней страницы, в какой-то момент все записи с последней страницы перейдут в свободное место в предшествующих страницах таблицы. Таким образом, после нескольких таких операций, последние страницы окажутся пустыми и обычный неблокирующий VACUUM сможет отрезать их от таблицы, тем самым уменьшив размер. В итоге, с помощью такой техники можно максимально сжать таблицу, при этом не вызывая критичных блокировок, а значит без помех для других сессий и нормальной работы базы. Для автоматизации этой процедуры существует утилита pgcompactor.

тем, запущены ли другие требовательные к ресурсам процессы (например, веб-сервер)

По архитектуре у Postgres-X7 всегда есть согласованность данных. По теореме CAP в такой системе тяжело обеспечить высокую доступность. Для достижения высокой доступности в распределенных системах требуется избыточность данных, резервные копии и автоматическое восстановление. В Postgres-X7 избыточность данных может быть достигнута с помощью PostgreSQL потоковой (streaming) репликации с hot-standby для обработчиков данных. Каждый координатор способен записывать и читать данные независимо от другого, поэтому координаторы способны заменять друг друга. Поскольку GTM отдельный процесс и может стать точкой отказа, лучше создать GTM-standby как резервную копию. Ну а вот для автоматического восстановления придется использовать сторонние утилиты.

на сервере резервного мастера выполнить команду gpactivatestandby -d /master_instance_directory

& Удаляет указанный ключ. Если указать таймер, то ключ с таким же названием может быть добавлен только после окончания таймера.

при каждом вызове прокси-сервер стартует новое соединение к бакенд-серверу. В высоконагруженных системах целесообразно использовать менеджер для кеширования соединений к бакенд-серверам (для этой цели идеально подходит PgBouncer)

pgBadger  — аналогичная утилита, что и pgFouine, но написанная на Perl. Еще одно большое преимущество проекта в том, что он более активно сейчас разрабатывается (на момент написания этого текста последний релиз pgFouine был в , а последняя версия pgBadger — ). Установка pgBadger проста:

Рассмотрим как выполняются запросы для таблиц. Выберем все записи из распределенной таблицы:

Для того, чтобы сделать какой-то выбор, необходимо знать суть проблемы. Существуют два предела, в которые могут уткнуться сервера баз данных:

max_stack_depth  — cпециальный стек для сервера, который в идеале должен совпадать с размером стека, выставленном в ядре ОС. Установка большего значения, чем в ядре, может привести к ошибкам. Рекомендуется устанавливать 7–9 MB

Если нужно перегрузить демон (например при изменении конфигурации), то можно воспользоватся параметром -r :

Когда опция track_commit_timestamp отключена, единственное допустимое значение для _resolution может быть apply_remote. Поскольку track_commit_timestamp не доступен в PostgreSQL , данная опция установлена по умолчанию в apply_remote.