Восстановление PostgreSQL и решение для резервного копирования

Вам нужно решить, как вы хотите объединить все разные цены на заказы для компании. Я не знаю, чего ты хочешь. Например, следующее возвращает сумму всех цен:

SELECT c.Company, MAX(o.ShipDate) AS Latest_ShipDate,
       SUM(oi.Price) AS sum_Price
FROM dbo.Customers c JOIN
     dbo.Orders o
     ON c.CustomerID = o.CustomerID JOIN
     dbo.OrderItems oi
    ON o.OrderID = oi.OrderID
WHERE o.Deleted = 0
GROUP BY oi.InvMasID, c.Company
9
задан tropikalista 5 February 2009 в 14:50
поделиться

3 ответа

A. pg_dump не использует, вставляют операторы по умолчанию. Это будет использовать команду COPY по умолчанию. Переключатель командной строки-d или - вставки заставят pg_dump помещать, вставляют операторы в экспорт. Если Вы имеете любой из этих переключателей в Вашей команде pg_dump, просто удаляете их, чтобы иметь КОПИЮ использования pg_dump.

B. В следующей версии Пост-ГРЭС они собираются иметь простую репликацию из поля. Я думаю, что эти 8,4 выпусков скоро планируются. Так, это могло бы стоить обвинить для этого, если это возможно.

4
ответ дан 4 December 2019 в 19:36
поделиться

Вы могли использовать WAL-резервное-копирование Онлайн, возможно, в комбинации ночного/ежедневного/еженедельного/ежемесячного pg_dumps. Однажды неделя/месяц необходимо скопировать целый кластер далеко.

При восстановлении работ вполне хорошо и Вы почти не теряете данные, когда Вы копируете от раннего (rsync, является лучшим, так как это очень эффективно).

Скорость хороша, потому что она только должна применить ВОЛЗ, которые являются позже, чем Ваше последнее полное кластерное резервное копирование/копия.

2
ответ дан 4 December 2019 в 19:36
поделиться

Я думаю, что существует только один ответ на тот.

PITR или восстановление момента времени. Это в основном архивирует журналов транзакций и - насколько я знаю, лучший способ сделать резервные копии.

Я настроил его пару раз для 8,1, но это должно быть то же в 8,3.

В postgresql.conf все, что необходимо сделать, должно добавить это:

archive_command = 'test ! -f /path/to/your/backups/archive_logs/%f && cp -i %p /path/to/your/backups/archive_logs/%f </dev/null'

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

Для создания полного резервного копирования необходимо сначала сказать PostgreSQL о взятии резервного копирования. Это делается посредством команды psql psql "SELECT pg_start_backup('my_backup');" После того, как это просто копирует dir данных с rsync, cpio или некоторым другим инструментом. Если база данных будет в большой степени использоваться, то файлы изменятся во время копии, таким образом, будет важно, чтобы инструмент мог обработать это правильно и не прыгнуть с парашютом.

После того, как копия закончена, просто выполнена psql "SELECT pg_stop_backup();" сказать PostgreSQL останавливать его снова. То, что делают те команды, помещает маркер в Архивные журналы, где резервное копирование запустилось, таким образом, в восстановлении, оно знает от того, где оно должно начать читать из там.

Эта техника может также использоваться, чтобы иметь теплое резервное устройство для репликации, но это не будет читаемо, просто готово вступить во владение в случае крайней необходимости. Полное горячее резервирование планируется в, я думаю версия 8.4, поэтому до тех пор я не думаю, что существует другая опция.

Одна вещь, которая является большой при использовании PITR состоит в том, что можно указать метку времени к тому, когда Вы хотите, чтобы архивные журналы были добавлены. Таким образом, это может также сохранить базу данных от несчастных случаев (как удаление или изменение некоторых данных)

6
ответ дан 4 December 2019 в 19:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: