Резервное копирование баз данных в СУБД PostgreSQL (On-line backup)

В данной статье я хочу поделиться подходом к вопросу резервного копирования баз данных в СУБД PostgreSQL, применяемым мной во многих проектах.

Немного теории.

На текущий момент в СУБД PostgreSQL существует два способа резервного копирования баз данных без остановки сервера СУБД или блокировки (lock) работы с данными (On-line backup):
  1. Base backup (полный бекап)
  2. On-line backup (архивирование WAL — Write-Ahead Log (Журнал опережающей записи или архивные журналы, по аналогии с СУБД Oracle))
Первый способ организует полное резервное копирования баз данных (системных файлов), второй способ сохраняет лишь журнал записей, используя которые при восстановлении в дальнейшем, можно откатиться на тот или иной срез данных во времени, в диапазоне, начиная от времени создания Base backup и заканчивая последним сохраненным журналом (архивный лог (WAL)). Чем больше журналов вы храните, тем, при желании, на более широкий диапазон данных вы сможете откатиться при восстановлении (PITR — Point-In-Time Recovery (восстановление к состоянию в определённый момент времени)).

Читать дальше →

Реализация функций на языке СИ для PostgreSQL на MS Visual Studio

В этой статье я попытаюсь осветить основные аспекты создания dll библиотек с функциями для PostgreSQL с использованием Microsoft VS. Функции можно использовать для определения собственных типов данных, обработки и индексирования данных и т.д. Для всего этого дела я использовал платформу Windows (после отладки вы без особого труда можете перекомпилировать свои творения на любую платформу, немного изменив код), PostgreSQL версии 9.0 (можно 8.4) и Microsoft Visual Studio 2010.


Читать дальше →